امنیت سرورهای لینوکسی (پارت دوم)

  • نوشته شده توسط 

1. سعی کنید از Policy های قدرتمند برای پسورد و نام کاربری استفاده نمایید:

می توانید برای ایجاد و حفظ اکانت کاربران از دستورات useradd / usermod استفاده کنید. اطمینان حاصل نمایید که از policy قدرتمندی برای پسوردها استفاده می کنید. به عنوان مثال، یک پسورد خوب و قدرتمند حداقل ۸ کاراکتر طول دارد و ترکیبی از الفبا، اعداد، کاراکترهای خاص و حروف بزرگ و کوچک است.  مهم تر از همه این است که پسوردی را انتخاب کنید که به یاد سپاری آن برای خودتان راحت و ساده باشد. از ابزارهایی همچون John the ripper برای یافتن پسوردهای ضعیف در سرور خود استفاده کنید.  برای اعمال policy پسوردها می توانید pam_cracklib.so را پیکربندی کنید.

2. SELinux:

متخصصان توصیه می کنند از SELinux برای بهبود امنیت سرور لینوکسی استفاده شود. این گزینه MAC انعطاف پذیری را فراهم می کند. اجرای MAC سیستم را در برابر اپلیکیشن های بدخواه محافظت می کند.

3. برای استفاده از پسوردهای قبلی، محدودیت قائل شوید:

شما می توانید کاربران را از کاربرد پسوردهای قبلی منع کنید. استفاده از ماژول pam_unix به شما کمک می کند تعداد پسوردهای قبلی که دیگر نمی توان آن ها را مورد استفاده قرار داد تعیین کنید.

4. بعد از شکست در لاگین، اکانت کاربر را مسدود کنید:

تحت سرورهای لینوکسی، می توانید از دستور faillog برای نمایش رکوردهای لاگین ناموفق استفاده کنید یا  محدودیتی را برای اینکار تعیین نمایید. برای مشاهده لاگین هایی که با شکست مواجه شده است می توانید دستور faillog را وارد کنید. برای Unlock کردن اکانت پس از شکست در لاگین دستور زیر را مورد استفاده قرار دهید:

faillog -r -u userName

 

 توجه داشته باشید که می توانید از دستور passwd برای قفل کردن و باز کردن اکانت کاربران استفاده کنید

# lock account
passwd -l userName
# unlocak account
passwd -u userName

 

5. اطمینان حاصل نمایید هیج اکانت غیر روتی ، UID خود را بر روی عدد ۰ تنظیم نکرده است:

تنها کاربر روت می تواند UID صفر داشته باشد و به کل سیستم دسترسی یابد. برای نمایش تمامی اکانت هایی که UID صفر دارند دستور زیر را تایپ کنید:

# awk -F: ‘($3 == “0”) {print}’ /etc/passwd

 

باید تنها یک خط را مشاهده کنید:

root:x:0:0:root:/root:/bin/bash

اگر خطوط دیگری را در این دستور مشاهده کردید، آن ها را پاک کنید یا مطمئن شوید که  اکانت هایی با UID صفر، معتبر و تایید شده هستند.

6.امنیت سرور را به صورت فیزیکی تامین کنید:

شما باید دسترسی فیزیکی به سرور را نیز محدود کنید. بایوس را پیکربندی کنید و بوت شدن از دستگاه های خارجی مثل سی دی، دی وی دی و فلش مموری را غیر فعال سازید.  از پسورد بوت لودر و بایوس برای محافظت از این تنظیمات استفاده کنید.

 

 

7. X Windows را پاک کنید:

بر روی سرور  خود نیازی به X Windows نخواهید داشت. دلیلی برای اجرای آن بر روی ایمیل های اختصاصی و وب سرور آپاچی وجود ندارد. برای بهبود امنیت و عملکرد سرور لینوکسی خود می توانید X Windows را پاک کنید. برای اینکار کافیست /etc/inittab را ویرایش کنید و سطح اجرا(run level) را بر روی ۳ تنظیم نمایید. در نهایت با وارد کردن دستور زیر، X Windows را پاک کنید:

# yum groupremove “X Window System

 

بر روی سرورهای سنت او اس ۷ و RHEL 7 از دستورات زیر استفاده کنید:

# yum group remove “GNOME Desktop”
# yum group remove “KDE Plasma Workspaces”
# yum group remove “Server with GUI”
# yum group remove “MATE Desktop”

 

8. پارتیشن های مختلف دیسک را جدا کنید:

جدا کردن فایل های سیستم عامل از فایل های کاربر می تواند سیستم شما را امن تر سازد و عملکرد آن را بهبود ببخشد. مطمئن شوید که filesystem های زیر در پارتیشن های جداگانه ای قرار دارند:

/usr

/home

/var and /var/tmp

/tmp

برای آپاچی و سرور FTP نیز پارتیشن های جداگانه ای ایجاد کنید.  فایل /etc/fstab را ویرایش نمایید و سپس مطمئن شوید که گزینه های پیکربندی زیر را بدان اضافه می کنید:

  • noexec: اجازه اجرای باینری ها را در این پارتیشن نمی دهد.
  • nodev: اجازه استفاده از دستگاه ها یا کاراکترهای خاص را نمی دهد.
  • nosuid: دسترسی به SUID/SGID را مجاز نمی داند.

9. IPV6 را غیر فعال کنید:

اگر از IPV6 استفاده نمی کنید حتما آن را غیر فعال نمایید. 

10. تعداد کانکشن های IP در Nginx را محدود کنید:

برای محدود کردن کانکشن ها IP، از دستورات limit_conn_zone (در یک http context یا در حداقل خروجی server block) و limit_conn (در یک http، server block یا location context) استفاده کنید.

با این حال، به خاطر داشته باشید که همه کانکشن ها قابل شمارش نیستند - اما تنها آنهایی که درخواست پردازش شده از server و request headerکامل دارند؛ خوانده می شوند.

برای مثال، بگذارید حداکثر کانکشن ها معادل 1 تنظیم شود (بله، این اغراق آمیز است، اما در این مورد، کار را به نحوه احسن انجام می دهد) در یک zone به نام addr (می توانید هر نامی که می خواهید را بر روی آن بگذارید) :

کد:

limit_conn_zone $binary_remote_addr zone=addr:5m;

 

11. فایل هایی که صاحب و مالکی ندارند:

فایل هایی که مالکی ندارند یا به گروه خاصی اختصاص ندارند می توانند مشکلات امنیتی زیادی در سرورهای لینوکسی ایجاد کنند. کافیست آن ها را به کمک دستور زیر بیابید:

find /dir -xdev \( -nouser -o -nogroup \) -print

حالا هر کدام از این موارد را بررسی کنید ، گروه یا کاربر خاصی را به آن ها اختصاص دهید یا کلا حذف نمایید.

12. نصب فایروال CSF

نصب فایروال CSF از این جهت توصیه میشود که با رعایت موارد امنیتی که توسط CSF به شما پیشنهاد خواهد شد ، اجرای بسیاری از شل ها و بد افزار ها مختل خواهد شد .

13. فایل ها، دایرکتوری ها و ایمیل ها را محافظت نمایید:

لینوکس محافظت های خوبی در برابر داده ها و دسترسی های تایید نشده ارائه می کند. Permission ها و MAC  مانع از دسترسی تایید نشده به داده ها می شود. با اینحال اگر هکری دسترسی فیزیکی به رایانه و سرور داشته باشد استفاده از این گزینه ها نامرتبط خواهد بود. در این شرایط فرد می تواند به راحتی هارد دیسک رایانه را به سیستم دیگری انتقال دهد و داده های حساس را آنالیز و کپی نماید.برای محافظت از فایل ها و پارتیشن های خود از ابزارهای زیر استفاده کنید:

  • برای رمزگذاری و آشکارسازی رمز، از دستور gpg استفاده کنید.
  • رمزگذاری کامل دیسک برای محافظت از داده ها ضروری است.
  • اطمینان حاصل نمایید که ایمیل روت به اکانتی که همیشه بررسی می کنید فوروارد می شود.

در محیط های اشتراکی (در صورت استفاده از وب سرور آپاچی) حتما از php-handler امن و قدرتمند suphp استفاده کنید . با کمک این اجرا کننده php در صورت هک شدن یکی از یوزر های هاست ، دسترسی گرفتن از محیط خارج از هاست هک شده برای هکر بسیار دشوار و در مواردی غیر ممکن خواهد شد .

15. امنیت اسکریپت و سیستم مدیریت محتوا:

امن کردن سرور و وب سرور وظیفه مدیر سرور و هاستینگ است ، ولی بخشی از امنیت نیز مربوط به مدیر سایت می باشد . بار ها پیش آمده که سایتی به دلیل وجود باگ امنیتی ، حتی با توجه به امنیت بالای سرور هک شده است . حتما همیشه از آخرین نسخه های پایدار سیستم های مدیریت محتوا استفاده کنید . پلاگین ها ، ماژول ها و کامپوننت ها را همیشه به روز نگهدارید و از اسکریپت های ناشناخته و قدیمی هرگز استفاده نکنید . اگر سایت شما یک آپلود سنتر است ، حتما در پوشه آپلود عکس ها ، محدودیت هایی برای اجرا نشدن هر نوع فایل اجرایی اعمال کنید . برای مثال با وارد کردن کد زیر در .htaccess پوشه مورد نظر ، وب سرور هیچ فایلی به جز فایل های مربوط به تصویر و عکس را اجرا نخواهد کرد :

 <FilesMatch “\.(gif|jpg|png)$”> deny from all </FilesMatch>

 

16. بک آپ گیری را فراموش نکنید:

مطمئنا از اهمیت بک آپ گیری در سیستم های لینوکسی آگاه هستید. یک بک آپ خوب می تواند در موارد ناخواسته کمک فراوانی به شما بکند.

 

 

  

 

آخرین ویرایش درشنبه, 20 آبان 1396 09:48

از پر شدن تمامی موارد الزامی ستاره‌دار (*) اطمینان حاصل کنید. کد HTML مجاز نیست.