hardening سیستم عامل CentOS 7 قسمت ۱

در این پست به آموزش نحوه hardening سیستم عامل centos 7  می پردازیم.

برای دیدن لیست آموزش های لینوکس مانند نصب centos 7 به اینجا مراجعه کنید.

hardening چیست ؟

زمانی که ما یک سیستم عامل را نصب می کنبم , آن بصورت کاملا basic  و پیش پا افتاده نصب می شود و کلی رخنه های امنیتی در آن وجود دارد که با عمل hardening می توانیم جلوی این رخنه های امنتی را بگیریم.

برای hardening سیستم عامل centos 7 به ترتیب زیر عمل می کنیم

این مقاله را در سه قسمت برای شما عزیزان ارائه میکنیم

۱- امن کردن mount point ها

برای این کار ابتدا باید آپشن noexec را برای هر کدام از Mount point ها در فایل /etc/fstab فعال کنیم. برای این منظور فایل /etc/fstab را باز میکنیم و بصورت زیر ویرایش میکنیم.

#
# /etc/fstab
# Created by anaconda on Sat Oct 11 14:28:47 2014
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/lg_os-lv_root / xfs defaults 1 1
UUID=d73c5d22-75ed-416e-aad2-8c1bb1dfc713 /boot ext4 defaults,nosuid,noexec,nodev 1 2
/dev/mapper/lg_data-lv_home /home xfs defaults 1 2
/dev/mapper/lg_os-lv_tmp /tmp xfs defaults,nosuid,noexec,nodev 1 2
/dev/mapper/lg_os-lv_var /var xfs defaults,nosuid 1 2
/dev/mapper/lg_os-lv_var_tmp /var/tmp xfs defaults,nosuid,noexec,nodev 1 2
/dev/mapper/lg_os-lv_var_tmp /var/log xfs defaults,nosuid,noexec,nodev 1 2
/dev/mapper/lg_os-lv_var_tmp /var/log/audit xfs defaults,nosuid,noexec,nodev 1 2
/dev/mapper/lg_data-lv_var_www /var/www xfs defaults,nosuid,noexec,nodev 1 2
/dev/mapper/lg_data-lv_swap swap swap defaults 0 0

۲- نصب و تنظیم NTP

در بیشتر مواقع مشکلات امنیتی برای سرویس و سیستم عامل ما بهاطر عدم هماهنگ بودن زمان محلی آن با واقعیا می باشد . برای مثال گاهی اوقات سرور و سیستم عامل centos 7 ما در تهران نصب شده است ولی ساعت و مخل آن newyork آمریکا میباشد . برای این کار بترتیب NTP را نصب میکنیم و سپس سیستم عامل centos 7 را تنظیم میکنیم که زمان خود را از یک سرور اینترنتی یا حتی NTP خودمان بگیرد.

در زیر مثالی برای این مورد آورده شده است.

yum install ntp ntpdate
chkconfig ntpd on
ntpdate pool.ntp.org
/etc/init.d/ntpd start

۳- جلو گیری از اتصال Flash توسط کاربران

یکی از مواردی که همیشه برای یک سیستم عانل موارد امنیتی ایجاد میکند اتصال Flash به سرور است . برای جلوگیری از این مورد باید این دسترسی را از کاربر بگیریم. در زیر مثالی برای این مورد آورده شده است

echo “install usb-storage /bin/false” > /etc/modprobe.d/usb-storage.conf

۴- ایمن کردن پسوردها در سیستم عامل centos 7

بعد از نصب سیستم عامل centos 7 بصورت پیش فرض این سیستم عامل از لحاظ تنظیمات مقادر پیچیدگی , نوع و … کلمه عبور بسیار ضعیف میباشد که ما باید آنها را بسته به سلیقه خودمان تغییراتی در آن دهیم.

در زیر مثالی از این تغییرات که باید در فایل /etc/security/pwquality.conf داده شود را آورده ایم.

# Configuration for systemwide password quality limits
# Defaults:
#
# Number of characters in the new password that must not be present in the
# old password.
difok = 5
#
# Minimum acceptable size for the new password (plus one if
# credits are not disabled which is the default). (See pam_cracklib manual.)
# Cannot be set to lower value than 6.
minlen = 14
#
# The maximum credit for having digits in the new password. If less than 0
# it is the minimum number of digits in the new password.
dcredit = 1
#
# The maximum credit for having uppercase characters in the new password.
# If less than 0 it is the minimum number of uppercase characters in the new
# password.
ucredit = 1
#
# The maximum credit for having lowercase characters in the new password.
# If less than 0 it is the minimum number of lowercase characters in the new
# password.
lcredit = 1
#
# The maximum credit for having other characters in the new password.
# If less than 0 it is the minimum number of other characters in the new
# password.
ocredit = 1
#
# The minimum number of required classes of characters for the new
# password (digits, uppercase, lowercase, others).
minclass = 4
#
# The maximum number of allowed consecutive same characters in the new password.
# The check is disabled if the value is 0.
maxrepeat = 3
#
# The maximum number of allowed consecutive characters of the same class in the
# new password.
# The check is disabled if the value is 0.
maxclassrepeat = 3
#
# Whether to check for the words from the passwd entry GECOS string of the user.
# The check is enabled if the value is not 0.
gecoscheck = 1
#
# Path to the cracklib dictionaries. Default is to use the cracklib default.
# dictpath =

۵- ایمن کردن فایل /etc/login.defs

برای این منظور فایل /etc/login.defs را بصورت زیر ویرایش میکنیم

PASS_MIN_LEN 14
PASS_MIN_DAYS 1
PASS_MAX_DAYS 60.

۶- تنظیم اعلان آخرین ورود و دسترسی در centos 7

برای این منظور خط زیر را به فایل /etc/pam.d/system-auth اضافه میکنیم

session required pam_lastlog.so showfailed

۷- تنظبم تعداد باری که میشود پسورد را اشتباه وارد کرد

برای این منظور فایلی که در مرحله قبل گفتیم را باز میکنیم و عبارت retry را در مقایل جمله pam_pwquality.so بسته به نیاز خود تعییر میدهیم.

۸- تنظیم تعداد بار استفاده از یک پسورد در دفعات متوالی

برای اینکه کاربر نتواند از یک پسورد پشت سر هم استفاده کند باید تنظیماتی را انجام دهیم.

در زیر نمونه ای از این تغییرات را آورده ایم

vi /etc/pam.d/password-auth

auth [default=die] pam_faillock.so authfail deny=3 unlock_time=604800 fail_interval=900

auth required pam_faillock.so authsucc deny=3 unlock_time=604800 fail_interval=900

password sufficient pam_unix.so existing_options remember=24

۹- بررسی دسترسی فایل /boot/grub2/grub.cfg

مقدار دسترسی فایل /boot/grub2/grub.cfg باید برابر ۶۰۰ باشد برای چک کردن آن باید دستور زیر را اجرا کنیم

sudo chmod 600/boot/grub2/grub.cfg

۱۰-  گذاشتن کلمه عبور برای grub

گاهی اوقات یک نفوذگر برای اینکه به سیستم عامل شما دسترسی داشته باشد مواردی که هنگام بوت شدن سیستم عامل استفاده میشود را دستکاری مکند تا دترسی های نا متعارفی را برای خود بدست آورد . برای این منظور بهتر است روی grub پسورد بگذاریم.

برای این منظور به مسیر /etc/grub.d میرویم و دستور زیر را اجرا میکنیم

grub2-mkpasswd-pbkdf2

۱۱- گذاشتن پسورد برای حالت single user

برای این منظور خط زیر را به فایل /etc/sysconfig/init اضافه میکنیم

SINGLE=/sbin/sulogin

۱۲- غیر فعال کردن ctrl+alt+del

از آنجایی که با زدن ctrl+alt+del سیستم عامل reboot می شود باید آن را غیر فعال کرد برای این منظور بصورت زیر عمل میکنیم

vi /etc/init/control-alt-delete.conf

بعد خط زیر را به خط بعدیش تغییر میدهیم

exec /sbin/shutdown -r now “Control-Alt-Delete pressed”
exec /usr/bin/logger -p security.info “Control-Alt-Delete pressed”

۱۳- غیر فعال کردن zeroconf networking

زمانی که سیستم عامل نتواند از DHCP ای پی بگیرد یک رنج ۱۶۹٫۲۵۴٫۰٫۰ بصورت اتوماتیک میگیرد برای جلوگیری از این منظور بصورت زیر عمل میکنیم

echo “NOZEROCONF=yes” >> /etc/sysconfig/network

۱۴- غیرفعال کردن پشتیبانی از IPv6

برای این منظور بصورت زیر عمل میکنیم

echo “options ipv6 disable=1” >> /etc/modprobe.d/disabled.conf

۱۵- غیر فعال کردن IPv6 روی اینترفیس

برای این منظور فایل /etc/sysconfig/network را بصورت زیر ویرایش میکنیم

NETWORKING_IPV6=no
IPV6INIT=no

۱۶- ایمن سازی لاگین کاربر root

کاربر root فقط باید از نزدیک بتواند در سیستم لاگین کند . برای این منظور بصورت زیر عمل میکنیم

echo “tty1” > /etc/securetty
chmod 700 /root

ادامه مقاله در قسمت دوم

قسمت سوم مقاله

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *