Professional Documents
Culture Documents
HARDENING
(RH413)
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 1
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
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
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
وكل شركة تقوم بعمل 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هو dictionaryوليس DBيقوم بتسجيل ال security threadsالتي تم اكتشافها من جميع الشركات ويضع لها
standard nameووصف مختصر ،ثم يقوم بارسالها الي العديد من الـ databasesمثل الـ National Vulnerability DB
) (NVDبحيث تستطيع اي security toolالوصول اليها والحصول علي معلومات منها
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 6
REDHAT SERVER HARDENING Security updates
fix information, severity scores, and ثم تقوم بعملCVE من الsecurity threads تحصل علي الDBs وهذه ال
impact ratings
http://nvd.nist.gov/about.cfm
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 8
REDHAT SERVER HARDENING Security updates
ونالحظ من الصورة السابقة ان ال loaded pluginsال تحتوي علي ، securityلذلك يجب عمل installلها
فتظهر كالتالي
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 9
REDHAT SERVER HARDENING Security updates
فتظهر الـ updatesالمتاحة للـ systemوهي 3 Security notice(s) :و ) 2 Bugfix notice(sو 1 Enhancement
) ، notice(sوقد تختلف طريقة عرض الـ outputباختالف الـ distribution
ولعرض تفاصيل الـ updatesنستخدم االمر :
# yum updateinfo list
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 10
REDHAT SERVER HARDENING Security updates
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 12
REDHAT SERVER HARDENING Package Verification
security and bugfix and enhancement “ فسوف يقوم بتحديث جميع االنواعyum update” فاذا قمنا بتنفيذ االمر
: ) فنقوم بكتابة االمرcritical, important, moderate, low ( فقط بجميع انواعهاsecurity update اما اذا اردنا عمل
# yum update --security
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 14
REDHAT SERVER HARDENING Package Verification
كل fileاو packageلها hashوهو عبارة عن checksumخاص به ،واي تغيير في هذا الـ fileيؤدي الي تغيير الـ ،hash
وهناك اكثر من algorithmيستخدم لمعرفة الـ hashمثل md5, sha
ولمعرفة الـ md5الي Packageنستخدم االمر :
# md5sum package_name
ولكن اذا اعدنا الـ fileالي اصله مرة اخري سيعود الـ hashاالصلي
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 15
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 بينما الـ
ومحتوياته هي
verification لعمل الـadmin للـpublic key والـHash file تقوم بتوفير الـredhat اذا فإن
: نقوم ببعض الخطواتPublic key عن طريق الـpackages للـverification ولكي نستطيع عمل
“ عندNo Key” ورسالةwarning وهذا هو سبب ظهور الـ، system في الـimported keys نالحظ هنا انه ال توجد
metadata استعراض الـ
error يظهر هذا الـpackage verification او حتي عند محاولة عمل
# rpm –K package_name
Backporting
سنتحدث االن عن جزء بسيط نظري وهو الـ backportingاو الترقية
والـ backportingهو عمليه اصالح security problemموجود في اصدار سابق من الـ , softwareذلك باالستعانه باالصدار
االحدث منه
مثال :اذا كان لدي software V1يحتوي علي security vulnerabilityمعينه ،ثم قام الـ software developersباصدار
النسخة software v2التي عالجت هذا الـ security vulnerability
فيتم تطبيق جزء من الـ codeالجديد والذي له يعالج هذه الـ security problemواضافتها الي الـ softwareالقديم ،وهذا الجزء
يعرف بالـ fix
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 20
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
encryption للـPassphrase ويجب ان نضع، partition هذه الخطوة تقوم بمسح جميع محتويات الـ: ملحوظة
: نستخدم االمرencrypted partition بعد تحويله اليpartition ولعرض معلومات الـ
# cryptsetup luksDump /dev/sdb1
تماماLVM مثل الـ/dev/mapper بداخلvirtual device (mydata) نجد هنا انه قام باضافة
)/dev/sdb1 ولننسى/dev/mapper/mydata (ومن االن سنتعامل مع الـext4 اليFS نقوم االن بتحويل الـ-3
# mkfs.ext4 /dev/mapper/mydata
FS ولكن قبل هذه الخطوة يجب ان نتحدث قليال عن الـstartup عند الـFS للـautomount نقوم بعمل-5
encryption/decryption
قمنا باستخدام االمرvirtual device عنتدما قمنا بعمل
# cryptsetup luksOpen /dev/sdb1 mydata
: نقوم بتنفيذ االمر التاليvirtual device واللغاء الـ، passphrase وطلب منا ادخال الـ
# cryptsetup luksClose mydata
سنجد ان mydataقد اختفت والعادتها مرة اخرى فسنقوم بتنفيذ loksOpenوادخال الـ passphrase
اذا فعند اغالق الـ serverفسيتم الغاء الـ virtual deviceوعند اعادة تشغيلة مرة اخرى فيجب تنفيذ loksOpenوادخال الـ
passphraseثم عمل ، mount
نضف في ملف الـ crypttabاسم الـ virtal deviceوالـ block deviceوالـ key fileالذي سيستخدمه الـ system -1
في عمل الـ encryption
نقوم بعمل الـ keyويمكن ان يكون ملف عادي او صورة او اي شيء اخر -2
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 25
REDHAT SERVER HARDENING Package Verification
وأي تعديل علي الفايل محتويات الـ key fileفلن يستطيع الـ systemعمل mountingله اثناء الـ startupوسينتج عنه هذا الـ
error
واذا لم نقوم بتغيير الـ Permissionفسوف يظهر هذا الـ warningاثناء الـ reboot
-5نقوم باضافة الـ key fileالي الـ luksحتي يستطيع الـ systemاستخدامه
# cryptsetup luksAddKey /dev/sdb1 /etc/secret
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 26
REDHAT SERVER HARDENING Mount
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
file “ فانه يقوم بالذهاب لهذا الـmount” وعند كتابة االمر، mounted devices يحتوي علي الـfile هو: /etc/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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 28
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
nosuid
group او الـowner بصالحيات الـfile من تشغيلuser لمنع اي
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
وكما نرى انه يمكن االضافة علي الملف
-iوتعني immutableوهي تقوم بمنع اي actionيتم علي الـ fileسواء deleteاو appendاو modify
# chattr +i /test/script
-jوتعني journalingوالـ journalingتستخدم للحفاظ علي الـ dataمن الضياع في حالة االنقطاع المفاجئ للكهرباء او حدوث
اي مشكلة في الـ serverوذلك عن طريق اضافة logsمنفصلة للـ dataالتي يتم كتابتها علي الـ file systemوهذه الـ logsهي
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 31
REDHAT SERVER HARDENING File system attributes
file system تجبر الـattribute واضافة هذا الـ. corrupted data مرة اخري الستعادة الـfile system التي يستخدمها الـ
file عند التعامل مع هذا الـjournaling علي استخدام الـ
journaling يدعم الـfile system وكما نرى في الصورة التالية ان الـ
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
التي تم عملها اثناء الـ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
user_xattr اليnone قد تغيرت منDefault mount options حيث سنالحظ هنا ان الـ
# tune2fs -l /dev/sdb2
default option هو الـextended attributes سيكون الـPartition لهذا الـmount وبذلك فان اي
نستخدم االمرMount option والزالة هذا الـ
# tune2fs -o ^user_xattr /dev/sdb2
نستخدم االمرvalue بالـattribute والظهار الـ، value قد ظهر ولكن بدونattribute وكما نري ان اسم الـ
# getfattr -d /test/
او
# getfattr -n user.comment /test/
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
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 37
REDHAT SERVER HARDENING Special permissions
Permissions types
: permissions هناك نوعين من الـ
read, write, execute مثل: normal permissions -1
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 وتكون الـ
SUID والضافة
# chmod 4644 filename
SGID والضافة
# chmod 2644 filename
StickyBit والضافة
# chmod 1644 filename
“-” “ او/” اخرى نستخدم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 فللبحث عن اي
وللبحث عن اي fileيحتوي علي SUIDاو SGIDاو االثنين معا بغض النظر عن باقي الـ permissionsالموجوده في الملف
نستخدم " "/كالتالي
;\ # find /test/ -perm /6000 -exec ls {} -l
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 41
REDHAT SERVER HARDENING AIDE
AIDE files
/etc/aide.conf فيconfiguration file ويوجد الـ
/var/log/aide فيlog file وتوجد الـ
/var/lib/aide فيDB وتوجد الـ
والفرق بين االثنين هو ان الـ 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
-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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 45
REDHAT SERVER HARDENING AIDE
مثال آخر
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 46
REDHAT SERVER HARDENING UMASK
بينما اذا قام الـ normal userبعمل fileجديد فان الـ default permissionsتكون 222او rw rw r
واذا قام الـ root userبعمل directoryجديد فان الـ default permissionsتكون 555او rwx rx rx
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 47
REDHAT SERVER HARDENING UMASK
واذا قام الـ normal userبعمل directoryجديد فان الـ default permissionsتكون 775او rwx rwx rx
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 48
REDHAT SERVER HARDENING ACL
والـ fileالذي يحتوي على 666او “ ”rw rw rwيسمي world writable fileوكذلك الـ directoryالذي يحتوي علي 555
يسمى world writable directoryاي ان اي شخص موجود علي الـ systemيستطيع التعديل عليه وبذلك فهو يعتبر
unsecure
لذلك فان افضل permissionsيمكن ان نعطيها للـ files/dirs.هي الموجوده بالجدول التالي
Permissions umask
Root user files 644 / rw r r 666 – 644 = 022
Normal user files 664 / rw rw r 666 – 664 = 002
Root user directory 755 / rwx rx rx 777 – 755 = 022
Normal user directory 775 / rwx rwx rx 777 – 775 = 002
وعليه فاننا نستخدم قيمة الـ 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فقط
ACL
هي utilityتسمح باعطاء permissionلـ Userبعينه علي الـ fileالن في الحالة العادية يجب ان يتم اضافة هذا الـ userفي
groupلها permissionعلي هذا الـ file
الستخدام هذه الـ featureيجب عمل mountللـ file systemباستخدام ACL option
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 49
REDHAT SERVER HARDENING ACL
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 50
REDHAT SERVER HARDENING AAA
ACL يطبق عليه الـNew file كامل بمحتوياته بحيث ان ايdirectory عليuser لـACL ولعمل
# setfacl -Rm d:u:user_name:rw directory_name
AAA
ثم يبحث عن الـ account profileالذي يوضح طبيعة اشتراك الـ Userهل هو static IPام dynamicوما هي الخدمات
المسموح للـ Userاستخدامها )(Authorization
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 52
REDHAT SERVER HARDENING PAM
هذه الـ filesعبارة عن الـ rulesالتي تطبق علي الـ usersوهذه الـ filesتنقسم الي نوعين :
common files -1
وهي الـ rulesالتي تطبق علي جميع الـ usersمثل system-auth, password-auth, passwd
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 53
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 55
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
في حالة success sufficient
optional
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 56
REDHAT SERVER HARDENING PAM
module مفيدة جدا عن كيفية استخدام الـexamples سنجدMAN page وفي الـ
system الي الـroot غير الـUser التي تمنع دخول ايpam_nologin.so المستخدمه هيModules ومن اشهر الـ
GUI, SSH,. باستخدام العديد من الطرق سواءlogin من عملUser يستخدم لمنع الـModule وفي الصورة التالية نجد ان هذا الـ
Module Arguments
min length =3, قد تكونpassword policy مثل الـcheck اثناء عمل الـmodule التي يستخدمها الـoptions هي الـ
max length=9, capital letters = 2, small letters = 1
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
وفي هذه الحالة اذا قام الـ 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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 59
REDHAT SERVER HARDENING PAM
ولمنع الـ Userمن الدخول علي الـ systemعن طريق الـ sshنستخدم ، pam_listfile moduleوسنجد في الـ man page
ان وظيفتها هي allow/denyللـ servicesباالعتماد علي additional file
اذا لمنع الـ userمن استخدام الـ sshنقوم باضافة هذه الـ ruleفي الـ ssh PAM fileونعدل عليها لتتناسب مع الـ ssh
serviceكالتالي
ثم
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 60
REDHAT SERVER HARDENING PAM
وسنجد في الـ log fileانه تم منع الـ user : ahmedمن عمل loginعلي الـ system
ملحوظة :يجب ان نعدل الـ permissionsالموجوده علي الـ /etc/pam_sshusersوذلك للتغلب علي رسالة world
writable file
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 61
REDHAT SERVER HARDENING PAM
وعدد الـ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 @,_,……………..
او نعدل علي الموجودةrule ونضيف هذه الـsystem-auth و الـpassword-auth نقوم االن بالذهاب الي
password requisite pam_cracklib.so try_first_pass retry=4 minlen=8
ثم نقوم االن بتجربة اضافة passwordمن 5حروف فقط سنجد هذا الناتج
والنتيجة النهائية ان الـ Userلم يستطيع بتغيير الـ Passwordبنفسه .ولكن يستطيع الـ rootكسر هذه الـ rules
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 63
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 64
REDHAT SERVER HARDENING PAM
نضيف الـ ruleالمطلوبة في اخر الملف كما هو موجود بالجزء المظلل باللون االصفر ،حيث نطبق هذه الـ ruleعلي الـ User :
، ahmedوالحظ ان اسم الـ Userال يسبقه “@” الن “@” تعني تطبيق الـ ruleعلي الـ group
ثم اخترنا نوع الـ itemليكون ” “maxloginsوهذا الـ Itemهو واحد من itemsعديدة موجوده في الـ configuration file
ونختار عدد مرات الـ parallel loginsالمسموح بها للـ Userوليكن ""2
نحاول الدخول االن اكثر من مرتين وسنجد ان في المرة الثالثة قام برفض الدخول
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 65
REDHAT SERVER HARDENING PAM
وان لم يكن ملف الـ opasswdموجود فنستطيع عمله بحيث تكون الـ Permissionsوالـ Ownerكما يلي
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 66
REDHAT SERVER HARDENING PAM
وعندما يقوم الـ userبتغيير الـ Passwordللمرة الثالثة واستخدام الـ passwordاالولي التي تم استخدامها من قبل تظهر الرسالة
التالية
Useful links:
http://people.redhat.com/smcbrien/summit_2014/ToT-PAM-lab-handout.pdf
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 68
REDHAT SERVER HARDENING Password Aging
http://people.redhat.com/smcbrien/summit_2014/mcbrien_t_1040_Working_with_PAM.pdf
Password Aging
ولكن هذه الـ policyتم وضعها لـ userواحد فقط ولم تطبق علي جميع الـ ،Users
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 70
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 71
REDHAT SERVER HARDENING Password Aging
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 72
REDHAT SERVER HARDENING Password Aging
هناك امر خطير جدا قد يستغله اي hackerاذا نجح في الدخول علي الـ ، systemفاذا قمنا بالتعديل علي ملف /etc/passwd
واضفنا userجديد له نفس الـ root credentialsمثل الـ … uid, login shell, etcواختيار Passwordجديدة ووضعها في
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 73
REDHAT SERVER HARDENING Securing GRUB
/etc/shadowفانه يستطيع بعد ذلك الدخول علي الـ systemبهذا الـ userالوهمي والتعامل بع وكأنه ، rootلذلك من
الضروري البحث بشكل دوري عن الـ uidsالمكررة ويمكن استخدام هذا الـ command
# getent passwd | cut -d : -f3 | uniq -d
Securing GRUB
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 74
REDHAT SERVER HARDENING Securing GRUB
فاذا قمنا بعمل 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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 76
REDHAT SERVER HARDENING Customizing RHEL6
unauthorized users وهذه الـرسالة قد تكون رسالة تحذيرية للـsystem قبل الدخول علي الـuser وهي الرسالة التي تظهر للـ
: مثل
#####################################################################
# #
# All connections are monitored and recorded #
# Disconnect IMMEDIATELY if you are not an authorized user! #
# #
#####################################################################
حيث ان، issue file كما هو موجود في الـrelease سيظهر لنا الـhostname واذا قمنا بالضغط علي الـ
release number “ تعني/r”
architecture “ تعني/m” والـ
/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مثل :
#####################################################################
# #
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 78
REDHAT SERVER HARDENING Customizing RHEL6
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 يستطيع الـ
Instant messages
عن طريق اوامر بسيطةusers “ الي الـinstant messages” ارسال رسائل فوريةuser كما يستطيع الـ
Wall Command
# wall filename
: كالتاليlogged users الي جميع الـfilename يقوم بارسال محتويات الملفwall االمر
User الخاص بالـlogin shell علي الـmessage فتظهر فورا محتويات الملف
Write Command
# write username
االمر writeيقوم بارسال instant messagesالي الـ ،userوهو يختلف عن االمر wallفي انه ال يرسل محتويات الملف وانما
يرسل ما يكتبه الـ rootعلي الـ terminal
كما يمكن اختيار الـ terminalالتي سيتم ارسال الـ Instant messageعليها
]# write username [ttyn
Gnome login users
عند عمل loginعلي الـ serverتظهر امامنا اسماء الـ Usersالموجودين علي الـ ، systemولمزيد من الـ securityيفضل
اخفاء هذه الـ info
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 81
REDHAT SERVER HARDENING Customizing RHEL6
ومن هذه الشاشة الجديدة نختار ” “Editثم ” “Findفتظهر شاشة البحث عن الـ parametersالتي نريد .c
التعامل معها
.dعلي سبيل المثال نكتب ” “disableفي خانة البحث
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 84
REDHAT SERVER HARDENING Customizing RHEL6
نقوم االن بالتأكد من النتيجة عن طريق عمل reloginعلي الـ serverسنجد ان الـ user namesقد اختفت
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 85
REDHAT SERVER HARDENING Customizing RHEL6
“ ولكن مع الفارق باننا سوف نقوم باختيارgconf-editor” السابقةutility نستخدم نفس الـPower button والخفاء الـ
“disable_restart_button” “ اخر وهوparameter”
قد اختفتpower button سنجد ان الـserver علي الـrelogin وللتأكد من النتيجة نقوم بعمل
Authentication systems
، ومعلوماتهم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
بعمل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
389-ds (LDAP), لها هيinstall بعملIPA server التي سيقوم الـdependances Packages سنجد ان من ضمن الـ
وغيرهاApache tomcat, kerbors
IPA-server-install يسمىscript عن طريقIPA server للـinstall & configure نقوم االن بعمل
# ipa-server-install
DNS zone لـcreate كما يقوم بعمل، اخريparameters اليprompt بدونInstall فيقوم بعمل
# system-config-firewall
iptables rule ثم نقوم باستعراص الـ، iptables للـrestart ثم نقوم بعمل
https://server_ip/ipa/ui
ID = 318800000 لهipa server للـadmin user وكما نرى في الصورة السابقة ان الـ
“/etc/passwd” لذلك فلن تجده في ملف، ldap user والnormal user وليسkerberos user هوadmin user والـ
“getent” واال باستخدام
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
كما نرى من الـKerberos مثل الـipa server من الـconfiguration لبعض الـretrieve ونجد هنا انه قام بعمل
configuration file
“id” عن طريق االمرipa server الموجوده في الـaccounts كما نستطيع معرفة الـ
قدclient وهذا يعني ان الـ، “ الذي وضحناه سابقاid” وله نفس الـipa server هو الموجود في الـadmin account وهذا الـ
system/normal user ليسaccount وللتأكد من ان هذا الـ، ipa server من الـaccount حصل علي معلومات هذا الـ
ldap account وليس
ipa عليclient فاذا اردنا اضافة الـ،domain الموجوده في هذا الـipa server هي الخاصه بالـcertificate الن هذه الـ
القديمca.cert نتيجة وجود الـclient installation اثناء الـfail اخر فسوف يحدثdomain اخر موجود فيserver
Using ipa server with GUI
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 99
REDHAT SERVER HARDENING IPA server
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 100
REDHAT SERVER HARDENING IPA server
“-- نتيجة وجود الـhome directory والـlogin shell وقام باضافة الـ، باضافتها بنفسه تلقائياipa server وهذه البيانات قام الـ
page من نفس الـlogin shell كما يمكن تغيير الـ، Installation اثناء الـargument كـmkhomedir”
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
identity management يضاف تلقائيا الي الـipa-client-install عن طريق الـdomain يتم اضافته للـnew client اي
web interface
Add group
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 105
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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 107
REDHAT SERVER HARDENING IPA server
policy password نستعرض الـ، group الموجودين في الـUsers الجديدة علي الـpassword policy وللتأكد من تطبيق الـ
الجديدةpolicy سنجدها تغيرت الي الـuser الخاصه بالـ
كالتاليipa admin tools عن طريقCLI من خالل الـipa server يمكن ان نتعامل مع الـ
1- Install ipa admin tools
# yum install ipa-admintools.x86_64
ولكي نستخدم الـ admin userالخاص بالـ ipa serverيجب الحصول علي ticketمن الـ Kerberosويتم ذلك عن طريق
# kinit admin
ملحوظة :يمكن تنفيذ هذه الخطوة او الحصول علي الـ admin ticketمن اي Machineسواء كانت من الـ ipa
server machineاو من ipa client machine
ولعرض الـ ticketsالممنوحة للـ Users
# klist
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 110
REDHAT SERVER HARDENING IPA server
وبعد االنتهاء من اجراء التعديالت يجب حذف الـ tktمن علي الـ machineحتي ال يستخدمها اي شخص اخر
# kdestroy
كما يمكن التحكم في الـ tkt expiration timeمن الـ GUIاو من الـ CLI
او
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 111
REDHAT SERVER HARDENING IPA server
يمكن ان تتكون منها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 و
capital letters وlower letters يجب ان تحتوي علىPassword فهذا يعني ان الـcharacter classes = 4 اذا كانت الـ
special characters وnumbers و
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 117
REDHAT SERVER HARDENING IPA server
واذا اردنا عمل 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
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 118
REDHAT SERVER HARDENING IPA server
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 119
REDHAT SERVER HARDENING IPA server
excluded عدا الـhosts علي جميع الـaccess سيكون لهمusers الن ذلك يعني ان جميع الـclient ثم نضيف جميع الـ
user : ahmed
ثم نضيف الـ servicesالمسموح بعمل accessعن طريقها او نختار ” “any serviceفي حالة السماح باستخدام جميع الـ
services
وظهور عالمة undoبجانب االختيار تعني انه يجب الضغط علي ” “update buttonلكي يتم تفعيل هذا االختيار بينما اذا لم
تظهر فهذا يعني انك ال تحتاج الي ذلك وسوف يتم تخزين االختيارات بشكل تلقائى
وباستعراض الـ rulesاالن سيظهر التالي :
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 121
REDHAT SERVER HARDENING IPA server
HBAC Test
كما يمكن عمل testللـ ruleقبل تطبيقها وذلك عن طريق
اختيار الـ Userالمراد عمل testعليه واختبار الـ ruleالخاصه به
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 124
REDHAT SERVER HARDENING IPA server
ثم اختيار الـ serviceالتي سيستخدمها الـ userفي الدخول علي الـ host
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 125
REDHAT SERVER HARDENING IPA server
ثم اختيار الـ ruleالتي ستطبق علي الـ userوهذا يعني انه اذا طبقت هذه الـ ruleعلي هذا الـ user : ahmedالذي يحاول عمل
accessعلي host : client.lab.comباستخدام الـ sshdفهل سينجح في عمل accessام ال
Rsyslog
الـ rsyslogهو تطوير للـ syslogالقديم الذي كان :
unsecured -1
-2يستخدم الـ tcpفقط.
ولكن الـ rsyslogاصبح :
secured -1
-2ويمكن ان يستخدم الـ ssl
-3ويستطيع ان يستخدم الـ tcpوالـ udp
-4وتم اضافة Pluginsعليه تسمح له بعمل rulesعلي الـ logsبحيث يستطيع ان يرسل logsمعينه الي clientsمعينه
-5كما انه integratedمع الـ DB
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 126
REDHAT SERVER HARDENING IPA server
Configure client
# vim /etc/rsyslog.conf
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
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
الحظ ان الـ ca-key.pemلها permission : 400حتي ال يستطيع اي احد االطالع عليها ،فان لم تكن كذلك فيجب تغييرها الي
400
ثم نقوم باالجابة علي االسئلة التي يطلبها ،وتوجد sampleمن هذه االسئلة وكيفية االجابة عليها في
/usr/share/doc/rsyslog-5.8.10/tls_cert_ca.html
والحظ انه عندما يسأل عن نوع هذه الـ certificateهل هي authorityام ال ،ستكون االجابة هي نعم الننا نقوم االن بعمل CA
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 131
REDHAT SERVER HARDENING IPA server
سنجد انها تحتوي علي المعلومات التي ادخلناها سابقاrequest واذا استعرضنا محتويات الـ
ومن االفضل تغيير اسم الـ certificateوالـ keyالي اسم له عالقة بالـ server
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 134
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
وال يجب، customized port وانما هوrsyslog الذي يعمل عليه الـdefault port هو ليس الـport 10514 وللعلم فان الـ
االنrsyslog الذي يستخدمه الـport لذا لنرى ما هو الـ، في هذا االمرselinux ان نتجاهل الـ
وهنا يظهر ان الـ selinuxتسمح للـ rsyslogباستخدام الـ port : 6514لذا يجب تغييره الي 12514عن طريق
# semanage port -a -t syslogd_port_t -p tcp 10514
اما اذا لم نقوم بتنفيذ الـ semanage commandواضافة الـ port 10514فسيظهر هذا الـ errorعند عمل restartللـ
rsyslog service
ويمكن االستعانه بالـ documentationايضا لتسهيل هذه الخطوات واالطالع علي الـ samples
/usr/share/doc/rsyslog-5.8.10/tls_cert_machine.html
AHMED GAMIL - LNKD.IN/D6QEGWN ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 136
REDHAT SERVER HARDENING IPA server
/usr/share/doc/rsyslog-5.8.10/tls_cert_server.html
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 ال تنسون ـ ـ ـا من صال ـ ـ ـح دعائكـ ـ ـ ـ ـ ـم 138
REDHAT SERVER HARDENING Useful Links
Useful Links
benchmarcks والـhardening الهامة التي تتحدث عن الـlinks فيما يلي بعض الـ
https://access.redhat.com/documentation/en-
US/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
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
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 واللغاء الـ
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
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
Securing GRUB
grub password للـgenerate لعمل
#grub-md5-crypt
GRUB الي ملف الـhashed password ثم اضافة الـ
او باستخدام االمر
#grub-crypt
grub.conf ايضا اليPassword ثم اضافة الـ
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 الخفاء الـ
# 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 --master-
password=MASTER_PASSWORD --ds-password=DM_PASSWORD --admin-
password=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
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
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
$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