RH 413
July 15, 2017 | Author: imposible_man_1 | Category: N/A
Short Description
REDHAT server hardening in arabic RH413...
Description
REDHAT SERVER HARDENING (RH413)
BY: AHMED GAMIL
REDHAT SERVER HARDENING
What is Server Hardening
هذا الكتاب بمثابة soft copyلRedhat Server Hardening (RH413) course الذي قام المهندس القدير /مصطفي حمودة بشرحه كأول advanced courseيتم شرحه مجانا علي الـ youtubeعلي هذا الـ Link http://www.youtube.com/playlist?list=PLjXWa5DiEKqtgBs9lwCM0B_aoa0puDjbp باالضافة الي االستعانة ببعض مواقع االنترنت الموثوق بها لتوضيح بعض الموضوعات او التوسع في شرحها ويتحدث redhat server hardening (RH413) courseعن كيفية تأمين الـ linux serversوتقليل الثغرات التي قد تسمح بعمل attackللـ systemوكيفية معالجة الـ system bugs وهذا الكتاب مشروح باللغة العربية مع االبقاء علي المصطلحات االجنبية وااللفاظ الشائعة كما هي وذلك لتسهيل ربط المعلومات النظرية بالواقع العملي كما يحتوي علي الكثير من الصور لتيسير الفهم والتطبيق ،وهذه الصور من واقع الـ LABالخاص بي والذي قمت بإنشائه لتطبيق الـ courseعمليا اسأل هللا ان يجعل عملي خالصا لوجهه الكريم وال تنسونا من صالح دعائكم
1
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
What is Server Hardening
Contents What is Server Hardening .......................................................................................................................5 Course Contents ......................................................................................................................................5 Security updates ......................................................................................................................................5 CVE: common vulnerability and exposure..........................................................................................6 National Vulnerability DB (NVD)..........................................................................................................7 Package Verification............................................................................................................................. 13 Package hashing .............................................................................................................................. 14 Package manager ............................................................................................................................ 16 Backporting ....................................................................................................................................... 20 File system encryption ..................................................................................................................... 21 Mount .................................................................................................................................................... 27 Mount options ................................................................................................................................... 29 nodev ............................................................................................................................................. 29 noexec ........................................................................................................................................... 29 nosuid............................................................................................................................................ 30 File system attributes ........................................................................................................................... 30 Normal attributes ............................................................................................................................. 30 File attributes .................................................................................................................................... 30 Extended attributes .......................................................................................................................... 32 User attributes .............................................................................................................................. 35 Security attributes ........................................................................................................................ 36 Trusted attributes ......................................................................................................................... 36 Extended attributes ...................................................................................................................... 36 Special permissions ............................................................................................................................. 37 File types ....................................................................................................................................... 37 Access permissions ...................................................................................................................... 37 Permissions types......................................................................................................................... 38 Find files with permissions .............................................................................................................. 40 Monitor file changes............................................................................................................................. 41 AIDE ....................................................................................................................................................... 41 AIDE files ........................................................................................................................................... 42 AIDE UASGE ...................................................................................................................................... 45 UMASK .................................................................................................................................................. 47
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
2
REDHAT SERVER HARDENING
What is Server Hardening
ACL ........................................................................................................................................................ 49 AAA ........................................................................................................................................................ 51 PAM ....................................................................................................................................................... 52 What is PAM ? ................................................................................................................................... 52 How PAM works ? ............................................................................................................................. 53 Module interface/ PAM facility/Type .......................................................................................... 54 Control /policy .............................................................................................................................. 55 Module Name/Path ...................................................................................................................... 56 Module Arguments ....................................................................................................................... 57 Examples ....................................................................................................................................... 59 Password Aging .................................................................................................................................... 69 Securing GRUB ..................................................................................................................................... 74 Customizing RHEL6 .............................................................................................................................. 76 Login banners ................................................................................................................................... 76 Pre-login banner ........................................................................................................................... 76 Post-login banner ......................................................................................................................... 78 Instant messages ............................................................................................................................. 80 Wall Command ............................................................................................................................. 80 Write Command ............................................................................................................................ 81 Gnome login users ........................................................................................................................... 81 Gnome Power Button ....................................................................................................................... 86 Gnome Banner Message ................................................................................................................. 87 Authentication systems ........................................................................................................................ 88 IPA server .............................................................................................................................................. 89 Install ipa-server ............................................................................................................................... 90 Install ipa client ................................................................................................................................ 95 Uninstall ipa client or remove client from domain ......................................................................... 98 Using ipa server with GUI ................................................................................................................. 98 Adding new user ........................................................................................................................... 98 Adding hosts/clients .................................................................................................................. 102 Add group .................................................................................................................................... 103 Add user to group ....................................................................................................................... 104 Setting password policy ............................................................................................................. 106 Add new password policy ........................................................................................................... 107
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
3
REDHAT SERVER HARDENING
What is Server Hardening
Using ipa server with CLI ................................................................................................................ 109 Add new user .............................................................................................................................. 112 Find existing user ....................................................................................................................... 113 Edit password policy ................................................................................................................... 114 Add new group ............................................................................................................................ 115 Search existing group ................................................................................................................ 115 Host based access control ............................................................................................................. 116 HBAC Rules ................................................................................................................................. 116 HBAC Service Groups ................................................................................................................. 122 HBAC Test ................................................................................................................................... 124 Rsyslog ............................................................................................................................................ 126 Install rsyslog on client and server ............................................................................................ 127 Configure client........................................................................................................................... 127 Configure Server ......................................................................................................................... 128 Test logging ................................................................................................................................. 129 Encrypting Syslog Traffic with TLS (SSL (................................................................................... 129 Summery ............................................................................................................................................. 140
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
4
REDHAT SERVER HARDENING
What is Server Hardening
RH 413
REDHAT SERVER HARDENING What is Server Hardening بحيثvulnerabilities بشكل عام وتقليل الhow to secure your linux server عنcourse يتحدث هذا الـ للعمل عليهusers والservices يصبح مناسب لجميع ال او غيرهاoracle DB معين مثلapplication معينه اوservice لـsecuring بعملcourse وال يتعلق هذا الـ
Course Contents : تغطية العديد من المواضيع مثلcourse سنحاول في هذا الـ Security updates Package verification File system encryption SUID, SGID ACL PAM Iptables, firewall Identity management (IDM) Log management Grub security Audit Key logging Mounting options
Security updates : security threads سنتحدث اوال عن الsecurity updates قبل ان نتحدث عن ال : الي نوعينsecurity threads يمكن تقسم ال system للدخول علي الـhacker يستخدمه الـSW coding وهو خطأ في ال: vulnerability -1 بالحصول علي معلومات تساعده في عمل الـattacker يسمح للـSW configuration هو خطأ في الـ: exposure -2 التي تظهر في صفحات االنترنتapache مثل معلومات الـ، attack AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
5
REDHAT SERVER HARDENING
Security updates
وكل شركة تقوم بعمل Updatesلبرامجها لتفادي هذه الـ security threadsوتضع لها standard nameخاص بها فمثال تقوم redhatبتسمية الـ updatesبـ ”“FEDORA-EPEL-year of update-update no او ”“RHSA--year of update-update no بينما الـ standard namesالتي تضعها شركه Microsoftمثال لها شكل اخر ولكن قامت احدي الهيئات االمريكية بعمل projectمسئول عن تجميع هذه الـ updatesمن جميع الشركات ووضع standard nameموحد وهذا الـ projectيسمى CVE
CVE: common vulnerability and exposure
الـ CVEهو dictionaryوليس DBيقوم بتسجيل ال security threadsالتي تم اكتشافها من جميع الشركات ويضع لها standard nameووصف مختصر ،ثم يقوم بارسالها الي العديد من الـ databasesمثل الـ National Vulnerability DB ) (NVDبحيث تستطيع اي security toolالوصول اليها والحصول علي معلومات منها
وال CVEتصف ال SW mistakeبالـ vulnerabilityاذا كان يسمح لل attackerبـ : -1الدخول علي ال systemمباشرة وتنفيذ اي commandكـ system user -2عمل denial of service -3الحصول علي بيانات غير مصرح له بيها كما انها تصف ال configurationالخاطئة بالـ exposureاذا كانت هذه االخطاء ال تسمح لل attackerباختراق ال system بشكل مباشر بل توفر له المعلومات فقط : 6
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Security updates
او اخفاء ما يقوم بهsystem بالحصول علي معلومات عن الattacker تسمح لل-1 https://cve.mitre.org/about/terminology.html
National Vulnerability DB (NVD) security checklists, مثلsecurity information الخاصه بالdatabases للعديد من الrepository هو misconfigurations, product names, and impact
fix information, severity scores, and ثم تقوم بعملCVE من الsecurity threads تحصل علي الDBs وهذه ال impact ratings
http://nvd.nist.gov/about.cfm
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
7
REDHAT SERVER HARDENING
Security updates
نعود مرة اخري الي ال ، Updatesنستطيع تقسيم ال updatesالي 3انواع : 1- RHSA : RedHat Security Advisory Critical Security Notice
خاصة بمشاكل ال unauthenticated remote accessللوصول الي ال serverاو run scriptعليه مثل مشكلة ال opensslالشهيرة التي تسمح للـ remote userان يصل الي الـ memoryويحصل منها علي معلومات Important Security Notice
خاصة بمشاكل الـ ، system availabilityمثل ان يقوم شخص بارسال requestsكثيرة جدا الي ال apache serverفيؤدي ذلك الي استهالك ال memoryوتوقف ال server كما انها تختص باي مشكلة تسمح للـ local userبالحصول علي صالحيات الـ root Moderate Security Notice
خاصة بالمشاكل التي يصعب علي ال attackerاستغاللها او تحتاج الي expert attackerلكي يستطيع استخدامها مثل معظم مشاكل الـ java Low Security Notice
خاصة بالمشاكل التي ال تسبب خطورة كبيرة علي الـ ، systemوهذه المشاكل ال تحدث اال في ظروف نادرة 2- RHBA : RedHat Bug Advisory وهي updatesالصالح ال bugsالموجودة في ال applicationوالتي تؤدي الي حدوث crashاو wrong outputنتيجة مشاكل في ال source codeاو ال design 3- RHEA : RedHat Enhancement Advisory وهي Updatesتضيف المزيد من ال featuresالي ال ، applicationولكنها قد تقوم بتغيير الـ configuration fileللـ serviceالتي تقوم بتحديثها وقد يؤدي ذلك الي توقف ال serviceعن العمل وللحصول علي ال security updatesباستخدام ال yumيجب عمل installللـ yum-plugin-security.noarch 8
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
Security updates
REDHAT SERVER HARDENING
ونالحظ من الصورة السابقة ان ال loaded pluginsال تحتوي علي ، securityلذلك يجب عمل installلها
وعند اضافة هذا ال pluginفيتم وضع ال config fileالخاص به في /etc/yum/pluginconf.d/
فتظهر كالتالي
9
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Security updates
وكما نرى في الصورة السابقة انه تمت اضافة ال security plugin ونستطيع معرفة ال updatesالتي يحتاجها الـ systemوانواعها عن طريق االمر # yum updateinfo
فتظهر الـ updatesالمتاحة للـ systemوهي 3 Security notice(s) :و ) 2 Bugfix notice(sو 1 Enhancement ) ، notice(sوقد تختلف طريقة عرض الـ outputباختالف الـ distribution ولعرض تفاصيل الـ updatesنستخدم االمر : # yum updateinfo list
ولعرض مزيد من التفاصيل عن جميع الـ updatesالمتاحة # yum updateinfo info
10
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Security updates
Update ID معين باستخدام الupdate ولعرض تفاصيل عن # yum updateinfo RHSA-2014:0919:R6-64
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
11
REDHAT SERVER HARDENING
Security updates
ونالحظ ان الـ ” update ID : “FEDORA-EPEL-2013-11585في fedoraويكون شكله "RHSA-2014:0919:R6-64 " في Redhatويختلف عنه في CVE ويمكن استخدام الـ yumمع الـ CVE ID # yum updateinfo --cve= CVE-2014-1556
وهنا قام بعرض معلومات ال CVEونوع ال updatesالمسئولة عنها بينما اذا اردنا ان نعرض مزيد من التفاصيل عن الـ packagesالتي يتحدث عنها هذا الـ CVEفنقوم بتنفيذ االمر التالي : # yum updateinfo list --cve= CVE-2014-1556
12
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Package Verification
security and bugfix and enhancement “ فسوف يقوم بتحديث جميع االنواعyum update” فاذا قمنا بتنفيذ االمر : ) فنقوم بكتابة االمرcritical, important, moderate, low ( فقط بجميع انواعهاsecurity update اما اذا اردنا عمل # yum update --security
: فنقوم بكتابة االمرUpdate ID باستخدام الـupdate اما اذا اردنا عمل # yum update --advisory=RHSA-2014:0919:R6-64
Package Verification AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
13
REDHAT SERVER HARDENING
Package Verification
الـ package verificationتعني التأكد من صحة وسالمة أي packageقبل ان اقوم بعمل Installلها والتأكد من مصدرها وال يجب عمل installالي Packageمن اي مكان غير موثوق به ولكن لماذا ؟ الن الـ rpm packageتتكون من مجموعة من الـ scriptsوقد يستطيع الـ hackersالتالعب فيها او اضافة scriptsضارة، وهذا يسبب خطر كبير علي الـ systemوهذا يظهر كالتالي # rpm --qp –scripts package_name.rpm
وكما نري ان الـ RPM packageتتكون من مجموعة من الـ scritpsالتي يمكن ان تعمل قبل بداية الـ installationاو الـ ، uninstallationومن هنا تأتي اهمية الـ package verification وهناك طريقتين للتأكد من سالمة الـ : packages -1باستخدام الـ package hashing -2باستخدام الـ package manager
Package hashing 14
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Package Verification
كل fileاو packageلها hashوهو عبارة عن checksumخاص به ،واي تغيير في هذا الـ fileيؤدي الي تغيير الـ ،hash وهناك اكثر من algorithmيستخدم لمعرفة الـ hashمثل md5, sha ولمعرفة الـ md5الي Packageنستخدم االمر : # md5sum package_name
ولمعرفة الـ shaالي packageنستخدم االمر : # sha512sum package_name
ولكن كيف نتأكد ان هذا الـ fingerpringالذي ظهر هو االصلي ؟ يجب ان نقارن بينه وبين الـ fingerpringاالصلي القادم من الشركة اما عن طريق النظر او عن طريق االمر # # md5sum -c md5_fingerpring
ولكن اذا اعدنا الـ fileالي اصله مرة اخري سيعود الـ hashاالصلي
15
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Package Verification
Package manager key مثل اسمها ووصف مختصر لها والـPackage وهي معلومات عن الـmetadata عليrpm يحتوي كل # rpm -qpi Package_name
redhat ومن هنا نجد ان، vendor الخاصه بالـsignature تحتوي علي الـmetadata وكما نرى في الصورة السابقة الـ ،hashing والـsignature (public key) وهما الـpackage verification تستخدم طريقيتين لعمل الـ md5sum.txt باسمredhat علي موقعHashes تحدثنا عنه سابقا وعن كيفية التأكد من صحته وتوجد الـHashing والـ redhat site “ اوعليRPM-GPG-KEY-redhat-release” باسمinstallation CD يتوفر في الـpublic key بينما الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
16
REDHAT SERVER HARDENING
Package Verification
ومحتوياته هي
verification لعمل الـadmin للـpublic key والـHash file تقوم بتوفير الـredhat اذا فإن : نقوم ببعض الخطواتPublic key عن طريق الـpackages للـverification ولكي نستطيع عمل AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
17
REDHAT SERVER HARDENING
Package Verification
system علي الـkeys للـimport نقوم بعمل-1 CLI باستخدام الـverification ثم نقوم بعمل-2 system الحالية في الـimported keys ولكن ما هي الـ # rpm -qa gpg-pubkey
“ عندNo Key” ورسالةwarning وهذا هو سبب ظهور الـ، system في الـimported keys نالحظ هنا انه ال توجد metadata استعراض الـ
error يظهر هذا الـpackage verification او حتي عند محاولة عمل # rpm –K package_name
Official CD من الـkeys للـImport لذا نقوم بعمل rpm --import Path_to_key
التي تم اضافتها مرة اخريkeys ثم نتأكد من # rpm -qa gpg-pubkey
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
18
REDHAT SERVER HARDENING
Package Verification
key ولمعرفة تفاصيل الـ # rpm -qi key_name
keys مرة اخرى بعد اضافة الـverification نقوم االن بعمل
warning وسنالحظ اختفاء الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
19
REDHAT SERVER HARDENING
Package Verification
ولحذف imported keyنستخدم االمر # rpm -e gpg-pubkey-2fa658e0-45700c69
ومن الجدير بالذكر ان هذه الـ imported/trusted keysيتم تخزينها في /var/lib/rpm
Backporting سنتحدث االن عن جزء بسيط نظري وهو الـ backportingاو الترقية والـ backportingهو عمليه اصالح security problemموجود في اصدار سابق من الـ , softwareذلك باالستعانه باالصدار االحدث منه مثال :اذا كان لدي software V1يحتوي علي security vulnerabilityمعينه ،ثم قام الـ software developersباصدار النسخة software v2التي عالجت هذا الـ security vulnerability فيتم تطبيق جزء من الـ codeالجديد والذي له يعالج هذه الـ security problemواضافتها الي الـ softwareالقديم ،وهذا الجزء يعرف بالـ fix
20
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Package Verification
الموجودة في االصدار القديم بدون الحاجه الي تحديث الـsecurity problems انه يعالج الـBackporting ومن مميزات الـ configuration files المستخدمه او الـModules قد ينتج عنه اختالف في الـsoftware حيث ان تحديث الـsoftware لبعض الـinstall او عملsoftware version عمل تحديث للـsecurity issue ولكن نادرا ما يتطلب اصالح هذا الـ لن يؤثر علي اي شيئ آخرupdate او هذا الـpackages االخري ولكن ذلك يتم بعد التأكد من ان هذه الـpackages https://access.redhat.com/security/updates/backporting
File system encryption
؟file system encryption ما هو الـ key بـpartition او الـfile system للـlock هو ؟file system encryption لماذا نقوم بعمل forbidden access او الـHDD في حالة سرقة الـpartition للحفاظ علي محتويات الـ
؟file system encryption كيف نقوم بعمل ويقوم ببعض الوظائفencrypted partition اليpartition الذي يحول الـluks (linux unified key setup) باستخدام الـ االخرى كما سنرى الحقا virtual point والـmount point ولكن لنتحدث اوال عن الفرق بين الـ والتعامل معهdevice نستطيع منها الدخول علي الـwindow هيMount point الـ encrypted بعملها لكي يستخدمها في التاعمل مع الـluks utility يقوم الـvirtual device هي بمثابةvirtual point بينما الـ لهاmount point ولكي نستطيع استخدماها يجب عملFS :LVM تشبه الـvirtual point (virtual device) والـ LVM path: /dev/mapper/vg_pxeserver-lv_root
and its mount point
/
Virtual point path: /dev/mapper/mydata
and its mount point
/data/
اال عنvirtual device فال نستطيع ايضا استخدام الـ، mount point مباشرة اال عن طريقLVM ومثلما ال نستطيع استخدام الـ mount point طريق ؟mapper (device mapper) وما هي الـ والـLVM مثل الـvirtual device (virtual point) عليblock device لـmapping يقوم بعملkernel subsystem هو الي الـvirtual device من الـdata وهو المسئول عن نقل الـFS snapshot مثلfeatures ويضيف له بعض الـRaid block device http://en.wikipedia.org/wiki/Device_mapper : واستخدامه يجب ان نقوم باالتيencrypted FS اذا لكي نستطيع عمل 1- Format FS using luks 2- Create virtual point 3- Convert FS to ext4 AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
21
REDHAT SERVER HARDENING
Package Verification
4- Create mount point 5- Mount FS on boot عليهencryption “ يصلح لتنفيذ الـ/dev/sdb1” جديدpartition لدينا االن
له باستخدام االمرformatting نقوم االن بعمل-1 # cryptsetup luksFormat /dev/sdb1
encryption للـPassphrase ويجب ان نضع، partition هذه الخطوة تقوم بمسح جميع محتويات الـ: ملحوظة : نستخدم االمرencrypted partition بعد تحويله اليpartition ولعرض معلومات الـ # cryptsetup luksDump /dev/sdb1
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
22
REDHAT SERVER HARDENING
Package Verification
باستخدام االمرvirtual point/device نقوم اآلن بعمل-2 # cryptsetup luksOpen /dev/sdb1 mydata
تماماLVM مثل الـ/dev/mapper بداخلvirtual device (mydata) نجد هنا انه قام باضافة AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
23
REDHAT SERVER HARDENING
Package Verification
)/dev/sdb1 ولننسى/dev/mapper/mydata (ومن االن سنتعامل مع الـext4 اليFS نقوم االن بتحويل الـ-3 # mkfs.ext4 /dev/mapper/mydata
device لنتمكن من التعامل مع هذه الـmount point نقوم االن بعمل-4
FS ولكن قبل هذه الخطوة يجب ان نتحدث قليال عن الـstartup عند الـFS للـautomount نقوم بعمل-5 encryption/decryption قمنا باستخدام االمرvirtual device عنتدما قمنا بعمل # cryptsetup luksOpen /dev/sdb1 mydata : نقوم بتنفيذ االمر التاليvirtual device واللغاء الـ، passphrase وطلب منا ادخال الـ # cryptsetup luksClose mydata
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
24
REDHAT SERVER HARDENING
Package Verification
سنجد ان mydataقد اختفت والعادتها مرة اخرى فسنقوم بتنفيذ loksOpenوادخال الـ passphrase اذا فعند اغالق الـ serverفسيتم الغاء الـ virtual deviceوعند اعادة تشغيلة مرة اخرى فيجب تنفيذ loksOpenوادخال الـ passphraseثم عمل ، mount
اذا كيف نقوم بعمل ذلك ؟ نقوم باضافة بيانات الـ virtual deviceفي ملف crypttabحتي يقوم الـ systemبعمل الـ encryptionاثناء الـ
.i
startup .ii
نقوم بعمل keyيستخدمه الـ systemلعمل الـ encryptionاثناء الـ startup
.iii
نقوم بتعيير الـ key permissionبحيث يكون accessableللـ rootفقط
.iv
نقوم باضافة الـ virtual deviceلملف الـ fstab
.v
نقوم باضافة الـ key fileالي الـ luksحتي يستطيع الـ systemاستخدامه -1
نضف في ملف الـ crypttabاسم الـ virtal deviceوالـ block deviceوالـ key fileالذي سيستخدمه الـ system في عمل الـ encryption
-2
نقوم بعمل الـ keyويمكن ان يكون ملف عادي او صورة او اي شيء اخر
-3نقوم بتعديل الـ permissions
25
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Package Verification
وأي تعديل علي الفايل محتويات الـ key fileفلن يستطيع الـ systemعمل mountingله اثناء الـ startupوسينتج عنه هذا الـ error
واذا لم نقوم بتغيير الـ Permissionفسوف يظهر هذا الـ warningاثناء الـ reboot
-4نقوم بالتعديل علي ملف الـ fstab
-5نقوم باضافة الـ key fileالي الـ luksحتي يستطيع الـ systemاستخدامه # cryptsetup luksAddKey /dev/sdb1 /etc/secret
26
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Mount
startup اثناء الـautomount وعملFS encryption وبذلك نكون قد اتممنا عمل
Mount يستخدم لعملmount فالـ، file system attributes كمدخل الي الموضوع التاليMount سنتحدث االن عن الـ . file system option لـenable/disable عن طريق االمرfile system للـmount نستطيع عمل # mount /dev/sda3 /work : نستخدم االمرFS علي هذا الـextended attributes او تفعيل الـACL option مع اضافةfile syetsm لـMount ولعمل # mount /dev/sda3 /work –o acl # mount /dev/sda3 /work –o user_xattr : نستخدم االمرalready mounted FS لـoption والضافة هذا الـ # mount –o remount,acl,user_xattr /work : وهمmount تتعلق بالـ3 files وهناك /etc/mtab, /etc/fstab, /proc/mounts عند بدايةsystem ويقوم الـ، mount options والـmount point والـdevices يحتوي علي الـfile هو: /etc/fstab/ manual يكونfile والتعديل على هذا الـ، وتنفيذهfile بقراءة هذا الـstartup الـ
file “ فانه يقوم بالذهاب لهذا الـmount” وعند كتابة االمر، mounted devices يحتوي علي الـfile هو: /etc/mtab/ وعرض محتوياته
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
27
Mount
REDHAT SERVER HARDENING
ونجد انها متطايقة تماما مع الـ mtab
واذا نظرنا الي اخر سطر في الصورة سنجد انه قد تم عمل Mountللـ /testبـ )rw permissions (default attributes وهي تعتبر الـ ) ، default permissions (attributesوعند اضافة اي attributesالي الـ file systemسنجده قد اضيف بجانب الـ rw attribute
وليس بالضرورة ان يكون الـ mtabوالـ fstabمتماثلين ،فعندما نقوم بعمل mountالي new deviceبعد تشغيل الـ machineفسوف تضاف تلقائيا في الـ mtabوليس في الـ fstab : /proc/mounts/هو fileيحتوي علي الـ mounted devicesوالـ mount optionsالتي يستخدمها الـ kernelحاليا، وهذه الـ dataتعتبر duplicatedمن ملف mtab
28
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Mount
Mount options . اليهfeatures الضافة بعض الـmount اثناء الـfile system تضاف اليoptions هيmount options الـ no dev, noexec, nosuid, user_attr,… : مثل
nodev file system تحت هذا الـblock device اي ال تقوم باضافة اي، no device وتعني هوfile وهذا الـ، sda باسم مثلfile ويخصص له/dev يظهر تحتsystem جديد يضاف للـdevice ومن المعروف ان اي device الذي يسمح لي بالتعامل مع الـ dev اخر غيرfile system جديد ان يضاف تحت ايdevice وال يسمح الي : اخر نستخدم االمرmount option او ايoption مع اضافة هذا الـFS للـMount ولعمل # mount –o remount,nodev /work
noexec executable file هو الذي يقوم بتشغيل الـroot user من التشغيل حتي اذا كان الـexecutable file لمنع اي : نستخدم االمرalready mounted FS لـoption والضافة هذا الـ # mount –o remount,noexec /test
مرة اخرىoption واللغاء هذا الـ # mount -o remount,exec /test
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
29
REDHAT SERVER HARDENING
File system attributes
nosuid group او الـowner بصالحيات الـfile من تشغيلuser لمنع اي
File system attributes تصفmetadata تحتوي عليfile systems وهذه الـFAT, EXT, XFS, JFS مثلlinux file systems هناك العديد من الـ التي يدعمهاFeatures وتحدد الـfile system الـ مما يسمح باضافة المزيدfile system الي هذا الـattributes عن طريق اضافة المزيد من الـFeatures ويمكن زيادة هذه الـ التي بداخلهfiles/dir علي الـfeatures من الـ : اليattributes وتنقسم هذه الـ normal attributes -1 file attributes -2 Extended attributes -3
Normal attributes او التي تظهر عند استخدام االمرpermissions, owner, group, size, … مثل الـinode المرتبطة بالـattributes هي الـ file systems وتوجد في جميع انواع الـ، )rwx,d,..( ls –l : نستخدم االمرInode index الموجوده في الـnormal attributes والستعراض الـ # stat filename
File attributes اخرى تضاف الي الـattributes وهي، extended file systems (ext2, ext3, ext4) علي الـfile attributes تطبق الـ مثل الغاء عمليه حذف الملفات او التعديل عليها، security والـcontrol بهدف تحقيق المزيد من الـfiles/directories Package e2fsprogs Files /usr/bin/chattr /usr/bin/lsattr lsattr نستخدم االمرattributes ولعرض الـ، attributes اضافة/ لتغييرchattr ويستخدم االمر بالطريقة التاليةattribute ونقوم باضافة الـ، overwrite فقط بدونfile وهي تقوم باالضافة الي الـappend only وتعني-a وكما نرى انه يمكن االضافة علي الملف AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
30
File system attributes
REDHAT SERVER HARDENING
ولكن ال يمكن عمل overwriteله
-iوتعني immutableوهي تقوم بمنع اي actionيتم علي الـ fileسواء deleteاو appendاو modify # chattr +i /test/script
ولن يمكن حذف الملف حتي بالـ root user
ولحذف الملف يجب ان نلغي هذا الـ attributeاوال عن طريق # chattr -i /test/script
-jوتعني journalingوالـ journalingتستخدم للحفاظ علي الـ dataمن الضياع في حالة االنقطاع المفاجئ للكهرباء او حدوث اي مشكلة في الـ serverوذلك عن طريق اضافة logsمنفصلة للـ dataالتي يتم كتابتها علي الـ file systemوهذه الـ logsهي
31
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
File system attributes
file system تجبر الـattribute واضافة هذا الـ. corrupted data مرة اخري الستعادة الـfile system التي يستخدمها الـ file عند التعامل مع هذا الـjournaling علي استخدام الـ journaling يدعم الـfile system وكما نرى في الصورة التالية ان الـ
file الي الـattribute ولكن يجب اضافة الـ # chattr +j /test/script attribute فاذا تم تطبيق هذا الـdump command باستخدم الـBackup وهي تستخدم في حالة عملno dump وتعني-d dump فسوف يتم استثناءه من عمليه الـfile علي الـ # chattr +d /test/script
فعندما تقوم، عند الكتابه عليهfile system والـRAM يتم بين الـsynchronization وهذا الـno synchronous وتعني-s فستتم الكتابةfile علي الـattribute فاذا تم تطبيق هذا الـ، file ومنها الي الـRAM تتم الكتابة اوال علي الـ، بالكتابة علي ملف ما RAM وتجاهل الـfile مباشرة علي الـ # chattr +s /test/script
Extended attributes inode لهobject او ايfiles / directories للـspecial type of metadata تضيفattributes هي extended يدعم الـfile system يجب اوال ان يكون الـfile system معين بداخل الـfile عليattribute والضافة ext2, ext3, ext4, XFS, JFS and reiserfs filesystemse مثلattributes : هيextended attributes وانواع الـ user attributes -1 security attributes -2 trusted attributes -3 extended attributes -4
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
32
REDHAT SERVER HARDENING
File system attributes
التي تم عملها اثناء الـpartitions علي الـenabled by default تكونextended attributes ومن الجدير بالذكر ان الـ فيجب تفعيل الـfdisk جديد باستخدام الـpartition في حين اننا اذا قمنا بعمل، )anaconda (عن طريق الـinstalling OS disabled by default عليه النهextended attributes : بجب عمل عدة خطواتfile /directory اليextended attribute والضافة الـ user_xattr option باضافةFS للـmount نقوم بعمل-1 files/dir الي الـextended attributes ثم نقوم باضافة الـ-2 getfattr, setfattr : هيextended attributes التي تستخدم مع الـcommand والـ Package: attr (called user space application) Files:
/usr/bin/attr /usr/bin/getfattr /usr/bin/setfattr : باستخدام االمر التاليextended attributes يدعم الـfile system نتأكد من ان الـ: اوال
# tune2fs -l /dev/sdb2
enabled اصبحتext_attr والـmounted قد اصبحpartition وكما نرى ان الـ extended وهذا يعني اننا لكي نقوم بتفعيل الـnone سنجدهdefault mount option ولكن اذا نظرنا جيدا للسطر الخاص بالـ mount command في كل مرة الي الـuser_xattr option يجب ان نقوم باضافةpartition علي هذا الـattributes باحدى الطرق التاليةautomount ولكي نقوم بالتغلب علي ذلك نقوم بعمل fstab file في الـoption نضع الـ-1 وذلك باستخدام االمرextended attributes الذي يقوم بتفعيل الـtune2fs نستخدم االمر-2 # tune2fs -o user_xattr /dev/sdb2
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
33
REDHAT SERVER HARDENING
File system attributes
user_xattr اليnone قد تغيرت منDefault mount options حيث سنالحظ هنا ان الـ # tune2fs -l /dev/sdb2
default option هو الـextended attributes سيكون الـPartition لهذا الـmount وبذلك فان اي نستخدم االمرMount option والزالة هذا الـ # tune2fs -o ^user_xattr /dev/sdb2
باستخدام االمرextended attributes نقوم باضافة الـ: ثانيا # setfattr -n user.comment -v "version 1" /test
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
34
REDHAT SERVER HARDENING
File system attributes
نستخدم االمرfile الموجوده علي الـextended attributes والستعراض الـ # getfattr /test/
نستخدم االمرvalue بالـattribute والظهار الـ، value قد ظهر ولكن بدونattribute وكما نري ان اسم الـ # getfattr -d /test/
او # getfattr -n user.comment /test/
: نستخدم االمرattribute واللغاء الـ # setfattr -x user.comment /test
بمزيد من التفصيلextended attributes واالن لنتعرف علي انواع الـ
User attributes مثلfile/directory ( عن الـmetadata) تسمح باضافة معلومات اخرىfile/directory تطبق علي الـattributes هي : مثال. comments, mime type, character set or encoding of a file # setfattr -n user.creator -v "Ahmed Gamil" /test/
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
35
REDHAT SERVER HARDENING
File system attributes
Security attributes بتطبيقmodules بحيث تقوم هذه الـselinux مثل الـkernel موجوده في الـsecurity modules تستخدمهاattributes هي نستخدم االمرsecurity attributes والستعراض الـ، files/folders علي الـattributes هذه الـ # ls –Z /file # setfattr -n security.linux -v "system_u:object_r:admin_home_t:s0" /test/
Trusted attributes # setfattr -n trusted.md5sum -v f693f418636a0bd9659fbb1c4ce3f198 /test/script
Extended attributes
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
36
REDHAT SERVER HARDENING
Special permissions
Special permissions اآلن سنتذكر معا موضوع سابق وهو الـ ، permissionsعند استعراض معلومات اي fileباستخدام االمر lsسنجد التالي
File types
:Character deviceهو الـ deviceالذي يتعامل مع الـ dataبالـ characterحيث ترسل الـ dataوتستقبلها character by characterمثل الـ CDROM, sound cards, printers :Block deviceهو الـ deviceالذي يتعامل مع block of dataمثل الـ hard disk, taps :Pipe deviceعند استخدام االمر pipeيقوم الـ systemبتنفيذ االمر االول ووضع الناتج في fileيطلق عليه unnamed pipeثم يأخذ منه الناتج وينفذ عليه االمر الثاني .وهذا الـ fileيسمي unnamed pipeالن الـ systemهو الذي يقوم بانشائه والتعامل معه في الـ back ground ويستطيع الـ userعمل pipe fileلنفس الغرض ويعطي له اسم وبالتالي يسمي named pipe fileويتم ذلك باستخدام االمر # mkfifo filename
ويمكن استخدام هذا الـ fileكالتالي & # gzip -9 -c < my_pipe > out.gz وهذا يعني ان اي يقوم بعمل zipالي شيئ يأتي علي الـ pipe fileويضعه في out.gz
Access permissions وانواع الـ access permissionsهي r, w,x 37
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Special permissions
Permissions types : permissions هناك نوعين من الـ read, write, execute مثل: normal permissions -1
SUID, SGID, STICKY BIT مثل: special permissions -2
file owner وكأنه الـexecutable file للـrun بعملUser وهي تسمح للـ:SUID file group owner في الـmember وكأنهexecutable file للـrun بعملUser وهي تسمح للـ:SGID temp directory منه واشهر مثال له هو الـfile من حذف ايuser لمنع ايdirectory تطبق علي الـ:Sticky bit S=suid, T=stickybit x permission اذا كانت بدونspecial permissions capital letter وتكون الـ s=suid+x, t=stickybit+x x permission اذا كان لهاspecial permissions small letter وتكون الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
38
REDHAT SERVER HARDENING
Special permissions
: بطريقتينpermissions ويتم التعبير عن ال permission
read
write
execute
SUID
SGID
Sticky bit
Symbolic
r
w
x
s/S
s/S
t/T
Numeric
4
2
1
4
2
1
SUID والضافة # chmod 4644 filename SGID والضافة # chmod 2644 filename StickyBit والضافة # chmod 1644 filename
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
39
REDHAT SERVER HARDENING
Special permissions
Find files with permissions كالتاليfind في امرexact permission معين فنكتب الـpermission لهfile وللبحث عن # find /bin/ -perm 4755
“-” “ او/” اخرى نستخدمnormal permissions معين وأيspecial permission تحتوي عليfiles وللبحث عن اي normal permissions بغض النظر عن الـspecial permissions “ للـand” “ لعمل-” حيث تستخدم normal permissions بغض النظر عن الـspecial permissions “ للـor” “ لعمل/” و تستخدم ملفات4 اذا كان لدينا: مثال SUID يحتوي عليscript SGID يحتوي عليscript1 StickyYBit يحتوي عليscript2 SGID + SGID + StickyYBit يحتوي عليscript3
" كالتالي-" الموجوده في الملف نستخدمpermissions بغض النظر عن باقي الـSUID+SGID يحتوي عليfile فللبحث عن اي AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
40
REDHAT SERVER HARDENING
Monitor file changes
;\ # find /test/ -perm -6000 -exec ls {} -l
وللبحث عن اي fileيحتوي علي SUIDاو SGIDاو االثنين معا بغض النظر عن باقي الـ permissionsالموجوده في الملف نستخدم " "/كالتالي ;\ # find /test/ -perm /6000 -exec ls {} -l
Monitor file changes من المفيد جدا متابعة التغيرات التي تحدث علي الـ systemوالتأكد من ان هذه التغيرات ليست نتيجة اي forign userاو forien activity ومن الـ toolsالشهيرة التي تستخدم في عمل monitoringللـ systemهم AIDEو ، SAMHAINوهي تعتبر host based toolsوهناك ايضا network based toolsمثل ، snortولكننا سنتحدث االن عن AIDE
AIDE فكرة عمل AIDEتقوم علي الحصول علي screenshotمن الـ file systemالتي تريد مراقبتها وتسجيلها في DBواي تغير يحدث عليه يقوم AIDEبتسجيله
ولنتذكر كيفية استعراض معلومات الـ package
41
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
AIDE
AIDE files /etc/aide.conf فيconfiguration file ويوجد الـ /var/log/aide فيlog file وتوجد الـ /var/lib/aide فيDB وتوجد الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
42
REDHAT SERVER HARDENING
AHMED GAMIL -
LNKD.IN/D6QEGWN
AIDE
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
43
REDHAT SERVER HARDENING
AIDE
2 DB file names ان هناكconfiguration file نالحظ في الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
44
REDHAT SERVER HARDENING
AIDE
والفرق بين االثنين هو ان الـ aide.db.gzهي التي يستخدمها الـ AIDEليضع فيها الـ ، first screenshotبينما الـ aide.db.new.gzهي DBاخري يقوم AIDEبعملها لوضع الـتغييرات فيها
AIDE UASGE وللبدأ في عمل الـ monitoringنقوم باآلتي : -1نقوم بعمل customizationللـ config fileليقوم بعمل monitorللـ /etcفقط علي سبيل التجربة -2نقوم بعمل new DB -3نقوم بتغيير اسم الـ BDالي االسم الموجود في الـ config file -4ثم نقوم بالتعديل علي اي ملف في /etc -5نتأكد من التعديل عن طريق aide -1نقوم بعمل customizationللـ config file
create new DB manually -2 # aide --init
-3الحظ انه قام بعمل createللـ BDباسم ” “aide.db.new.gzوهو مختلف عن الـموجود في الـ config file ” “aide.db.gzلذلك نقوم بتغييره # mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
45
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
AIDE
-4نقوم باضافة ملف جديد الي /etc
-5نستخدم aideاالن لمعرفة التغيرات التي تمت علي /etcباستخدام االمر # aide -- check
مثال آخر
46
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
UMASK
REDHAT SERVER HARDENING
وننتقل االن الي موضوع آخر
UMASK تحدثنا سابقا عن الـ file permissionsوذكرنا انها تتكون من ، r, w, xوعندما نقوم بعمل fileجديد فانه يأخد الـ default . permissions وسنجد ان اذا قام الـ root userبعمل fileجديد فان الـ default permissionsتكون 222او rw r r
بينما اذا قام الـ normal userبعمل fileجديد فان الـ default permissionsتكون 222او rw rw r
واذا قام الـ root userبعمل directoryجديد فان الـ default permissionsتكون 555او rwx rx rx
47
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
UMASK
REDHAT SERVER HARDENING
واذا قام الـ normal userبعمل directoryجديد فان الـ default permissionsتكون 775او rwx rwx rx
اذا ما الذي يحدد هذه الـ default permissions؟ المسئول عن تحديد هذه الـ permissionsهو الـ ، umaskوكل Processلها maskخاص بها وتستطيع تغييرها بنفسها باستخدام functionمعينه ،واي fileينتج من هذه الـ processيأخذ نفس الـ Parent mask ونقوم بتحديد الـ maskداخل الـ shellعن طريق االمر ” “umaskوعليه فان اي fileنقوم بعمله من داخل الـ shellيأخذ هذا الـ mask ولمعرفة الـ Umaskالموجود حاليا بشكل numericنستخدم االمر show Numeric mode
# umask
show Symbolic mode
# umask –S
ولكن كيف يتم حساب هذه القيمة ؟ نعلم جميعا ان اعلي permissionsيمكن ان يحصل عليها file/dirهي 555او ““ ، ””rwx rwx rwxوللـ securityنقوم بالغاء الـ ” “x permissionمن علي الـ ، filesولذلك يمكن اعتبار ان اعلي permissionsنستطيع ان نعطيها للـ fileهي 666او “ ”rw rw rwوهذا للـ filesفقط وبالنسبة للـ directoryفان الـ ” “x permissionتعني امكانية عمل ” “cd or ls -lوهذا امر مسموح به لكن ال يمكن اعطاء “w ” permissionsللـ othersالن هذا يجعله Unsecureويسمح الي شخص بالتعديل علي محتويات الـ directory
48
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
ACL
والـ fileالذي يحتوي على 666او “ ”rw rw rwيسمي world writable fileوكذلك الـ directoryالذي يحتوي علي 555 يسمى world writable directoryاي ان اي شخص موجود علي الـ systemيستطيع التعديل عليه وبذلك فهو يعتبر unsecure لذلك فان افضل permissionsيمكن ان نعطيها للـ files/dirs.هي الموجوده بالجدول التالي umask
Permissions
666 – 644 = 022
644 / rw r r
Root user files
666 – 664 = 002
664 / rw rw r
Normal user files
777 – 755 = 022
755 / rwx rx rx
Root user directory
777 – 775 = 002
775 / rwx rwx rx
Normal user directory
وعليه فاننا نستخدم قيمة الـ Umaskحتي يحصل اي new file/ new dirعلي هذه الـ permissionsتلقائيا ولتغيير الـ umaskفي الـ )temp( running shell ”# umask “value ولكن هذه الـ valueمؤقته وتعود الي القيمة السابقة اذا خرجنا من هذه الـ . shellوحتي تكون permanentيجب ان نضيفة في الـ bashrcوالـ profile ولنتذكر معا ان هناك ملفين /etc/bashrcالتعديل علي هذا الملف يؤثر علي جميع ال usersعدا الـ root /etc/profileالتعديل علي هذا الملف يؤثر علي الـ root userفقط
ولكل userملفين في الـ home dir.الخاص به .bashrcالتعديل علي هذا الملف يؤثر علي الـ userفقط ويتحاهل الـ valueالموجودة في الـ /etc/bashrc .bash_profileاضافة الـ umaskفي هذا الملف ليس له تأثير
ACL هي utilityتسمح باعطاء permissionلـ Userبعينه علي الـ fileالن في الحالة العادية يجب ان يتم اضافة هذا الـ userفي groupلها permissionعلي هذا الـ file الستخدام هذه الـ featureيجب عمل mountللـ file systemباستخدام ACL option
49
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
ACL
وكما نرى ان الـ ، FS mounted with noaclلذلك يجب عمل التالي
ثم نقوم بعمل remountمرة اخرى
اختفاء الـ noaclيعني ان الـ FSاصبح يدعم الـ ، aclوللتأكد من ذلك
ثم نقوم باضافة هذا الـ Optionفي الـ fstab نقوم االن بالتعامل مع الـ . ACLوالضافة ACLعلي file # setfacl -m u:user_name:permission file_name وللتأكد من وجود الـ ACLعلي الـ file # getfacl file_name
50
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
AAA
نستخدم االمرfile من عليacl والزالة الـ # setfacl -x u:user_name file_name
ACL يطبق عليه الـNew file كامل بمحتوياته بحيث ان ايdirectory عليuser لـACL ولعمل # setfacl -Rm d:u:user_name:rw directory_name
AAA
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
51
REDHAT SERVER HARDENING
PAM
البعض منا سمع عن كلمة الـ . AAAفما هو الـ AAA؟ وهو security architectureيستخدم لمعرفة من الـ Usersالمسموح لهم باستخدام الـ servicesوبأي طريقة ،وهو combinationبين 3مصطلحات Authentication :و Authorizationو Accounting ومن اشهر الـ protocolsالتي تستخدم في الـ AAAهو الـ radiusو Diameter Authentication -1 هي عملية التأكد من وجود هذا الـ Userفي الـ systemوالدخول عليه بالـ credentialsالصحيحة Authorization -2 هي عملية التأكد من ان الـ userيمتلك صالحيات الدخول الي مكان ما او استخدام serviceمعينه Accounting -3 هي عملية trackingللـ userومعرفة من فعل ماذا واشهر مثال علي الـ AAAهو الـ . ADSLحيث يقوم الـ Userبكتابة الـ account user/passالخاصين به في الـ .. router فيقوم الـ AAAبالقيام بالتأكد منهم )(Authentication ثم يبحث عن الـ account profileالذي يوضح طبيعة اشتراك الـ Userهل هو static IPام dynamicوما هي الخدمات المسموح للـ Userاستخدامها )(Authorization ثم يقوم بمتابعة استهالكه من االنترنت )(accounting http://en.wikipedia.org/wiki/AAA_protocol
PAM نعرف جميعا ان هناك ما يعرف بالـ ، password policyوهي الـ policyالتي تطبق الختيار الـ passwordمثل وجود ارقام و capital lettersو special characters كما يمكن عمل المزيد من الـ restrictionsعلي الـ systemبحيث نمنع الدخول عليه خارج اوقات العمل الرسمية او نسمح بالدخول فقط من serverمعين او لـ userمعين المسئول عن كل هذه الـ Policiesهو الـ )PAM (pluggable authentication module
? What is PAM انه ليس authentication systemولكنه عبارة عن مجموعة من authentication modulesالتي تطبق علي الـ Users/servicesعن طريق الـ rules مع العلم بان الـ authentication systemsهي الـ systemsالتي تحتوي علي الـ Usersومعلوماتهم مثل : /etc/passwd, /etc/shadow, /etc/gshadow, /etc/group -1 NIS -2 LDAP -3 Kerberos -4 IPA -5
52
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
مثال علي ذلك : اذا قمت بعمل New installationللـ fedoraفلن تستطيع الدخول علي الـ GUIباستخدام الـ ،root userوتستطيع فقط باستخدام الـ . Normal userلماذا ؟ الن هناك PAM ruleتمنع الـ root userمن الدخول علي الـ systemعن طريق الـ GUI
? How PAM works يعتمد الـ PAMفي عمله علي الـ modulesوالـ rules توجد الـ rulesوالـ configuration fileداخل الـ PAM filesفي المسار ”“/etc/pam.d
هذه الـ filesعبارة عن الـ rulesالتي تطبق علي الـ usersوهذه الـ filesتنقسم الي نوعين : common files -1 وهي الـ rulesالتي تطبق علي جميع الـ usersمثل system-auth, password-auth, passwd service specific files -2 هي الـ rulesالتي تستخدمها serviceمعينه مثل gdm, sudo, sshdوأي serviceتضاف الي الـ systemولها special restrictionsفانها تضيف الـ rulesالخاصة بها في الـ PAM فالـ Userعندما يدخل علي الـ systemعن طريق الـ sshفانه يطبق عليه الـ ، sshd rulesوعندما يقوم باستخدام sudo commandفانه يطبق عليه الـ sudo rules 53
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
“succeed or failed” ولها قيمتينrule وكل سطر يمثل shared library الذي يستعرض الـcommand : ldd نستخدم الـ، ام الPAM تستخدم الـservice ولمعرفة ما اذا كانت الـ فهي تدعمهاservice libraries موجوده من ضمن الـPAM library فاذا وجدنا الـ، service لكل ldd /usr/sbin/sshd | grep -i pam
: كالتاليrules ونجد ان صيغة كتابة الـ
: 4 columns وهي تتكون من module interface/ PAM facility/Type -1 control /policy -2 module name/path -3 module-arguments -4
Module interface/ PAM facility/Type : 4 module interfaces او4 facilities عليPAM ويحتوي الـ auth (authentication) -1 user ID, group membership and resource limits مثلaccount credentials تهتم بالـ AHMED GAMIL -
LNKD.IN/D6QEGWN
-
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
54
REDHAT SERVER HARDENING
PAM
-
ثم تقوم بعمل authenticationعن طريق مقارنة الـ login credentialsمع الـ user credentials الموجوده في الـ system
Account (Account management) -2 -
تهتم بالـ non-authentication-related issuesمثل الـ account expirationوالـ access restrictionsفي يوم معين او حسب الـ server load
session (Session management) -3 -
تهتم بالـ session tasksمثل session set-upو start/stop an SSH agentو gdm (gnome display manager) access
-
تهتم بالـ servicesالمسموح للـ Userباستخدامها مثل الـ selinuxوالـ actionsالتي يستطيع الـ Userفعلها داخل الـ session
-
الـ login/logout
-
Mountingللـ user home directory
-
Getting user mailbox
password (Password management) -4 -
تهتم بالـ authentication changesمثل تغيير الـ passwordوالـ Password policyوالـ password ageing
Control /policy وهي تحدد الـ actionالذي ستقوم به الـ PAMبناء علي النتيجة القادمة من الـ Moduleهل هي failedام ،succeeded وانواعها: required -1 -
تعني ان نجاح هذه الـ ruleهو امر ضروري ولكنه غير كافي لنجاح الـ authentication
-
هذه الـ ruleاجبارية ويجب ان تكون نتيجتها ”“Success
-
اذا كانت نتيجة الـ ruleهي failureفسوف يقوم الـ PAMبتنفيذ باقي الـ rulesوتصبح نتيجة الـ authenticationالنهائية failure
-
اما اذا كانت نتيجة الـ ruleهي successفسوف يقوم الـ PAMبتنفيذ باقي الـ ، rulesفاذا لم يكن هناك اي failureفسوف تكون نتيجة الـ authenticationالنهائية هي success
requisite -2 -
تعني ان نجاح هذه الـ ruleهو امر ضروري وكافي لنجاح الـ authentication
-
هذه الـ ruleاجبارية ويجب ان تكون نتيجتها ”“Success
-
اذا كانت نتيجة الـ ruleهي failureفلن يقوم بتنفيذ باقي الـ rulesوتصبح نتيجة الـ authenticationالنهائية failure
-
اذا كانت نتيجة الـ ruleهي successفسوف يقوم الـ PAMبتنفيذ باقي الـ rules
sufficient -3 -
تعني ان نجاح هذه الـ ruleهو امر غيرضروري ولكنه يكون كافي في حالة نجاحه
-
اذا كانت نتيجة الـ ruleهي successفلن يقوم بتنفيذ باقي الـ rulesوتصبح نتيجة الـ authenticationالنهائية Success
55
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
-
اما اذا كانت نتيجة الـ ruleهي failureفسوف يقوم الـ PAMبتنفيذ باقي الـ rules
optional -4 -
تعني ان نجاح هذه الـ ruleهو امر غيرضروري وغير كافي
-
نتيجة الـ ruleسوف تؤثر علي نتيجة الـ authenticationالنهائية فقط
include -5 -
هذه الـ ruleتطلب استخدام بعض الـ rulesالموجودة في filesاخري ،وفي الغالب تستخدم مع الـ “common ”files
substack -6 -
تشبه includeولكنها ستؤثر علي النتيجة النهائية فقط
الشرط
ضروري
required
requisite
غير ضروري
غير كافي
كافي
sufficient
optional
في حالة success
include substack
Module Name/Path اما الـ modulesفهي functionsتقوم بعمل checkوكل moduleتقوم بعمل checkلشيء معين ،وبناء عليها تقوم الـ rules بعمل الـ actionsمثل السماح للـ Userبعمل Loginاو الـ servicesالتي يستخدمها الـ user وتوجد الـ modulesفي المسار ” “/lib64/security/في حالة x64 arch و في المسار ” “/lib/security/في حالة i368 arch
ولمعرفة وظيفة اي moduleنستخدم الـ manبدون اضافة ” “soفي نهاية الـ Moduleكالتالي اذا كان اسم الـ Moduleهو pam_issue.soفنستخدم االمر # man pam_issue
56
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
module مفيدة جدا عن كيفية استخدام الـexamples سنجدMAN page وفي الـ
system الي الـroot غير الـUser التي تمنع دخول ايpam_nologin.so المستخدمه هيModules ومن اشهر الـ GUI, SSH,. باستخدام العديد من الطرق سواءlogin من عملUser يستخدم لمنع الـModule وفي الصورة التالية نجد ان هذا الـ
/etc/nologin في حالة وجود ملفmodule ويعمل هذا الـ المسخدمة هيModules ومن اشهر الـ
Module Usage pam_succeed_if.so to test account characteristics pam_tally2.so for failed login attempt pam_cracklib.so to check the password complexity pam_unix.so for traditional password authentication pam_mkhomedir.so to create users home directory
Module Arguments AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
57
REDHAT SERVER HARDENING
PAM
min length =3, قد تكونpassword policy مثل الـcheck اثناء عمل الـmodule التي يستخدمها الـoptions هي الـ max length=9, capital letters = 2, small letters = 1
: شيوعا والتي قد نستخدمها في امثلتنا التالية هي كالتاليarguments واكثر الـ
pam_succeed_if.so to test account characteristics uid allowed uid pam_tally2.so deny=n even_deny_root unlock_time=n sec
for failed login attempt no of failed login for normal user, then lock the user apply deny option to root user also unlook account after n sec
pam_cracklib.so
to check the password complexity no of password trials min no. of password ask for current passwork before changing it no of similar characters in the new password relative to the old one
retry=n
minlen=n try_first_pass difok=n pam_unix.so
for traditional password authentication no of password history that the pam will save to prevent user from using again encrypt password stored in opasswd file as shadow file type of encryption
remember=n shadow md5 pam_mkhomedir.so skel=/etc/skel umask=0022
to create users home directory path to skel directory "will be explained later" umask of new user files
pam_tally2.so حتي نستطيع عملfailed login attemps وهو المسئول عن عدد الـpam_tally2 يسمىmodule عليPAM يحتوي الـ مرات مثال3 اكثر منfailed login يقوم بعملuser اليlock binary file وهو، “/var/log/tallylog” في المسارlog file ووضعها فيlogin attemps بتسجيل عدد الـPAM ويقوم الـ “pam_tally2” يسمىcommand ولكن نستطيع قراءته عن طريق، less اوtail ال نستطيع قراءته بالـ # pam_tally2
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
58
REDHAT SERVER HARDENING
PAM
والستخدام الـ pam_tally2نضع الـ ruleفي الملفين ” “/etc/pam.d/password-authو “/etc/pam.d/system- ”auth
وفي هذه الحالة اذا قام الـ Userبعمل failed loginاكثر من 3مرات فسيتم عمل lockله ،ويجب االنتظار لمدة 62ثانية حتي يتم عمل unlockاو ويمكن عمل manual unlockعن طريق استخدام االمر # pam_tally2 -- reset --user username
وبذلك يستطيع الـ Userمحاولة الدخول مرة اخرى علي الـ system اذا قام الـ serverبعمل rebootولم تنتهي مدة الـ unlockفان الـ Userسيظل unlockedحتي تنتهي المدة علي الرغم من عمل restartالن الـ latest failure timeيكون مخفوظ في الـ tallylog fileوليس في الـ Memory
Examples لنأخد االن امثلة علي الـ PAM
Example 1: Control Service Access لمنع الـ userمعين من الدخول علي الـ systemباستخدام sshمثال او اي serviceاخري كالـ ftpنتبع االتي : توضح الصورة التالية ان الـ ” normal user “ahmedيستطيع الدخول علي الـ systemعن طريق الـ ssh
59
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
ولمنع الـ Userمن الدخول علي الـ systemعن طريق الـ sshنستخدم ، pam_listfile moduleوسنجد في الـ man page ان وظيفتها هي allow/denyللـ servicesباالعتماد علي additional file
وكذلك سنجد ايضا بعض الـ examplesالتي تشرح كيفية استخدامها
اذا لمنع الـ userمن استخدام الـ sshنقوم باضافة هذه الـ ruleفي الـ ssh PAM fileونعدل عليها لتتناسب مع الـ ssh serviceكالتالي
ثم
ثم نضع اسم الـ Userفي ملف /etc/pam_sshusers
60
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
نقوم االن بمحاولة عمل Loginمرة اخرى ،سنجدها تفشل
وسنجد في الـ log fileانه تم منع الـ user : ahmedمن عمل loginعلي الـ system
ملحوظة :يجب ان نعدل الـ permissionsالموجوده علي الـ /etc/pam_sshusersوذلك للتغلب علي رسالة world writable file
وسيصبح شكل الـ log fileكالتالي
61
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
Example 2 : Password Complexity capital, small, no., عليPassword بحيث تحتوي الـpassword complexity سنتحكم في الـexample في هذا الـ Special characters pam_cracklib هيpassword policy المسئول عن الـmodule والـ
وعدد الـcapital وعدد الحروف الـpassword عن طريق تحديد طول الـpassword complexity حيث نستطيع التحكم في الـ special characters وعدد االرقام وعدد الـsmall minlen
Min length
min passwork length
lcredit
lower-case
a-z
ucredit
upper-case
A-Z
dcredit
Digit/numeric
0-9
ocredit
Other/non-alphanumeric
@,_,…………….. الحاليةPassword policy ولمعرفة الـ
او نعدل علي الموجودةrule ونضيف هذه الـsystem-auth و الـpassword-auth نقوم االن بالذهاب الي password requisite pam_cracklib.so try_first_pass retry=4 minlen=8
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
62
REDHAT SERVER HARDENING
PAM
ثم نقوم االن بتجربة اضافة passwordمن 5حروف فقط سنجد هذا الناتج
والنتيجة النهائية ان الـ Userلم يستطيع بتغيير الـ Passwordبنفسه .ولكن يستطيع الـ rootكسر هذه الـ rules
Example 3: Login Limits لوضع limitsللـ Userحتي ال يستطيع عمل Loginعلي الـ systemمن مكانين مختلفين في نفس الوقت او لتحديد مواعيد دخوله علي الـ systemوغيرها من الـ limitsعلي الـ login نستخدم في ذلك pam_limits.so
63
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
ويستخدم هذه الـ moduleفي العديد من الـ rulesالتي لها عالقة بالـ loginوالـ authentication
ولكن كما نرى في الصورة فال يوجد اي optionsاو argumentsتكتب داخل الـ ruleلعمل اي limitiationللـ ، Userفاذا دققنا النظر جيدا في الـ MAN pageسنجد ان الـ moduleيستخدم /etc/security/limits.confفي عمل الـ limitation
لذلك ففي هذه المرة لن نتعامل مع الـ PAM filesولكن سنتعامل limits.conf
64
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
نضيف الـ ruleالمطلوبة في اخر الملف كما هو موجود بالجزء المظلل باللون االصفر ،حيث نطبق هذه الـ ruleعلي الـ User : ، ahmedوالحظ ان اسم الـ Userال يسبقه “@” الن “@” تعني تطبيق الـ ruleعلي الـ group ثم اخترنا نوع الـ itemليكون ” “maxloginsوهذا الـ Itemهو واحد من itemsعديدة موجوده في الـ configuration file ونختار عدد مرات الـ parallel loginsالمسموح بها للـ Userوليكن ""2 نحاول الدخول االن اكثر من مرتين وسنجد ان في المرة الثالثة قام برفض الدخول
65
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
Example 4: Prevent Using Old Passwords يستطيع الـ PAMمنع الـ Userمن استخدام الـ passwordsالقديمة ،عن طريق تخزين الـ user passwordsفي ملف ثم مقارنة هذه الـ Passwordsفي كل مرة يقوم الـ userبتغيير الـ passwordالخاصة به، فمثال اذا طلبت من الـ Pamمنع الـ Userمن استخدام اخر 2 passwordsقام باستخدامهم قبل ذلك فسوف يقوم الـ pamبتخزين 2 passwordsلهذا الـ ، Userفاذا قام الـ userبتغيير الـ passwordواستخدم احد االثنين السابقين فسوف يرفض الـ Pam هذه الـ Passwordويخرج له رسالة
ويتم ذلك باستخدام : 2 modules pam_unix.so -1 وهو المسئول عن تخزين الـ user passwordsفي ملف /etc/security/opasswd pam_cracklib.so -2 وهو الذي يقوم بمنع الـ Userمن استخدام الـ history passwordsاعتمادا علي الـ file :opasswd وان لم يكن ملف الـ opasswdموجود فنستطيع عمله بحيث تكون الـ Permissionsوالـ Ownerكما يلي
66
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
PAM
: عمليا يتم ذلك عن طريق التعديل علي ملف /etc/pam.d/system-auth 2 rules واضافة الـ password required pam_cracklib.so retry=3 minlen=3 difok=4 password sufficient pam_unix.so use_authtok md5 shadow remember=2 opasswd في ملف الـpasswords االولي هي المسئولة عن تخزين الـrule والـ old passwords ال تتطابق مع الـnew user password الثانية هي المسئولة عن التأكد من ان الـrule والـ
الول مرةpassword بعمل الـuser وعندما يقوم الـ
بهذا الـشكلopasswd فيتم تخزينها في ملف الـ
للمرة الثانيةPassword بتغيير الـuser وعندما يقوم الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
67
REDHAT SERVER HARDENING
PAM
فيتم تخزينها بهذا الشكل
وعندما يقوم الـ userبتغيير الـ Passwordللمرة الثالثة واستخدام الـ passwordاالولي التي تم استخدامها من قبل تظهر الرسالة التالية
Useful links: http://people.redhat.com/smcbrien/summit_2014/ToT-PAM-lab-handout.pdf 68
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Password Aging
http://people.redhat.com/smcbrien/summit_2014/mcbrien_t_1040_Working_with_PAM.pdf
Password Aging
وسوف نذكر به مرة اخرىRHCSA track تحدثنا عن هذا الموضوع في الـ مثل الـUser للـPassword policy بتحديد الـlinux admin ويقوم الـ، password لهsystem علي الـuser كل expiration date, inactive date, etc….. نستخدم االمرpassword aging والستعراض الـ # chage -l ali
نستخدم االمرaccount expiration date ولتغيير الـ # chage -E YYYY-MM-DD user_name
نستخدم االمرpassword علي تغيير الـUser والجبار الـ # chage -d 0 user_name
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
69
REDHAT SERVER HARDENING
Password Aging
وعند محاولة الدخول علي الـ userمرة اخرى
ولكن هذه الـ policyتم وضعها لـ userواحد فقط ولم تطبق علي جميع الـ ،Users
اذا فكيف نقوم بتطبيقها علي جميع الـ Users؟ يتم ذلك باستخدام الـ ، /etc/login.defsوهذا الملف هو المسئول عن الـ User propertiesعند اضافته باستخدام useradd command
70
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Password Aging
ملحوظة :من المعروف ان الـ user IDالي normal userتبدأ من 522الي 62222ولكن اذا قمنا بالتعديل علي قيمة الـ UID_MINلتكون مثال 2222فستبدأ الـ user IDالي new userمن 2222 نقوم االن باضافة userقبل تعديل هذا الملف /etc/login.defsوبعده ونالحظ الفرق الصورة التالية توضح الـ agingقبل تعديل الملف /etc/login.defs
71
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
Password Aging
REDHAT SERVER HARDENING
نقوم االن بتعديل الملف /etc/login.defsليكون كالتالي
ونقوم االن باضافة Userجديد
وللتعرف علي حالة الـ Passwordنستخدم االمر # passwd –S user_name
ولعمل lockللـ userنستخدم االمر # passwd -l user_name
72
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Password Aging
ولعمل unlockللـ Userنستخدم االمر # passwd -u user_name
ولكن ماذا يحدث للـ Userعندما نقوم بعمل Lockله ؟ نعلم جميعا ان الـ Passwordيتم تخزينها encryptedفي الملف ، /etc/shadowوعند عمل lockللـ userفيتم اضافة ”!“ فبل الـ . hashاي انه يتم تغيير الـ hashفقط باضافة ”!“ وبالتالي فان الـ accountيعتبر . locked فاذا نظرنا الي الـ passwordفي الحالة العادية في ملف /etc/shadowفسنجد ان الـ columnالثاني بهذا الشكل
وعند عمل unlockللـ Userفيصبح شكل الـ hashكالتالي
ولعرض جميع الـ accountsسواء Local, ldap, NISنستخدم االمر # getent passwd
هناك امر خطير جدا قد يستغله اي hackerاذا نجح في الدخول علي الـ ، systemفاذا قمنا بالتعديل علي ملف /etc/passwd واضفنا userجديد له نفس الـ root credentialsمثل الـ … uid, login shell, etcواختيار Passwordجديدة ووضعها في
73
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Securing GRUB
/etc/shadowفانه يستطيع بعد ذلك الدخول علي الـ systemبهذا الـ userالوهمي والتعامل بع وكأنه ، rootلذلك من الضروري البحث بشكل دوري عن الـ uidsالمكررة ويمكن استخدام هذا الـ command # getent passwd | cut -d : -f3 | uniq -d
وعندما نقوم بالبحث عن الـ UIDsالمتشابهه
Securing GRUB لماذا نحتاج الي عمل securingللـ grub؟ نحتاج لذلك لحماية الـ grubوالـ systemمن الكثير من االمور مثل :
نمنع اي شخص من التعديل علي الـ boot parameterوالدخول علي الـ single user mode
نمنع اي شخص من استخدام ALT+CTRL+DELالتي تؤدي الي عمل restartللـ system
وغيرها من االمور .ولكن سنتحدث هنا عن هذين االمرين .. اوال :نستطيع منع اي شخص من التعديل علي الـ boot parameterوالدخول علي الـ single user modeبطريقتين: االولي باستخدام االمر #grub-md5-crypt الذي يقوم بعمل generateللـ grub password
74
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Securing GRUB
GRUB الي ملف الـhashed password ثم اضافة الـ
الطريقة الثانية باستخدام االمر #grub-crypt
grub.conf ايضا اليPassword ثم اضافة الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
75
Customizing RHEL6
REDHAT SERVER HARDENING
فاذا قمنا بعمل restartوضغطنا ” “eللتعديل عليه فلن يدخلنا الي الـ ، grub optionsلذلك يجب الضغط علي ” “bحتي يطلب الـ password
الثانية :نمنع اي شخص من استخدام ALT+CTRL+DELالتي تؤدي الي عمل restartللـ ، systemوذلك عن طريق الملف vim /etc/inittab in RHEL5 /etc/init/control-alt-delete.conf in RHEL6
نقوم بوضع ” “#امام هذا السطر او تغييره كليا بـ ” “/bin/trueوهو commandوظيفته اظهار نتيجة اي commandبـ ""2 اي اظهار ان االمر تم تنفيذه بطريقة صحيحة ،مثلما يحدث في الـ scriptingعند تنفيذ الـ scriptبشكل صحيح يكون الناتج ”“2 ثم نقوم باعادة قراءة ملفات الـ initعن طريق االمر # init -q فاذا قام احد االشخاص بالضغط على ALT+CTRL+DELفلن يظهر له errorولن يحدث rebootللـ system
Customizing RHEL6 سنتحدث االن عن كيفية عمل customizationلشكل الـ OSوذلك باضافة بعض الـ warningsاو اخفاء بعض المعلومات عن الـ Usersاو الـ . hackers Login banners -1 GUI user names -2 Gnome power button -3
Login banners الـ login bannersهي الرسائل التي تظهر للـ usersاو االشخاص الذين يقومون بعمل Loginعلي الـ . systemوهناك نوعين من الـ : banners
Pre-login banner
76
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Customizing RHEL6
unauthorized users وهذه الـرسالة قد تكون رسالة تحذيرية للـsystem قبل الدخول علي الـuser وهي الرسالة التي تظهر للـ : مثل ##################################################################### # # #
# All connections are monitored and recorded
#
Disconnect IMMEDIATELY if you are not an authorized user!
#
#
#
##################################################################### : نستخدم احد هذين الملفينbanner والضافة هذا الـ /etc/issue )a local login يستخدم في الـ
تلقائياhostname حيث يظهر الـ
حيث ان، issue file كما هو موجود في الـrelease سيظهر لنا الـhostname واذا قمنا بالضغط علي الـ release number “ تعني/r” architecture “ تعني/m” والـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
77
REDHAT SERVER HARDENING
Customizing RHEL6
/etc/issue.net )b يستخدم في الـ remote loginمثل الـ ssh, ftpباالضافة الي الـ telnet
نقوم باضافة الـ warning messageفي هذا الملف
نذهب الي الـ ssh config fileالموجود في المسار ”“/etc/ssh/sshd_config
نضيف الـ issue.net pathفي الـ banner line
نقوم بعمل restartللـ .ssh
نقوم بالدخول علي الـ systemعن طريق الـ sshسنرى الـ warning message
Post-login banner وهي الرسالة التي تظهر للـ userبعد الدخول علي الـ systemوهذه الرسالة قد تكون رسالة ترحيبية او تعليمات او مواصفات الـ serverمثل : ##################################################################### #
#
78
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
# #
Customizing RHEL6
You are logged in to the system
#
All connections are monitored and recorded
#
#
#
##################################################################### file مباشرة في الـmessage “ ونقوم باضافة الـ/etc/motd” هوbanner والملف المسئول عن هذا الـ
التاليlink كما في الـescape codes مثل ”@“ وبعض الـspecial characters يمكن استخدام بعض الـ http://www.cyberciti.biz/faq/howto-change-login-message/ “.hushlogin” عن طريق عمل ملف باسمpost-login banner اخفاء الـnormal user يستطيع الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
79
REDHAT SERVER HARDENING
Customizing RHEL6
Instant messages عن طريق اوامر بسيطةusers “ الي الـinstant messages” ارسال رسائل فوريةuser كما يستطيع الـ
Wall Command # wall filename : كالتاليlogged users الي جميع الـfilename يقوم بارسال محتويات الملفwall االمر
User الخاص بالـlogin shell علي الـmessage فتظهر فورا محتويات الملف
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
80
REDHAT SERVER HARDENING
Customizing RHEL6
Write Command # write username االمر writeيقوم بارسال instant messagesالي الـ ،userوهو يختلف عن االمر wallفي انه ال يرسل محتويات الملف وانما يرسل ما يكتبه الـ rootعلي الـ terminal
وتظهر مباشرة عند الـ User
كما يمكن اختيار الـ terminalالتي سيتم ارسال الـ Instant messageعليها ]# write username [ttyn
Gnome login users عند عمل loginعلي الـ serverتظهر امامنا اسماء الـ Usersالموجودين علي الـ ، systemولمزيد من الـ securityيفضل اخفاء هذه الـ info
81
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Customizing RHEL6
“gconf-editor” تسمىUtility نقوم باستخدامusernames والخفاء هذه الـ
بطريقتينutility ويمكن استخدام هذه الـ : GUI -1 “gconf-editor” عن طريق االمر
.a
# gconf-editor
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
82
REDHAT SERVER HARDENING
Customizing RHEL6
“ فتظهر شاشة جديدة بنفس الشكلNew Defaults Window” “ ثمFind” ثم نختار.b
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
83
REDHAT SERVER HARDENING
Customizing RHEL6
.c
ومن هذه الشاشة الجديدة نختار ” “Editثم ” “Findفتظهر شاشة البحث عن الـ parametersالتي نريد التعامل معها
.dعلي سبيل المثال نكتب ” “disableفي خانة البحث
84
.e
فتظهر لنا جميع الـ Parametersالتي يمكن عمل ” “disableلها
.f
نختار ” “disable_user_listمن الجزء االسفل من الشاشة
.g
ثم نضغط علي الـ checkboxالخاص بها في الجزء االيمن
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Customizing RHEL6
.hثم نقوم بعمل ” “Close Windowثم ”“Quite
نقوم االن بالتأكد من النتيجة عن طريق عمل reloginعلي الـ serverسنجد ان الـ user namesقد اختفت
85
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Customizing RHEL6
ولكن هذه الطريقة صعبة نوعا ماxml عن طريق ملف الـ-2
Gnome Power Button server للـrestart بعملuser ممكن يسمح اليlogin في شاشة الـpower button هو وجودsecurity risks ايضا من الـ unauthorized حتي وان كان
“ ولكن مع الفارق باننا سوف نقوم باختيارgconf-editor” السابقةutility نستخدم نفس الـPower button والخفاء الـ “disable_restart_button” “ اخر وهوparameter”
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
86
REDHAT SERVER HARDENING
Customizing RHEL6
قد اختفتpower button سنجد ان الـserver علي الـrelogin وللتأكد من النتيجة نقوم بعمل
Gnome Banner Message
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
87
REDHAT SERVER HARDENING
Authentication systems
system علي الـrelogin نقوم االن بعمل
Parameters كما يمكن اضافة او اخفاء العديد والعديد من الـ
Authentication systems
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
88
REDHAT SERVER HARDENING
IPA server
، ومعلوماتهمUsers وذكرنا بعض انواعها وذكرنا ان وظيفتها هي تخزين الـauthentication systems تحدثنا سابقا عن الـ ومن هنا، ومعلوماتهم علي جميع االجهزةusers فلن نستطيع وضع جميع الـUsers ولكن اذا كان لدينا عدد كبير من االجهزة والـ (CAS) central authentication systems ظهرت الـ بعملapplication/user/server واحد فقط بيحث يقوم ايserver توضع عليauthentication system وهي : ومن امثلته. عن طريقهauthentication 1- NIS : authentication لعمل الـclients والـserver بين الـpasswords كوسيلة لنقل الـNIS بعملSUN قامت شركة plain text كـpasswords النه ينقل الـunsecured ولكنه 2- LDAP : User والعديد من المعلومات االخري التي تخص الـpasswords يسمح بتخزين الـLDAP protocol بعملIBM قامت شركة Extensible (can change hierarchy) لذلك فهو Developed to be DB لذلك اليمكن استخدامه كـ حيث انه، ويمكن القراءة منه بشكل سريع جدا ولكن الكتابة عليه تكون بطيئة single write, many read unsecure (plain text) ايضاpassword كما ينقل الـ 389-ds (open ثم قامت بعملRedHat directory server (closed source) بتطويره واصدارREDHAT قامت شركة source by redhat) user interface ووضعت لهcertificate authority server وdns والـntp والـKerberos ثم قامت بدمجه مع الـ IPA او الـIDM واصدرت الـ activr directory واصادر الـKerberos ودمجه مع الـLDAP بتطوير الـMICROSOFT كما قامت شركة 1- LDAPS : ssl ظهر بعد ظهور الـ secure بطريقةpassword ينقل الـ 2- Kerberos tickets ولكنه يستخدم الـauthentication لعملuser/password قوي جدا ال يستخدم الـauthentication system هو لعمل ذلك الخاصه بهimplementations في الـversions علي هذه الـlinux لذلك يعتمد الـfree بتطويره وجعلتهMIT قامت 3- IPA Contain LDAP, Kerberos, NTP and DNS
IPA server LDAP, Kerberos, NTP, DNS بينcombination وهوcentral authentication server للـimplementation هو , certification server (pki), apache tomcat
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
89
REDHAT SERVER HARDENING
IPA server
بعملLinux machines حيث تقوم الـWIN وLinux التي تحتوي عليenvironments ايضا في الـserver ويستخدم هذا الـ authentication بعملWIN machines وتقوم الـIPA server من الـpolicies والحصول علي الـauthentication الـ Active directory من الـpolicies والحصول علي الـ machines بين الـusernames وهذا يؤدي الي عدم تكرار الـActive Directory بالتواصل مع الـIPA server ويقوم الـ المختلفة users للـauthentication هي عمل الـKerberos ووظيفة الـ ipa server contents وغيرها من الـgroups والـclients والـusers يتعامل مع الـdirecotory server (ldap) بينما الـ حتي يستطيع التحكم بهمobjects حيث يتعامل مع جميع ما سبق كـ، password policy وهو المسئول عن التعديل على الـ : اذا فسنقوم االن بعمل install ipa-server -1 ipa server من التauthentication بعملclient نسمح للـ-2 policies والـipa server التعامل مع الـ-3
Install ipa-server redhat recommendation وذلك حسبNetworkManager للـdisable يجب عملinstallation قبل الـ IPA server package للـInstall لعمل #yum install ipa-server
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
90
REDHAT SERVER HARDENING
IPA server
389-ds (LDAP), لها هيinstall بعملIPA server التي سيقوم الـdependances Packages سنجد ان من ضمن الـ وغيرهاApache tomcat, kerbors
IPA-server-install يسمىscript عن طريقIPA server للـinstall & configure نقوم االن بعمل # ipa-server-install
“/var/log/ipaserver-install.log” يتم وضعها فيinstallation logs الحظ ان الـ لـInstall ايضا الحظ من الصورة التالية انه سيقوم بعمل CA certificate
.a
Directory Server
.b
Kerberos
.c
httpd .d : فيطلب بعض المعلومات مثل small letters وتكتبnetwork الموجوده علي نفس الـmachines وتعني الـdns terminology هوDOMAIN_NAME AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
91
REDHAT SERVER HARDENING
IPA server
capital letters لكنه يكتبdomain name وتعني الـkerberos terminology هوREALM_NAME LDAP admin password وهو الـDM_PASSWORD optional وهو8 characters وال يقل عنKerberos master password هو الـMASTER_PASSWORD kerberos admin password هو الـADMIN_PASSWORD IPA server FQDN هو الـHOST_NAME IPA server IP address هو الـIP_ADDRESS “--unattended” نفسه حتي ال يطلبها مرة اخرى ولكن يجب اضافةcommand ويمكن كتابه هذه المعلومات في الـ # ipa-server-install --realm=REALM_NAME --domain=DOMAIN_NAME --masterpassword=MASTER_PASSWORD --ds-password=DM_PASSWORD --adminpassword=ADMIN_PASSWORD --hostname=HOST_NAME --ip-address=IP_ADDRESS --no-ntp -unattended
DNS zone لـcreate كما يقوم بعمل، اخريparameters اليprompt بدونInstall فيقوم بعمل
بعض التعليمات التي يجب ان نأخذها في االعتبارinstallation وسنجد في نهاية الـ
firewall علي الـprots نقوم االن بفتح هذه الـ AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
92
REDHAT SERVER HARDENING
IPA server
# system-config-firewall
iptables rule ثم نقوم باستعراص الـ، iptables للـrestart ثم نقوم بعمل
ipa-server web interface نقوم االن بالدخول علي الـ AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
93
REDHAT SERVER HARDENING
IPA server
https://server_ip/ipa/ui
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
94
REDHAT SERVER HARDENING
IPA server
ID = 318800000 لهipa server للـadmin user وكما نرى في الصورة السابقة ان الـ “/etc/passwd” لذلك فلن تجده في ملف، ldap user والnormal user وليسkerberos user هوadmin user والـ “getent” واال باستخدام
“id” ولكن نستطيع عرض معلومات عنه باستخدام
web interface التي يمكن عملها من الـfunctions تقوم بنفس الـcli admin tools عليipa server كما يحتوي الـ
Install ipa client ipa-client للـinstall حيث سنقوم بعمل، client سنتعامل االن مع الـ # yum install ipa-client configuration ثم نقوم بعمل # ipa-client-install --domain=DOMAIN --server=SERVER --realm=REALM_NAME -principal=PRINCIPAL --password=PASSWORD –mkhomedir --no-ntp --unattended ipa server في الـconfigured الـuser name هو الـprincipal principal password هو الـpassword machine علي الـfirst login عند الـUser للـhome dir يقوم بعملmkhomedir
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
95
REDHAT SERVER HARDENING
IPA server
كما نرى من الـKerberos مثل الـipa server من الـconfiguration لبعض الـretrieve ونجد هنا انه قام بعمل configuration file
ldap وايضا الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
96
REDHAT SERVER HARDENING
IPA server
ca certificate ايضا الـ
“id” عن طريق االمرipa server الموجوده في الـaccounts كما نستطيع معرفة الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
97
REDHAT SERVER HARDENING
IPA server
قدclient وهذا يعني ان الـ، “ الذي وضحناه سابقاid” وله نفس الـipa server هو الموجود في الـadmin account وهذا الـ system/normal user ليسaccount وللتأكد من ان هذا الـ، ipa server من الـaccount حصل علي معلومات هذا الـ ldap account وليس
Uninstall ipa client or remove client from domain : بخطوتينdomain من الـclient الـremove اوipa client للـuninstall نقوم بعمل 1- uninstall the client # ipa-client-install --uninstall 2- Delete ca.cert file ca.cert file للـdelete نقوم بعمل # rm -rf /etc/ipa/ca.crt
ipa عليclient فاذا اردنا اضافة الـ،domain الموجوده في هذا الـipa server هي الخاصه بالـcertificate الن هذه الـ القديمca.cert نتيجة وجود الـclient installation اثناء الـfail اخر فسوف يحدثdomain اخر موجود فيserver
Using ipa server with GUI Adding new user
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
98
IPA server
REDHAT SERVER HARDENING
عندما يقوم الـ user1بالدخول علي الـ accountالخاص به
99
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
نجد في الصورة االولي انه : -1اجبرنا علي تغيير الـ passwordعند الـ login -2قام بتطبيق الـ password policyحيث انه : .a
رفض الـ passwordاالولي النها كانت سهلة التخمين ويمكن بسهولك عمل dictionary attackلها
.bرفض الـ Passwordالثانية النها اقل من 8 characters .c
وضع agingللـ account
-3الـ Login shelهي الـ shellوليست الـ bash -4قام باضافة home dirجديد للـ Userعلي الـ ipa server وتظهر جميع هذه الـ configurationفي الـ user identityالموجوده في الـ ipa server
100
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
“-- نتيجة وجود الـhome directory والـlogin shell وقام باضافة الـ، باضافتها بنفسه تلقائياipa server وهذه البيانات قام الـ page من نفس الـlogin shell كما يمكن تغيير الـ، Installation اثناء الـargument كـmkhomedir”
؟user للـhome directory بعملipa server ولكن كيف يقوم الـ : Modules واستخدام احد الـpam يقوم بذلك عن طريق التعديل علي الـ pam_mkhomedir.so -1 pam_oddjob_mkhomedir.so او-2 “ و/etc/pam.d/password-auth” اليpam rules الي الـmodule : pam_mkhomedir.so اضافة الـ: اوال “/etc/pam.d/system-auth” “session
required pam_mkhomedir.so skel=/etc/skel/ umask=0022”
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
101
REDHAT SERVER HARDENING
IPA server
files فهناك بعض الـnew user ووظيفته تظهر عند اضافةskeleton directory يسمىdirecroty هو/etc/skel حيث الـ ويقومfiles يحتوي علي هذه الـskel directory والـ، الخاص بهhome directory االساسية التي يجب ان توضع في الـ new user home directory بنسخها الي الـ
: ملحوظة
بطريقةrule لها ثم اضافة الـinstall “ فيمكن عمل/lib64/security” موجوده في السارmodule وان لم تكن هذه الـ manual # yum install -y pam_mkhomedir.so “/etc/pam.d/password-auth” اليpam rules الي الـmodule : pam_oddjob_mkhomedir.so اضافة الـ: ثانيا “/etc/pam.d/system-auth” و “session
optional pam_oddjob_mkhomedir.so له كالتاليinstall وان لم يكن موجود فيمكن عمل
###### install oddjob-mkhomedir ####### # yum install -y oddjob-mkhomedir # chkconfig oddjobd on # service oddjobd start ###### update our authentication mechanism ####### # authconfig --enablemkhomedir --update https://www.dalemacartney.com/2012/07/30/auto-creation-of-user-home-directories-in-linux/ فان لم يجده فانه يقوم، user home dir علي الـcheck بعملmodule يقوم هذا الـLogin بعملUser وبذلك عندما يقوم الـ بعمله
Adding hosts/clients
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
102
REDHAT SERVER HARDENING
IPA server
identity management يضاف تلقائيا الي الـipa-client-install عن طريق الـdomain يتم اضافته للـnew client اي web interface
عليهroles واضافةgroups له واضافته اليediting ويمكن عمل
Add group
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
103
REDHAT SERVER HARDENING
IPA server
Add user to group لهاuser التي نريد اضافة الـgroup نختار الـ-1
User نختار الـ-2
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
104
IPA server
REDHAT SERVER HARDENING
وللتأكد من اضافه الـ Userبنجاح نذهب الي الـ User
ثم نضغط علي اسم الـ Userونختار user groups
105
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
group الي الـuser فسنجد انه تمت اضافة الـ
Setting password policy
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
106
REDHAT SERVER HARDENING
IPA server
وكما نرى في الصورة السابقة نستطيع التعديل علي الـ password policyواضافة اكثر من policyونستطيع تطبيق الـ policy علي groupsمحددة والـ history sizeتعني عدد الـ Passwordsالتي يحفظها الـ ipa serverلكي يمنع الـ Userمن استخدامها ،فاذا كان الـ history size = 2فسوف يقوم الـ ipa serverبحفظ اخر 2 passwordsقام الـ Userباستخدامهم ويمنعه من استخدامهم مرة اخرى مثال :اذا قام الـ Userبوضع password = P@ss1الول مرة فسوف يقوم الـ ipa serverبحفظها وعندما يقوم الـ Userبتغيير الـ Passwordمرة ثانيه الي P@ss2فسوف يقوم الـ ipa serverبحفظها ايضا وعندما يقوم الـ Userبتغيير الـ Passwordمرة ثالثة فلن يستطيع استخدام اي من الـ 2 passwordsالسابقتين ويجب عليه استخدام passwordمختلفة عن اللذان قام الـ ipa serverبتخزينهم ،وبالتالي فلن يستطيع الـ Userاستخدام P@ss1وال P@ss2وليستخدم مثال P@ss3وسوف يحفظها الـ ipa serverبدال من p@ss1 وعندما يقوم الـ Userبتغيير الـ Passwordمرة رابعه فلن يستطيع استخدام P@ss2وال P@ss3
Add new password policy 107
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
password policy الي الـgroup نقوم باضافة الـ
Password policy للـedit نقوم بعمل
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
108
REDHAT SERVER HARDENING
IPA server
policy password نستعرض الـ، group الموجودين في الـUsers الجديدة علي الـpassword policy وللتأكد من تطبيق الـ الجديدةpolicy سنجدها تغيرت الي الـuser الخاصه بالـ
Using ipa server with CLI كالتاليipa admin tools عن طريقCLI من خالل الـipa server يمكن ان نتعامل مع الـ 1- Install ipa admin tools # yum install ipa-admintools.x86_64
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
109
IPA server
REDHAT SERVER HARDENING
2- Use ipa server admin user يجب ان ننتبه الي ان المسئول عن اجراء اي تعديالت علي الـ password policyهو الـ adminالخاص بالـ ipa serverوليس الـ root userالخاص بالـ physical server فاذا قمنا بمحاولة تغيير الـ password policyباستخدام الـ root userفسوف يظهر لنا هذا الـ error
ولكي نستخدم الـ admin userالخاص بالـ ipa serverيجب الحصول علي ticketمن الـ Kerberosويتم ذلك عن طريق # kinit admin
ملحوظة :يمكن تنفيذ هذه الخطوة او الحصول علي الـ admin ticketمن اي Machineسواء كانت من الـ ipa server machineاو من ipa client machine ولعرض الـ ticketsالممنوحة للـ Users # klist
110
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
ويتم تخزين هذه الـ tktباسم ”_ “krb5ccفي ”“/tmp
وبعد االنتهاء من اجراء التعديالت يجب حذف الـ tktمن علي الـ machineحتي ال يستخدمها اي شخص اخر # kdestroy
كما يمكن التحكم في الـ tkt expiration timeمن الـ GUIاو من الـ CLI
او
111
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
Kerberos للـrestart يجب عملCLI او الـGUI وفي كال الحالتين https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/6/html/Identity_Management_Guide/kerb-policies.html # service krb5kdc restart
الجديدةtkt على الـnew life time وسوف تطبق الـ
Add new user admin tkt بعد الحصول علي الـ # ipa user-add ahmed --first “first_name” --last “last_name” OR # ipa user-add ahmed --first “first_name” --last “last_name” --password
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
112
REDHAT SERVER HARDENING
IPA server
User تم اضافة الـ
Find existing user # ipa user-find ahmed
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
113
REDHAT SERVER HARDENING
IPA server
Edit password policy password policy في الـcharacter classes التعديل علي الـ # ipa pwpolicy-mod --minclasses=2
يمكن ان تتكون منها4 classes فهناك، password التي تتكون منها الـcharacters هي نوع الـcharacter classes والـ : وهي بالترتيبpassword الـ 1- Lowercase letters 2- Uppercase letters () 3- Numbers (0-9) 4- Special characters (“_” and “-“ etc) يجب ان تكونPassword فهذا يعني ان الـ1 لتكونpassword policy في الـcharacter classes فاذا فمنا بتعديل الـ فقطlower letters capital letters وlower letters يجب ان تحتوي علىPassword فهذا يعني ان الـcharacter classes = 2 اذا كانت الـ capital letters وlower letters يجب ان تحتوي علىPassword فهذا يعني ان الـcharacter classes = 3 اذا كانت الـ numbers و
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
114
REDHAT SERVER HARDENING
IPA server
capital letters وlower letters يجب ان تحتوي علىPassword فهذا يعني ان الـcharacter classes = 4 اذا كانت الـ special characters وnumbers و
Add new group # ipa group-add group_name --desc "group description"
group تم اضافة الـ
Search existing group # ipa group-find "group_name"
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
115
REDHAT SERVER HARDENING
IPA server
Host based access control وبأي طريقةhost علي الـaccess المسموح له بعملuser تعني من هو الـhost based access control (HBAC) الـ CLI والـGUI وسنتعامل معه ايضا بالـ،(ssh, ftp, ….)
HBAC Rules GUI باستخدام الـrules سنقوم االن باضافة
وتحتوي عليenabled “ وهيallow_all” باسمrule نالحظ هنا ان هناك
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
116
REDHAT SERVER HARDENING
IPA server
وهذا يعني ان هذه الـ ruleتسمح لجميع الـ users وفي حالة استخدام الـ CLIفنستطيع استعراض الـ rulesعن طريق االمر # ipa hbacrule-find
117
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
IPA server
REDHAT SERVER HARDENING
واذا اردنا عمل restrictionعلي Userمعين حتي ال يدخل علي hostمعين او ال يستخدم serviceمعينه فيجب عمل disable لهذه الـ rule : allow_allواضافة ruleجديدة فمثال اذا اردنا منع الـ User : ahmedمن الدخول علي ” “client.lab.comفسوف نقوم باالتي : disable “allow_all” rule -1 -2نقوم بعمل new ruleبـ descriptionتصف وضيفتها -3نقوم باضافة جميع الـ usersباستثناء الـ ahmed -4نقوم باضافة الـ host : client.lab.com اوال :نقوم بعمل disableللـ “allow_all” rule
او من داخل الـ rule
118
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
IPA server
REDHAT SERVER HARDENING
وتظهر بالشكل التالي في حالة استخدام الـ CLI
ثانيا :نقوم باضافة الـ ruleالجديدة
ثم نقوم بتحديد مواصفات الـ ruleباضافة الـ rule description
119
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
فقطallowed users ثم نضيف الـ
excluded عدا الـhosts علي جميع الـaccess سيكون لهمusers الن ذلك يعني ان جميع الـclient ثم نضيف جميع الـ user : ahmed
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
120
REDHAT SERVER HARDENING
IPA server
ثم نضيف الـ servicesالمسموح بعمل accessعن طريقها او نختار ” “any serviceفي حالة السماح باستخدام جميع الـ services
وظهور عالمة undoبجانب االختيار تعني انه يجب الضغط علي ” “update buttonلكي يتم تفعيل هذا االختيار بينما اذا لم تظهر فهذا يعني انك ال تحتاج الي ذلك وسوف يتم تخزين االختيارات بشكل تلقائى وباستعراض الـ rulesاالن سيظهر التالي :
121
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
“ فسيظهر التاليclient.lab.com” بمحاولة الدخول عليuser : ahmed عندما يقوم الـ
logs واذا استعرضنا الـ # tailf /var/log/secure
HBAC Service Groups عليservice لكلselect بحيث نستخدمها مباشرة بدال من عملusers ونخصصها للـgroup of services كما يمكن عمل user لكلrule حدة او عمل
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
122
REDHAT SERVER HARDENING
AHMED GAMIL -
LNKD.IN/D6QEGWN
IPA server
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
123
IPA server
REDHAT SERVER HARDENING
HBAC Test كما يمكن عمل testللـ ruleقبل تطبيقها وذلك عن طريق اختيار الـ Userالمراد عمل testعليه واختبار الـ ruleالخاصه به
124
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
ثم اختيار الـ hostالذي سيطبق عليه الـ test
ثم اختيار الـ serviceالتي سيستخدمها الـ userفي الدخول علي الـ host
125
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
IPA server
REDHAT SERVER HARDENING
ثم اختيار الـ ruleالتي ستطبق علي الـ userوهذا يعني انه اذا طبقت هذه الـ ruleعلي هذا الـ user : ahmedالذي يحاول عمل accessعلي host : client.lab.comباستخدام الـ sshdفهل سينجح في عمل accessام ال
Rsyslog الـ rsyslogهو تطوير للـ syslogالقديم الذي كان : -1
unsecured
-2يستخدم الـ tcpفقط. ولكن الـ rsyslogاصبح : secured -1 -2ويمكن ان يستخدم الـ ssl -3ويستطيع ان يستخدم الـ tcpوالـ udp -4وتم اضافة Pluginsعليه تسمح له بعمل rulesعلي الـ logsبحيث يستطيع ان يرسل logsمعينه الي clientsمعينه -5كما انه integratedمع الـ DB 126
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
logs لتسهيل قراءة الـuser interface وله-6 : سنقوم بعده خطواتssl يدعم الـrsyslog server and server ولعمل server والـclient علي كل من الـrsyslog package للـinstall نقوم بعمل-1 log server الي الـlogs بحيث يرسل جميع الـrules واضافةclient للـconfiguration نقوم بعمل-2 tcp والـudp بحيث بتعامل مع الـserver للـconfiguration نقوم بعمل-3 جيداlog server نقوم بالتأكد من عمل الـ-4 server علي الـssl للـsetting ثم نقوم بعمل-5 Setting up the CA
.a
Generating Machine Certificates
.b
Setting up the Central Server
.c
Setting up syslog Clients
.d
Setting up the UDP syslog relay
.e
Wrapping it all up
.f
Frequently seen Error Messages
.g
Install rsyslog on client and server # yum install rsyslog
Configure client # vim /etc/rsyslog.conf كالتاليrule ثم نقوم باضافة الـ @log_server تكون الصيغةudp في حالة استخدام الـ @@log_server تكون الصيغةtcp وفي حالة استخدام الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
127
REDHAT SERVER HARDENING
IPA server
service للـredtart ثم نقوم بعمل # service rsyslog restart
Configure Server tcp, udp modules “ من الـ#” نقوم بازالة الـconfiguration file في الـ
firewall في الـport 514 ثم نقوم بفتح الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
128
REDHAT SERVER HARDENING
IPA server
service للـrestart ثم نقوم بعمل # service rsyslog restart
Test logging custom log الرسالlogging command نقوم باستخدام # logger -i test server “/var/log/message” في الـlog server قد وصلت الي الـlog سنجد ان هذه الـ
Encrypting Syslog Traffic with TLS (SSL( log server مع الـTLS الذي يدعم استخدام الـplugin تتم هذه الخطوة علي عدة مراحل ولكن اوال يجب اضافة الـ # yum install rsyslog-gnutls
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
129
REDHAT SERVER HARDENING
IPA server
TLS tools للـinstall ثم نقوم بعمل # yum install gnutls-utils
Setting up the CA الخاصkey بالـcertificate اليsign وبالتالي سنستطيع عملverisign مثل شركةCA server في هذه الخطوة سنقوم بعمل rsyslog server علي نفس الـserver وسنقوم بعمل هذا الـ، CA بالـ : كما يليcertificate authority نقوم االن بعمل الـ private key للـgenerate نقوم بعمل-1 # certtool --generate-privkey --outfile ca-key.pem
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
130
REDHAT SERVER HARDENING
IPA server
الحظ ان الـ ca-key.pemلها permission : 400حتي ال يستطيع اي احد االطالع عليها ،فان لم تكن كذلك فيجب تغييرها الي 400 -2ثم نقوم بعمل (self-signed) CA certificateالذي سنعطيه للـ client # certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca.pem
ثم نقوم باالجابة علي االسئلة التي يطلبها ،وتوجد sampleمن هذه االسئلة وكيفية االجابة عليها في /usr/share/doc/rsyslog-5.8.10/tls_cert_ca.html
والحظ انه عندما يسأل عن نوع هذه الـ certificateهل هي authorityام ال ،ستكون االجابة هي نعم الننا نقوم االن بعمل CA
131
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
اخرىcertificates لـsign ستستخدم في عملcertificate وان هذه الـ
ca.pem وبذلك تم عمل الـ
Generating Machine Certificates : عن طريقrsyslog server للـcertificate سنقوم االن بعمل server خاصه بالـprivate key عمل-1 # certtool --generate-privkey --outfile key.pem --bits 2048
CA لتقديمها الي الـcertification request عمل-2 # certtool --generate-request --load-privkey key.pem --outfile request.pem
hostname هو الـCommon name يجب ان يكون الـ: ملحوظة AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
132
REDHAT SERVER HARDENING
IPA server
سنجد انها تحتوي علي المعلومات التي ادخلناها سابقاrequest واذا استعرضنا محتويات الـ
CA عن طريق الـrsyslog server الخاص بالـkey للـsign نقوم االن بعمل-3 # certtool --generate-certificate --load-request request.pem --outfile cert.pem --load-ca-certificate ca.pem --load-ca-privkey ca-key.pem هيcertificate request حيث انcert.pem باسمcertificate للـgenetare يقوم بعملcommand وهذا الـ ca- هوsigning الذي سيستخدم لعملprivate key والـca.pem التي سيستخدمها هيCA certificate والـrequest.pem key.pem
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
133
REDHAT SERVER HARDENING
IPA server
تم االن عمل cert.pem
نقوم االن بمسح الـ certificate signing request
ومن االفضل تغيير اسم الـ certificateوالـ keyالي اسم له عالقة بالـ server
-4نقوم االن بوضع كل fileفي المكان المناسب له في الـ server
134
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
# cp ca.pem /etc/pki/tls/certs/ # cp rsyslog-cert.pem /etc/pki/tls/certs/ # cp rsyslog-key.pem /etc/pki/tls/private/ نقوم بعملcertificates لهم عن باقي الـsecurity context اذا كان هناك اختالف في الـ # restorecon -v -R /etc/pki
Setting up the Central log Server rsyslog server المناسبة حتي يستطيع الـconfiguration نقوم االن بعمل الـkeys والـcertificate بعد ان قمنا بعمل الـ -: استخدامهم TLS driver للـload نقوم بعمل$DefaultNetstreamDriver gtls pem files ثم نقوم باضافة اماكن الـ $DefaultNetstreamDriverCAFile /etc/pki/tls/certs/ca.pem $DefaultNetstreamDriverCertFile /etc/pki/tls/certs/rsyslog-cert.pem $DefaultNetstreamDriverKeyFile /etc/pki/tls/private/rsyslog-key.pem فقط نضيفTLS mode في الـserver وحتي يعمل الـ $InputTCPServerStreamDriverMode anon(anonymous) ويمكن تغييرها اليauthentication mode : x509 ثم نجعل الـ $InputTCPServerStreamDriverAuthMode x509/name وذلك باضافةdomain : lab.com في الـserver تأتي من ايmessage بقبول ايserver ثم نقوم بالسماح للـ $InputTCPServerStreamDriverPermittedPeer *.lab.com domain حتي وان كان خارج الـclient من ايlogs ويمكن الغاء هذا السطر في حالة الرغبة في استقبال الـ 12514 وهوsecure mode في الـincoming logs الذي سيستقبل عليه الـTCP port ثم نقوم باختيار الـ $InputTCPServerRun 10514 # start up listener at port 10514
وال يجب، customized port وانما هوrsyslog الذي يعمل عليه الـdefault port هو ليس الـport 10514 وللعلم فان الـ االنrsyslog الذي يستخدمه الـport لذا لنرى ما هو الـ، في هذا االمرselinux ان نتجاهل الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
135
IPA server
REDHAT SERVER HARDENING
وهنا يظهر ان الـ selinuxتسمح للـ rsyslogباستخدام الـ port : 6514لذا يجب تغييره الي 12514عن طريق # semanage port -a -t syslogd_port_t -p tcp 10514
وللتأكد من اضافة الـ Port
ثم نقوم بالتعديل علي الـ firewall rules ثم نقوم بعمل restartللـ service
وسيظهر ذلك ايضا في الـ Logs
اما اذا لم نقوم بتنفيذ الـ semanage commandواضافة الـ port 10514فسيظهر هذا الـ errorعند عمل restartللـ rsyslog service
ويمكن االستعانه بالـ documentationايضا لتسهيل هذه الخطوات واالطالع علي الـ samples /usr/share/doc/rsyslog-5.8.10/tls_cert_machine.html 136
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
IPA server
/usr/share/doc/rsyslog-5.8.10/tls_cert_server.html
Setting up syslog Clients وهذه الـ، secure بشكلsyslog server لكي يتمكن من التعامل مع الـclient البسيطة والخاصة بالـsetting هناك بعض الـ الذي ستعامل من خاللهPort والـ، والتي قمنا بعملها مسبقاcertificate authority الخاصه بالـcertificate هي الـsetting server مع الـ rsyslog-gnutls package للـInstall ويجب ان تقوم بعمل client الي الـserver من الـcertificate نقوم االن بارسال الـ-1
security context والتأكد من الـclient ثم نقوم بالذهاب الي الـ-2
server مثلما هي موجوده في الـclient configuration file الي الـTLS parameters ثم نقوم باضافة الـ $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /etc/pki/tls/certs/ca.pem $ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer central.example.net $ActionSendStreamDriverMode 1 # run driver in TLS-only mode server عليه الي الـlogs الذي سيقوم بارسال الـport : 10514 ثم نقوم باضافة الـ
port 10514 باستخدام الـrsyslog لكي تسمح للـselinux ثم نعدل الـ # semanage port -a -t syslogd_port_t -p tcp 10514 AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
137
REDHAT SERVER HARDENING
IPA server
ثم نقوم بعمل restartللـ rsyslogوالتأكد من عدم وجود errors
نقوم االن باختبار الـ logging
وننهي بذلك الحديث عن الـ rsyslog يتبقي فقط 2 topicsوهم الـ Auditingوالـ firewallفسوف يتم ان شاء هللا اضافتهم عقب العودة لتكملة الـ courseمرة اخرى
138
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
LNKD.IN/D6QEGWN
AHMED GAMIL -
REDHAT SERVER HARDENING
Useful Links
Useful Links benchmarcks والـhardening الهامة التي تتحدث عن الـlinks فيما يلي بعض الـ https://access.redhat.com/documentation/enUS/Red_Hat_Enterprise_Linux/6/html/Security_Guide/index.html https://benchmarks.cisecurity.org/ https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_6_Benchmark_v1 .3.0.pdf https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1 .0.0.pdf
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
139
REDHAT SERVER HARDENING
Summery
Summery Security Updates yum-plugin-security.noarch للـinstall يجب عملyum باستخدام الsecurity updates للحصول علي ال # yum search yum-plugin-security system التي يحتاجها الـupdates لمعرفة ال # yum updateinfo : نستخدم االمرupdates ولعرض تفاصيل الـ # yum updateinfo list المتاحةupdates لعرض مزيد من التفاصيل عن جميع الـ # yum updateinfo info redhat update ID معين باستخدام الـupdate ولعرض تفاصيل عن # yum updateinfo RHSA-2014:0919:R6-64 CVE ID معين باستخدام الـupdate ولعرض تفاصيل عن # yum updateinfo --cve=CVE-2014-1556 : CVE ID نستخدم الCVE التي يتحدث عنها الـpackages لعرض مزيد من التفاصيل عن الـ # yum updateinfo list --cve=CVE-2014-1556 :)critical, important, moderate, low( فقط بجميع انواعهاsecurity update لعمل # yum update --security : فنقوم بكتابة االمرUpdate ID باستخدام الـupdate لعمل # yum update --advisory=RHSA-2014:0919:R6-64 Package Verification package scripts الستعراض الـ # rpm --qp –scripts package_name.rpm : نستخدم االمرPackage اليmd5 لمعرفة الـ # md5sum package_name : نستخدم االمرpackage اليsha لمعرفة الـ # sha512sum package_name : االصليfingerpring وبين الـPackage fingerpring للمقارنة بين الـ # # md5sum -c md5_fingerpring package الخاصة بالـmetadata لعرض الـ # rpm -qpi Package_name system الحالية في الـimported keys لعرض الـ # rpm -qa gpg-pubkey Official CD من الـkeys للـImport لعمل rpm --import Path_to_key AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
140
REDHAT SERVER HARDENING
Summery
key ولمعرفة تفاصيل الـ # rpm -qi key_name نستخدم االمرimported key ولحذف # rpm -e gpg-pubkey-2fa658e0-45700c69 package verification لعمل # rpm –K package_name يتم تخزينها فيimported/trusted keys الـ /var/lib/rpm File system encryption partition للـformatting لعمل # cryptsetup luksFormat /dev/sdb1 encrypted partition بعد تحويله اليpartition لعرض معلومات الـ # cryptsetup luksDump /dev/sdb1 encrypted file system للـvirtual point/device الضافة # cryptsetup luksOpen /dev/sdb1 mydata :virtual device اللغاء الـ # cryptsetup luksClose mydata luks الي الـkey file الضافة الـ # cryptsetup luksAddKey /dev/sdb1 /etc/secret Mount عن طريق االمرfile system للـmount نستطيع عمل # mount /dev/sda3 /work : نستخدم االمرFS علي الـextended attributes او تفعيل الـACL option مع اضافةfile syetsm لـMount ولعمل # mount /dev/sda3 /work –o acl # mount /dev/sda3 /work –o user_xattr : نستخدم االمرFS علي الـextended attributes لتفعيل الـalready mounted FS لـuser_xattr option والضافة الـ # mount –o remount,acl,user_xattr /work :nodev نستخدمfile system علي الـnew devices لمنع اضافة nodev # mount –o remount,nodev /work :noexec نستخدمfile system علي الـexecutable file لمنع تشغيل اي # mount –o remount,noexec /test مرة اخرىoption واللغاء هذا الـ # mount -o remount,exec /test :noexec نستخدمfile system علي الـsuid لمنع استخدام الـ AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
141
REDHAT SERVER HARDENING
Summery
# mount -o remount,nosuid /test File system attributes Normal attribute : نستخدم االمرInode index الموجوده في الـnormal attributes الستعراض الـ # stat filename File attribute نستخدم االمرfile append only حتي يصبح الـ # chattr +a /test/script نستخدم االمرfile immutable حتي يصبح الـ # chattr +i /test/script اوال عن طريقattribute لحذف الملف يجب ان نلغي هذا الـ # chattr -i /test/script نستخدم االمرjournaling حتي يسمح بالـ # chattr +j /test/script dump ولمنع الـ # chattr +d /test/script synchronization واللغاء الـ # chattr +s /test/script Extended attributes : باستخدام االمر التاليextended attributes يدعم الـfile system للتأكد من ان الـ # tune2fs -l /dev/sdb2 file system علي الـextended attribute لتفعيل الـ # tune2fs -o user_xattr /dev/sdb2 نستخدم االمرfile system علي الـextended attributes اللغاء استخدام الـ # tune2fs -o ^user_xattr /dev/sdb2 باستخدام االمرextended attributes نقوم باضافة الـ # setfattr -n user.comment -v "version 1" /test نستخدم االمرvalue ولكن بدونfile الموجوده علي الـextended attributes والستعراض الـ # getfattr /test/ نستخدم االمرvalue بالـattribute والظهار الـ # getfattr -d /test/ نستخدم االمرvalue معين بالـattribute والظهار # getfattr -n user.comment /test/ : نستخدم االمرattribute واللغاء الـ AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
142
REDHAT SERVER HARDENING
Summery
# setfattr -x user.comment /test نستخدم االمرuser attributes الستعراض الـ # setfattr -n user.creator -v "Ahmed Gamil" /test/ نستخدم االمرsecurity attributes الستعراض الـ # setfattr -n security.linux -v "system_u:object_r:admin_home_t:s0" /test/ نستخدم االمرtrusted attributes الستعراض الـ # setfattr -n trusted.md5sum -v f693f418636a0bd9659fbb1c4ce3f198 /test/script Special permissions نستخدم االمرpipe file لعمل # mkfifo filename كالتاليfile ويمكن استخدام هذا الـ # gzip -9 -c < my_pipe > out.gz & Access permissions SUID الضافة # chmod 4644 filename SGID الضافة # chmod 2644 filename StickyBit الضافة # chmod 1644 filename Find files with permissions كالتاليfind في امرexact permission معين فنكتب الـpermission لهfile للبحث عن # find /bin/ -perm 4755 " كالتالي-" الموجوده في الملف نستخدمpermissions بغض النظر عن باقي الـSUID+SGID يحتوي عليfile للبحث عن اي # find /test/ -perm -6000 -exec ls {} -l \; الموجوده في الملفpermissions او االثنين معا بغض النظر عن باقي الـSGID اوSUID يحتوي عليfile للبحث عن اي " كالتالي/" نستخدم # find /test/ -perm /6000 -exec ls {} -l \; Monitor file changes with AIDE جديدةnew DB لعمل # aide --init لمعرفة التغيرات التي تمت # aide --check UMASK AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
143
REDHAT SERVER HARDENING
Summery
نستخدم االمرnumeric الموجود حاليا بشكلUmask لمعرفة الـ # umask
show Numeric mode
نستخدم االمرSymbolic الموجود حاليا بشكلUmask لمعرفة الـ # umask –S
show Symbolic mode
)temp( running shell في الـumask لتغيير الـ # umask “value” profile والـbashrc يجب ان نضيفة في الـpermanent وحتي تكون root عدا الـusers التعديل علي هذا الملف يؤثر علي جميع ال /etc/bashrc فقطroot user التعديل علي هذا الملف يؤثر علي الـ /etc/profile /etc/bashrc الموجودة في الـvalue فقط ويتحاهل الـuser التعديل علي هذا الملف يؤثر علي الـ .bashrc في هذا الملف ليس له تأثيرumask اضافة الـ .bash_profile ACL file عليACL الضافة # setfacl -m u:user_name:permission file_name file علي الـACL وللتأكد من وجود الـ # getfacl file_name نستخدم االمرfile من عليacl الزالة الـ # setfacl -x u:user_name file_name ACL يطبق عليه الـNew file كامل بمحتوياته بحيث ان ايdirectory عليuser لـACL ولعمل PAM # setfacl -Rm d:u:user_name:rw directory_name PAM library تستخدم الـservice ومعرفة ما اذا كانت الـservice لكلshared library الستعراض الـ ldd /usr/sbin/sshd | grep -i pam so بدونmodule نستخدم اسم الـ. module للـMAN page لعرض الـ # man pam_issue نستخدم االمرtallylog file لقراءة الـ # pam_tally2 user للـmanual unlock لعمل # pam_tally2 -- reset --user username Password Aging نستخدم االمرuser اليpassword aging والستعراض الـ # chage -l ali نستخدم االمرaccount expiration date ولتغيير الـ # chage -E YYYY-MM-DD user_name نستخدم االمرpassword علي تغيير الـUser والجبار الـ # chage -d 0 user_name AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
144
REDHAT SERVER HARDENING
Summery
/etc/login.defs نستخدم الملفUsers علي جميع الـpassword policy تطبيق الـ نستخدم االمرPassword للتعرف علي حالة الـ # passwd –S user_name نستخدم االمرuser للـlock ولعمل # passwd -l user_name نستخدم االمرUser للـunlock ولعمل # passwd -u user_name نستخدم االمرLocal, ldap, NIS سواءaccounts ولعرض جميع الـ # getent passwd command المكررة يمكن استخدام هذا الـuids للبحث عن الـ # getent passwd | cut -d : -f3 | uniq -d Securing GRUB grub password للـgenerate لعمل #grub-md5-crypt GRUB الي ملف الـhashed password ثم اضافة الـ او باستخدام االمر #grub-crypt grub.conf ايضا اليPassword ثم اضافة الـ عن طريق الملفALT+CTRL+DEL لمنع اي شخص من استخدام vim /etc/inittab in RHEL5 /etc/init/control-alt-delete.conf in RHEL6 عن طريق االمرinit العادة قراءة ملفات الـ # init -q Customizing RHEL6 Instant messages logged users الي جميع الـfilename ارسال محتويات الملف # wall filename في انه ال يرسل محتويات الملف وانما يرسل ما يكتبه الـwall وهو يختلف عن االمر،user الي الـinstant messages ارسال User وتظهر مباشرة عند الـterminal علي الـroot # write username عليهاInstant message التي سيتم ارسال الـterminal يمكن اختيار الـ # write username [ttyn] Hide Gnome login users and Gnome Banner Message login من شاشة الـusernames الخفاء الـ AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
145
REDHAT SERVER HARDENING
Summery
# gconf-editor Authentication systems IPA server IPA server package للـInstall لعمل #yum install ipa-server IPA-server-install يسمىscript عن طريقIPA server للـinstall & configure لعمل # ipa-server-install او # ipa-server-install --realm=REALM_NAME --domain=DOMAIN_NAME --masterpassword=MASTER_PASSWORD --ds-password=DM_PASSWORD --adminpassword=ADMIN_PASSWORD --hostname=HOST_NAME --ip-address=IP_ADDRESS --no-ntp -unattended ipa-server web interface للدخول علي الـ https://server_ip/ipa/ui ipa-client للـinstall لعمل # yum install ipa-client ipa client للـconfiguration لعمل # ipa-client-install --domain=DOMAIN --server=SERVER --realm=REALM_NAME -principal=PRINCIPAL --password=PASSWORD –mkhomedir --no-ntp --unattended client للـuninstall لعمل # ipa-client-install --uninstall # rm -rf /etc/ipa/ca.crt فنقوم بعمل االتيautomatic بشكلuser للـhome directory بعملipa server اذا لم يقوم الـ # yum install -y pam_mkhomedir.so vim /etc/pam.d/system-auth /etc/pam.d/password-auth session
required pam_mkhomedir.so skel=/etc/skel/ umask=0022 او
###### install oddjob-mkhomedir ####### # yum install -y oddjob-mkhomedir # chkconfig oddjobd on # service oddjobd start ###### update our authentication mechanism ####### # authconfig --enablemkhomedir –update vim /etc/pam.d/system-auth /etc/pam.d/password-auth session
optional pam_oddjob_mkhomedir.so
Using ipa server with CLI
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
146
REDHAT SERVER HARDENING
Summery
ipa admin tools عن طريقCLI من خالل الـipa server يمكن ان نتعامل مع الـ # yum install ipa-admintools.x86_64 kerberos من الـticket للحصول علي # kinit admin Users الممنوحة للـtickets لعرض الـ # klist machine من علي الـtkt لحذف الـ # kdestroy kerberos للـrestart لعمل # service krb5kdc restart new user الضافة # ipa user-add ahmed --first “first_name” --last “last_name” OR # ipa user-add ahmed --first “first_name” --last “last_name” --password existing user للبحث عن # ipa user-find ahmed password policy للتعديل علي الـ # ipa pwpolicy-mod --minclasses=2 new group الضافة # ipa group-add group_name --desc "group description" existing group للبحث عن # ipa group-find "group_name" Host based access control rules الستعراض الـ # ipa hbacrule-find Rsyslog server والـclient عليrsyslog للـInstall لعمل # yum install rsyslog client للـConfiguration عمل # vim /etc/rsyslog.conf service للـredtart ثم نقوم بعمل # service rsyslog restart custom log الرسالlogging command الستخدام # logger -i test server “/var/log/message” في الـlogs توجد الـ
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
147
REDHAT SERVER HARDENING
Summery
Encrypting Syslog Traffic with TLS (SSL( log server مع الـTLS الذي يدعم استخدام الـplugin اوال يجب اضافة الـ # yum install rsyslog-gnutls TLS tools للـinstall عمل # yum install gnutls-utils Setting up the CA private key للـgenerate عمل # certtool --generate-privkey --outfile ca-key.pem client ( الذي سنعطيه للـself-signed) CA certificate عمل # certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca.pem من هذه االسئلة وكيفية االجابة عليها فيsample توجد، لالجابة علي االسئلة التي يطلبها /usr/share/doc/rsyslog-5.8.10/tls_cert_ca.html Generating Machine Certificates server خاصه بالـprivate key لعمل # certtool --generate-privkey --outfile key.pem --bits 2048 CA لتقديمها الي الـcertification request لعمل # certtool --generate-request --load-privkey key.pem --outfile request.pem CA عن طريق الـrsyslog server الخاص بالـkey للـsign عمل # certtool --generate-certificate --load-request request.pem --outfile cert.pem --load-ca-certificate ca.pem --load-ca-privkey ca-key.pem security context التعديل الـ # restorecon -v -R /etc/pki Setting up the Central log Server : configuration file في الـ TLS driver للـload عمل $DefaultNetstreamDriver gtls pem files ثم اضافة اماكن الـ $DefaultNetstreamDriverCAFile /etc/pki/tls/certs/ca.pem $DefaultNetstreamDriverCertFile /etc/pki/tls/certs/rsyslog-cert.pem $DefaultNetstreamDriverKeyFile /etc/pki/tls/private/rsyslog-key.pem فقط نضيفTLS mode في الـserver حتي يعمل الـ $InputTCPServerStreamDriverMode anon(anonymous) ويمكن تغييرها اليauthentication mode : x509 ثم نجعل الـ AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
148
REDHAT SERVER HARDENING
Summery
$InputTCPServerStreamDriverAuthMode x509/name وذلك باضافةdomain : lab.com في الـserver تأتي من ايmessage بقبول ايserver ثم نقوم بالسماح للـ $InputTCPServerStreamDriverPermittedPeer *.lab.com domain حتي وان كان خارج الـclient من ايlogs ويمكن الغاء هذا السطر في حالة الرغبة في استقبال الـ 12514 وهوsecure mode في الـincoming logs الذي سيستقبل عليه الـTCP port ثم نقوم باختيار الـ $InputTCPServerRun 10514 # start up listener at port 10514 عن طريق12514 اليselinux في الـport يجب تغيير الـ # semanage port -a -t syslogd_port_t -p tcp 10514 samples ايضا لتسهيل هذه الخطوات واالطالع علي الـdocumentation يمكن االستعانه بالـ /usr/share/doc/rsyslog-5.8.10/tls_cert_machine.html /usr/share/doc/rsyslog-5.8.10/tls_cert_server.html Setting up syslog Clients client الي الـserver من الـcertificate نقوم االن بارسال الـ security context والتأكد من الـclient ثم نقوم بالذهاب الي الـ server مثلما هي موجوده في الـclient configuration file الي الـTLS parameters ثم نقوم باضافة الـ $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /etc/pki/tls/certs/ca.pem $ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer central.example.net $ActionSendStreamDriverMode 1 # run driver in TLS-only mode server عليه الي الـlogs الذي سيقوم بارسال الـport : 10514 ثم نقوم باضافة الـ port 10514 باستخدام الـrsyslog لكي تسمح للـselinux ثم نعدل الـ # semanage port -a -t syslogd_port_t -p tcp 10514 errors والتأكد من عدم وجودrsyslog للـrestart ثم نقوم بعمل
AHMED GAMIL -
LNKD.IN/D6QEGWN
ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم
149
View more...
Comments