السلام عليكم ورحمة الله وبركاته
Pluggable Authintication Modules
أو PAM ، هي مكتبات وقوانين متخصصه ، كل مكتبة لها عملها ولها طريقة التعامل معها ، وكل خدمة بالنظام قد تستخدم PAM لجعلها أفضل من ناحية الامان والتدقيق ، تستخدم PAM لتحديد او منع عمليات الدخول للنظام سواء منع كلي او بأوقات معينه ، وتعتمد في ذلك على مكتبة وملف اعداد لمثل هذه الامور ، كما تستخدم لتحديد صلاحيات المستخدمين على الخدمات وتحديد عدد مرات دخولهم أو تحديد عدد البروسس اللي ممكن يشغلوها بالنظام ، وأمور كثيرة أخرى لا يمكن حصرها وعليك تحديد وعمل ماتريد تماما ، اما هذا الموضوع فهو مجرد مقدمة للتعامل مع PAM وسنتعلم على استخدام ثلاث مكتبات في هذا الموضوع
لنتعرف على اساسيات الاعداد أولا ، ونعرف مجلد الاعداد ومجلد استدعاء المكتبات او المودلز
اولا / مجلد pam.d ، ويستخدم لاستدعاء المكتبات
ستجد الكثير من الملفات بداخلة ، كل ملف منها تابع لخدمة أو امر أو تطبيق.
كل ملف يحتوي بداخلة على اعدادات خاصه فيه فمثلا ملف login فلننظر الى محتواه
من اليسار لليمين يحتوي على اربع اعمدة كل عمود له معنى او خاصيه او استدعاء ، سأقوم بتوضيح العمل كما يلي
العمود الاول لتوضيح نوع التدقيق ، وانواع التدقيق عديدة سنتعرف على بعضها خلال الموضوع
العمود الثاني نوع التحكم ، اما ان يكون اجباري او اختياري او يرفض مباشرة ، سنتعرف على بعضها ايضا
العمود الثالث وهو المكتبة المطلوبة او الموديول نستطيع نضع ( الفل باث ) لها او كتابة اسمها فقط في ردهات
العمود الرابع ، وهو لتمرير بعض الخيارات ان تطلب الامر ذلك .
ثانيا / مجلد 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
ونضع بداخلة السطر التالي لاستدعاء المكتبة pam_time
نحفظ الملف ، ثم نحرر ملف الاعداد time.conf الموجود بداخل مجلد security
ونضع فيه مايلي
ثم نحفظ هذا الملف ، وبكذا نكون سمحنا لسامر وعلي وعبد العزيز وعبد الكريم من الدخول فقط عند الساعه التاسعه وحتى الخامسة كل يوم.
لن اتعمق بشرح التوقيت وطريقة استخدام كل ملف لانها متشعبه ، هنا موضوع يتحدث عن اعداد time.conf بتفصيل أكثر
ثانيا / اجعل المستخدمين ( samer,ali ) يدخلون مره واحده فقط ، أما المجموعة ( manager ) تستطيع الدخول خمس مرات ، وحدد عدد 7 عمليات للمستخدم abdulaziz بحيث انه لا يستطيع تجاوز هذا العدد من البروسسور في الوقت نفسه.
لحل هذا التمرين علينا اولا استدعاء المكتبة pam_limits في ملف system-auth
نحرر الملف
[
نضع السطر التالي بداخله لاستدعاء المكتبة
ثم نحفظ الملف ، ونحرر ملف الاعداد limits.conf الموجود بداخل مجلد security
ونضع بداخلة
ثم احفظ الملف ، وبكذا عملنا التمرين كما يجب
ملفات الاعداد سهله الفهم وتستطيع رؤية امثله وقراءة بعض المعلومات عنها في نفس الملف.
ثالثا / امنع المستخدم ( abdulkareem ) من الدخول محليا.
سهلة جدا بس مايزعل علينا "عبدالكريم" صاحبنا ، علينا استدعاء المكتبة pam_access في ملف system-auth
نحرر الملف
[
نضع السطر التالي بداخله لاستدعاء المكتبة
نحفظ الملف ، ثم نقوم بتحرير ملف الاعداد access.conf الموجود بداخل مجلد security
ثم اضع السطر التالي بداخله
ثم احفظ الملف وانتهينا من حل التمرين .
بس مايهون علينا طبعا عدم دخول عبد الكريم ، نريد ان نسمح له بالدخول على النظام ولكن من خلال الهوست LinuxAC.org فقط
لعمل هذا نكتب مايلي
لاحظ العبارة EXCEPT ساعدتنا لعمل ذلك ، وايضا انظر اول حرف بالسطر ( - ) علامة الطرح وتعني منع الدخول ، ولاعطاء صلاحية الدخول من الممكن استبدالها بعلامة الجمع ( + ).
هذا الموضوع لا يغطي استخدامات 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
كود:
account required pam_time.so
كود:
[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
كود:
[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
كود:
[root@example security]# nano /etc/security/access.conf
كود:
-:abdulkareem:LOCAL
بس مايهون علينا طبعا عدم دخول عبد الكريم ، نريد ان نسمح له بالدخول على النظام ولكن من خلال الهوست LinuxAC.org فقط
لعمل هذا نكتب مايلي
كود:
-:abdulkareem:LOCAL EXCEPT LinuxAC.org
هذا الموضوع لا يغطي استخدامات PAM بل يعتبر مقدمة بسيطة جدا عنها ، لانها متشعبه وكثيرة ولن تستطيع تعلمها الا بتحديد وفهم ماتريد أولا ثم عملها كمافي الامثلة البسيطة السابقة ، ان شاء الله اسلوب الشرح كان بسيط ومفهوم.
كما ان هذا الموضوع ساعدني بكتابة هذه المقدمة فشكرا لكاتبة.
تعليق