إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Pluggable Authintication Modules - PAM

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • Pluggable Authintication Modules - PAM

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

    Pluggable Authintication Modules

    أو PAM ، هي مكتبات وقوانين متخصصه ، كل مكتبة لها عملها ولها طريقة التعامل معها ، وكل خدمة بالنظام قد تستخدم PAM لجعلها أفضل من ناحية الامان والتدقيق ، تستخدم PAM لتحديد او منع عمليات الدخول للنظام سواء منع كلي او بأوقات معينه ، وتعتمد في ذلك على مكتبة وملف اعداد لمثل هذه الامور ، كما تستخدم لتحديد صلاحيات المستخدمين على الخدمات وتحديد عدد مرات دخولهم أو تحديد عدد البروسس اللي ممكن يشغلوها بالنظام ، وأمور كثيرة أخرى لا يمكن حصرها وعليك تحديد وعمل ماتريد تماما ، اما هذا الموضوع فهو مجرد مقدمة للتعامل مع PAM وسنتعلم على استخدام ثلاث مكتبات في هذا الموضوع

    لنتعرف على اساسيات الاعداد أولا ، ونعرف مجلد الاعداد ومجلد استدعاء المكتبات او المودلز

    اولا / مجلد pam.d ، ويستخدم لاستدعاء المكتبات


    كود:
    [root@example ~]# cd /etc/pam.d
    [root@example pam.d]# ls
    apol            printconf                     system-config-keyboard
    atd             printconf-gui                 system-config-language
    authconfig      printconf-tui                 system-config-lvm
    authconfig-gtk  printtool                     system-config-mouse
    bindconf        quagga             ...............................
    ستجد الكثير من الملفات بداخلة ، كل ملف منها تابع لخدمة أو امر أو تطبيق.

    كل ملف يحتوي بداخلة على اعدادات خاصه فيه فمثلا ملف login فلننظر الى محتواه
    كود:
    [root@example pam.d]# cat login
    #%PAM-1.0
    auth       required     pam_securetty.so
    auth       required     pam_stack.so service=system-auth
    auth       required     pam_nologin.so
    account    required     pam_stack.so service=system-auth
    password   required     pam_stack.so service=system-auth
    # pam_selinux.so close should be the first session rule
    session    required     pam_selinux.so close
    session    required     pam_stack.so service=system-auth
    session    required     pam_loginuid.so
    session    optional     pam_console.so
    # pam_selinux.so open should be the last session rule
    session    required     pam_selinux.so multiple open
    من اليسار لليمين يحتوي على اربع اعمدة كل عمود له معنى او خاصيه او استدعاء ، سأقوم بتوضيح العمل كما يلي

    كود:
    type  control  module-path  module-arguments
    العمود الاول لتوضيح نوع التدقيق ، وانواع التدقيق عديدة سنتعرف على بعضها خلال الموضوع
    العمود الثاني نوع التحكم ، اما ان يكون اجباري او اختياري او يرفض مباشرة ، سنتعرف على بعضها ايضا
    العمود الثالث وهو المكتبة المطلوبة او الموديول نستطيع نضع ( الفل باث ) لها او كتابة اسمها فقط في ردهات
    العمود الرابع ، وهو لتمرير بعض الخيارات ان تطلب الامر ذلك .


    ثانيا / مجلد security ، وهو يحتوي على الاعدادات الاولية

    كود:
    [root@example pam.d]# cd /etc/security
    [root@example security]# ls
    access.conf  console.apps   group.conf   opasswd       time.conf
    chroot.conf  console.perms  limits.conf  pam_env.conf
    [root@example security]#
    سأتحدث عن ثلاث ملفات بهذا المجلد وهي :

    1) ملف time.conf للمكتبة pam_time التي تستخدم لتحديد اوقات معينه لدخول المستخدمين.
    2) ملف limits.conf للمكتبة pam_limits الذي يستخدم لتحديد صلاحيات مختلفة للمستخدمين.
    3) ملف access.conf للمكتبة pam_access الذي يستخدم لتقييد وصول بعض او كل المستخدمين والدخول للنظام.


    طبعا الملف الاول له طريقة استخدام تختلف تماما عن طريقة اعداد الملف الثاني أو الثالث.

    خدمة PAM متشعبة وكبيرة وما اريد الوصول له في هذا الموضوع هو توضيح كيف نستخدمها ، بمعرفة طريقة الاستدعاء وطريقة الاعداد لما نريد.


    لنبدأ بالتطبيق الان ، وعلي أولا أن افهم تماما ما أريد.


    أولاً / أجعل المستخدمين ( samer,ali,abdulaziz,abdulkareem ) يستطيعون الدخول للنظام من الساعه التاسعة صباحا وحتى الخامسة بالمساء.


    لعمل هذا التمرين علينا ان نستخدم الملف login ونستدعي من خلاله المكتبة pam_time ثم نضع الاعدادات في ملف time.conf

    لنقم بتحرير الملف login
    كود:
    [root@example pam.d]# nano /etc/pam.d/login
    ونضع بداخلة السطر التالي لاستدعاء المكتبة pam_time
    كود:
    account 	required	pam_time.so
    نحفظ الملف ، ثم نحرر ملف الاعداد time.conf الموجود بداخل مجلد security
    كود:
    [root@example security]# nano /etc/security/time.conf
    ونضع فيه مايلي
    كود:
    login;*;samer|ali|abdulaziz|abdulkareem;Al0900-1700
    ثم نحفظ هذا الملف ، وبكذا نكون سمحنا لسامر وعلي وعبد العزيز وعبد الكريم من الدخول فقط عند الساعه التاسعه وحتى الخامسة كل يوم.

    لن اتعمق بشرح التوقيت وطريقة استخدام كل ملف لانها متشعبه ، هنا موضوع يتحدث عن اعداد time.conf بتفصيل أكثر


    ثانيا / اجعل المستخدمين ( samer,ali ) يدخلون مره واحده فقط ، أما المجموعة ( manager ) تستطيع الدخول خمس مرات ، وحدد عدد 7 عمليات للمستخدم abdulaziz بحيث انه لا يستطيع تجاوز هذا العدد من البروسسور في الوقت نفسه.

    لحل هذا التمرين علينا اولا استدعاء المكتبة pam_limits في ملف system-auth

    نحرر الملف
    [
    كود:
    root@example security]# nano /etc/pam.d/system-auth
    نضع السطر التالي بداخله لاستدعاء المكتبة
    كود:
    session required pam_limits.so
    ثم نحفظ الملف ، ونحرر ملف الاعداد limits.conf الموجود بداخل مجلد security
    كود:
    [root@example security]# nano /etc/security/limits.conf
    ونضع بداخلة
    كود:
    samer,ali - maxlogins 1
    @manager - maxlogins 5
    abdulaziz hard nproc 7
    ثم احفظ الملف ، وبكذا عملنا التمرين كما يجب

    ملفات الاعداد سهله الفهم وتستطيع رؤية امثله وقراءة بعض المعلومات عنها في نفس الملف.



    ثالثا / امنع المستخدم ( abdulkareem ) من الدخول محليا.

    سهلة جدا بس مايزعل علينا "عبدالكريم" صاحبنا ، علينا استدعاء المكتبة pam_access في ملف system-auth


    نحرر الملف
    [
    كود:
    root@example security]# nano /etc/pam.d/system-auth
    نضع السطر التالي بداخله لاستدعاء المكتبة
    كود:
    session required pam_access.so
    نحفظ الملف ، ثم نقوم بتحرير ملف الاعداد access.conf الموجود بداخل مجلد security
    كود:
    [root@example security]# nano /etc/security/access.conf
    ثم اضع السطر التالي بداخله
    كود:
    -:abdulkareem:LOCAL
    ثم احفظ الملف وانتهينا من حل التمرين .

    بس مايهون علينا طبعا عدم دخول عبد الكريم ، نريد ان نسمح له بالدخول على النظام ولكن من خلال الهوست LinuxAC.org فقط

    لعمل هذا نكتب مايلي

    كود:
    -:abdulkareem:LOCAL EXCEPT LinuxAC.org
    لاحظ العبارة EXCEPT ساعدتنا لعمل ذلك ، وايضا انظر اول حرف بالسطر ( - ) علامة الطرح وتعني منع الدخول ، ولاعطاء صلاحية الدخول من الممكن استبدالها بعلامة الجمع ( + ).


    هذا الموضوع لا يغطي استخدامات PAM بل يعتبر مقدمة بسيطة جدا عنها ، لانها متشعبه وكثيرة ولن تستطيع تعلمها الا بتحديد وفهم ماتريد أولا ثم عملها كمافي الامثلة البسيطة السابقة ، ان شاء الله اسلوب الشرح كان بسيط ومفهوم.

    كما ان هذا الموضوع ساعدني بكتابة هذه المقدمة فشكرا لكاتبة.

  • #2
    السلام عليكم ورحمة الله وبركاته

    شرف كبير لي إني أكون أول من يرد على موضوعك

    موضوع رائع أخي عبد العزيز

    بالتوفيق إن شاء الله

    أخوك أبو فيصل ،،،
    RHCE


    Before you asking


    for q in $(ls /usr/bin/)
    do man $q
    done

    تعليق


    • #3
      حبيت أضيف معلومة صغيرة ومهمة في نفس الوقت وهي أن تكون لديك تيرمينال مفتوحة بحساب root وأن تقوم بعمل التجارب على تيرمينال اخرى

      لأنك بخطأ بسيط قد تمنع root من الدخول على النظام وساعتها ما ينفع الندم


      حقيقة موضوع كبير كصاحبه

      تقبل شكري مرة اخرى

      أخوك أبو فيصل ،،،
      RHCE


      Before you asking


      for q in $(ls /usr/bin/)
      do man $q
      done

      تعليق


      • #4
        فعلا ابو فيصل ملاحظة جيده انا نسيتها

        لمن اراد تطبيق الاوامر في هذا الموضوع عليه ان يبقي تيرمنال مفتوحة ولا يخرج منها

        يمكنك فتح ترمنال آخر بواسطة Alt+F2 بمستوى التشغيل الثالث للسيرفر level 3

        تعليق


        • #5
          السلام عليكم
          بارك الله فيك اخي عبدالعزيز.
          مواضيعك قمة في الروعة.
          الف تحية..

          تعليق


          • #6
            موضوع رائع بجد
            مشكور عبدالعزيز وبالتوفيق إن شاء الله
            echo 'echo "Leastwise-Try-It-Your-Self!"' >> ~/.bashrc

            تعليق

            يعمل...
            X
            😀
            🥰
            🤢
            😎
            😡
            👍
            👎