السلام عليكم ورحمة الله وبركاته ......

قبل البدء في الموضوع دعنا نتعرف على المصطلحات التاليه :
كود:
1 - Authentication
2 - Authorization
3 - Accounting
والتي يعبر عنها إختصاراً :

كود:
aaa
Authentication - 1 :

عند كل عمليه دخول إلى أي نظام أمني سواء في الحياة الواقعية أو في دنيا الحاسوب فاننا نستخدم كلمة Authentication والتي تعني ببساطه هل أنت مصرح لك بالدخول إلى هذا النظام الأمني أو لا ؟.

فلو أخذنا دنيا الحاسوب كمثال ,, فأنه توجب عليك أن تملك حساباً يتكون من Username و Password بحيث يتوجب عليك إظهار هذا ال Username و Password في كل عملية دخول للنظام !!

وعملية الدخول هذه أو التحقق من الشخصية أو الهويه نسميها Authentication .. !!

وبعبارة بسيطة .. Authentication تعني :

من أنت .. !!


2 - Authorization :

بعد عملية التحقق من الهوية يظهر لنا مصطلح جديد وهو ال Authorization !!

والذي يعني ببساطه ماهي الاعمال التي تستطيع القيام بها .. !!

حيث أنه لا يكفي إثبات الهوية للنظام الأمني بأن يسمح لك أن تعمل ما يحلو لك في النظام بل يجب على حسابك أن يملك إمتيازات خاصة لكي يستطيع أن يؤدي دوره على أكمل وجه .. !!

بحيث أن دخولك النظام بحساب User يختلف إختلافاً جذرياً عن دخولك النظام بحساب Administrator !

فحساب ال Administrator يستطيع أن يفعل الكثير مما لا يستطيع حساب ال User فعله .

ملخص ما سبق أن ال Authorization هو إعطاء الإمتيازات وتحديد الصلاحيات داخل النظام .. !!


3 - Accounting :

إذا قام شخص ما بالدخول إلى النظام وقام ببعض الأعمال وأردنا أن نقوم بملاحقة ما قام به الشخص على النظام فما عسانا نفعل ؟

هنا يأتي دور ال Accounting !!

والتي تقوم ببساطة بتسجيل كل حركة وعمل قام به المستخدم في النظام .. !!

ومثال عليها ملفات ال Logs الخاصة بالنظام Windows .


ملاحظة :

لقد تم طرح كيفية عمل authentication هنا :

اضغط هنـــــــــا

والان سوف نقوم بأخذ تلميح صغير عن كيفية عمل ال authorization ...

من المعروف أن Cisco IOS software command-line interface لديه :

كود:
Two levels of access to commands
وهما :

كود:
user EXEC mode (level 1) 
privileged EXEC mode (level 15)
ماذا الان لو أدرنا أضافة privileges أخرى !!

إجابة ما سبق تتلخص في أنك لديك 16 privileges تختار أيهما تريد .. وهي تبدأ من 0 وتنتهي ب 15 .

وتستطيع معرفة ال privilege الذي أنت فيه بإستخدام :

كود:
Router#show privilege
وسوف نقوم نحن بتطبيق ال Authorization على ال privilege رقم 5 .

ولعمل ذلك سوف نقوم بالاتي :

كود:
Router#conf t 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#enable secret level 5 pass5
حيث أن level 5 تعني بأننا نريد التعامل مع ال privilege الخامس و pass5 هي كلمة المرور الخاصة بهذا ال privilege .

الان قم بعمل :

كود:
Router#disable
وذلك لكي تخرج من ال privilege الذي أنت فيه بحيث يصبح ال prompt الخاص بال Router في ال :

كود:
 User EXEC mode
كود:
Router>
الان قم بكتابة رقم ال privilege الذي تود الدخول إليه ولاحظ بأنك سوف تطالب بكلمة مرور والتي هي :

كود:
pass5
كود:
Router>en 5
Password:
وتسطيع رؤية ال privilege الذي أنت فيه :

كود:
Router#show privilege 
Current privilege level is 5
الان حاول الدخول إلى ال Configuration mode :

كود:
Router#conf t 
          ^
% Invalid input detected at '^' marker.
لاحظ بانه سوف يتم منعك وذلك لانك لا تملك إي صلاحيات وهذا بالضبط ما تقوم به ال Authorization .

ودعنا نرى ما نستطيع فعله في هذا ال privilege :

كود:
Router#?
Exec commands:
  access-enable    Create a temporary Access-List entry
  access-profile   Apply user-profile to interface
  call             Voice call
  clear            Reset functions
  connect          Open a terminal connection
  crypto           Encryption related commands.
  disable          Turn off privileged commands
  disconnect       Disconnect an existing network connection
  enable           Turn on privileged commands
  exit             Exit from the EXEC
  help             Description of the interactive help system
  lat              Open a lat connection
  lock             Lock the terminal
  login            Log in as a particular user
  logout           Exit from the EXEC
  modemui          Start a modem-like user interface
  mrinfo           Request neighbor and version information from a multicast
                   router
  mstat            Show statistics after multiple multicast traceroutes
  mtrace           Trace reverse multicast path from destination to source
  name-connection  Name an existing network connection
  pad              Open a X.29 PAD connection
  ping             Send echo messages
  ppp              Start IETF Point-to-Point Protocol (PPP)
  release          Release a resource
  renew            Renew a resource
  resume           Resume an active network connection
  rlogin           Open an rlogin connection
  set              Set system parameter (not config)
  show             Show running system information
  slip             Start Serial-line IP (SLIP)
  ssh              Open a secure shell client connection
  systat           Display information about terminal lines
  tclquit          Quit Tool Command Language shell
  telnet           Open a telnet connection
  terminal         Set terminal line parameters
  traceroute       Trace route to destination
  tunnel           Open a tunnel connection
  udptn            Open an udptn connection
  where            List active connections
  x28              Become an X.28 PAD
  x3               Set X.3 parameters on PAD
تلاحظ بانها اوامر قليلة إذا ما تم مقارنتها مع ال privilege رقم 15 .

الان كل ما سوف نقوم به هو إعطاء أمتيازات وحقوق أكثر لل privilege رقم 5 .

لذا قم بالخروج من ال privilege الذي انت فيه الان وعد لل privilege رقم 15 :

كود:
Router#disable 
Router>en
Router#
Router#show privilege 
Current privilege level is 15
Router#
الان ولإعطاء أمتيازات أكثر لل privilege رقم 5 فإننا سوف نستخدم الأمر الذي صيغته كالتالي :

كود:
Router(config)# privilege ( mode )  level ( level ) command-string
ودعني أبدا تفسير السطر السابق من الاخير إلى البدايه ..

1 - command-string :

هو الامتياز الجديد الذي تود إعطائه للمستخدم وفي حالتنا نحنا سيكون :

كود:
conf t
2 - level :

لا اعتقد أنها تحتاج شرح فهي تعني رقم ال privilege الذي تود إعطاء الإمتياز له.

3 - mode :

وتعني ماهو ال mode الأساسي الذي سوف ينطلق منه ال command-string !!
ففي حالتنا نحن ال command-string هو conf t لذا فأن ال mode سيكون :

كود:
exec
ولو أردنا مثلا إعطاء أمتياز الدخول إلى ال Interfaces فان ال command-string سيكون Interface وال mode هو Configuration ..

ولو أردنا مثلا إعطاء أمتياز إعداد ال Interfaces فان ال command-string سيكون ip address وال mode هو Interface ..

أرجوا أن تكون الفكرة قد وصلت فالكلام السابق هو لب الموضوع .. !!

الان يعود مرجوعنا إلى الموضوع الأساسي وهو أعطاء أمتيازات إضافية لل privilege رقم 5 .

سوف نقوم بإعطائه إمتياز الدخول الى ال Configuration mode و السماح له باعداد ال TCP/IP الخاص بال Interfaces :
كود:
Router#conf t 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#privilege exec level 5 conf t 
Router(config)#privilege configure level 5 interface
Router(config)#privilege interface level 5 ip address

الان أدخل لل privilege رقم 5 :

كود:
Router#disable 
Router>en 5
Password: 
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int eth0/1
Router(config-if)#ip address 10.10.10.200 255.255.255.0
تلاحظ بأنك أستطعت عمل إعدادات ال TCP/IP وبنجاح بعكس ما كان سابقاً .. !!

إذا قمت بعمل الأمر :

كود:
Router(config-if)#no shutdown
                     ^
% Invalid input detected at '^' marker.

Router(config-if)#
فانك لن تستطيع !! لذا فأنني أترك لك حل هذه العملية .. !!

ملاحظة :

كل privilege لديه default commands ,, مشكلتي هي بأنني لم أستطع التخلص
من هذه ال default commands بحيث يصبح ال privilege فارغاً بمعنى :

Blank privilege

أرجوا من الأخوة الذين تعاملوا مع هذا الموضوع الإدلاء برأيهم .. !!



في الإخير أسال من الله عز وجل أن يكون الدرس بسيطاً ومفهوماً ..

أترككم في رعاية الله وحفظه ..

Dr.pain