۳۹ نکته برای امن کردن سرورهای لینوکسی (بخش دوم)

آبان ۲۳, ۱۳۹۷

۳۹ نکته برای امن کردن سرورهای لینوکسی (بخش دوم)

linuxدر این بخش به ادامه نکات امن کردن سرورهای لینوکسی می پردازیم.

۳۹ نکته برای امن کردن سرورهای لینوکسی (بخش دوم)

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

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

faillog -r -u userName

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

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

۱۲٫تعداد اکانت هایی که پسورد خالی دارند را به دست آورید:

برای اینکار می توانید دستور زیر را تایپ کنید:

# awk -F: ‘($۲ == “”) {print}’ /etc/shadow

حالا تمامی اکانت هایی که پسورد خالی دارند را به کمک دستور زیر ببندید:

# passwd -l accountName

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

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

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

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

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

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

۱۴٫لاگین روت را غیر فعال کنید:

هرگز به عنوان کاربر روت وارد سیستم نشوید مگر اینکه به آن نیاز داشته باشید. برای اجرای دستورات سطح روت می توانید از sudo استفاده کنید. این دستور امنیت سیستم را بدون اشتراک گذاری پسورد روت با سایر کاربران و ادمین ها، بهبود می بخشد. این گزینه قابلیت های نظارت و پیگیری را نیز فراهم می کند.

۱۵٫امنیت سرور را به صورت فیزیکی تامین کنید:

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

۱۶٫سرویس هایی که نیاز ندارید را غیر فعال سازید:

تمامی سرویس ها و سرویس هایی که در بک گراند اجرا می شوند و به آن ها نیازی ندارید را غیر فعال کنید.  باید تمامی سرویس های غیر ضروری را از استارت آپ سیستم پاک کنید. دستور زیر را تایپ کنید تا بتوانید تمامی سرویس هایی که با بوت سیستم اجرا می شوند را مشاهده کنید:

# chkconfig –list | grep ‘۳:on’

برای غیر فعال کردن سرویس ها می توانید از دستور زیر استفاده کنید:

# service serviceName stop
# chkconfig serviceName off

۱۷٫پورت های Listening شبکه را پیدا کنید:

از دستور زیر برای یافتن تمامی پورت های باز و برنامه های مرتبط با آن استفاده کنید:

netstat -tulpn

شما می توانید از دستور ss نیز به شیوه زیر استفاده کنید:

$ ss -tulpn

۱۸٫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

  1. Iptables و TCPWrappersرا پیکربندی کنید:

Iptables برنامه ای است که به شما اجازه می دهد فایروال فراهم شده توسط کرنل لینوکس را پیکربندی کنید.  برای فیلتر کردن ترافیک و مسدود کردن ترافیک های ناخواسته می توانید از فایروال استفاده کنید. از  TCPWrappers نیز برای فیلتر کردن دسترسی شبکه به اینترنت استفاده نمایید.به کمک Iptables می توانید جلوی بسیاری از denial of service attacks را بگیرید.

۲۰٫فایل /etc/sysctl.conf را امن کنید:

این فایل برای پیکربندی پارامترهای کرنل مورد استفاده قرار می گیرد. لینوکس تنظیمات موجود در این فایل را در زمان بوت می خواند و اعمال می کند. نمونه ای از فایل /etc/sysctl.conf را در ادامه مشاهده می کنید:

# Turn on execshield

kernel.exec-shield=1

kernel.randomize_va_space=1

# Enable IP spoofing protection

net.ipv4.conf.all.rp_filter=1

# Disable IP source routing

net.ipv4.conf.all.accept_source_route=0

# Ignoring broadcasts request

net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.icmp_ignore_bogus_error_messages=1

# Make sure spoofed packets get logged

net.ipv4.conf.all.log_martians = 1