■ 河北科技師范學(xué)院 趙學(xué)作 秦皇島市睿訊網(wǎng)絡(luò)科技有限公司 趙少農(nóng)
編者按: CentOS 7作為服務(wù)器的常用系統(tǒng),其安全性至關(guān)重要,因此本文將討論一系列CentOS 7服務(wù)器的安全設(shè)置,以最大化確保其安全。
CentOS(社區(qū)企業(yè)操作系統(tǒng))是一個(gè)基于Red Hat Linux提供的可自由使用源代碼的企業(yè)級(jí)Linux發(fā)行版本,其最新版本為CentOS 7.6。CentOS 7在內(nèi)核層面支持Docker容器技術(shù),可以提高Docker穩(wěn)定性和可靠性,也正因此CentOS 7成了服務(wù)器系統(tǒng)的最佳首選。
我們都知道配置任何服務(wù)器,都必須把不用的服務(wù)關(guān)閉、把系統(tǒng)權(quán)限設(shè)置到最小化,這樣才能保證服務(wù)器最大的安全,CentOS 7服務(wù)器安全設(shè)置也是如此。
用以下命令修改防火墻設(shè)置:
# f i r e w a l l-c m d--zone=public --addport=2019/tcp -permanent
# semanage port -a -t ssh_port_t -p tcp 2019
# semanage port -l |grep ssh
圖1 修改root用戶名
再修改sshd_config:
# vi /etc/ssh/sshd_config
在文件中加入一行:
Port=2019 #即把默認(rèn)的22端口改成2019
保存文件后執(zhí)行以下命令:
# systemctl restart sshd
# systemctl restart sshd.service
# systemctl restart firewalld.service
以root身份登錄終端,執(zhí)行如圖1所示命令。
1.只允許指定用戶進(jìn)行登錄(白名單)。
在/e t c/s s h/s s h d_config配置文件中設(shè)置 AllowUsers選項(xiàng),(配置完成需要重啟SSHD服務(wù))格式如下:
AllowUsers qhdedu test@192.168.1.1
#允 許qhdedu和 從192.168.1.1登錄的test帳戶通過(guò)SSH登錄系統(tǒng)。
2.只拒絕指定用戶進(jìn)行登錄(黑名單)。
在/etc/ssh/sshd_config配置文件中設(shè)置DenyUsers選項(xiàng),(配置完成需要重啟SSHD服務(wù))格式如下:
DenyUsers qhdedua qhdedub #拒絕CentOs系統(tǒng)賬戶qhdedua、qhdedub通過(guò)SSH登錄系統(tǒng)
除了可以禁止某個(gè)用戶登錄,我們還可以針對(duì)固定的IP進(jìn)行禁止登錄,CentOS服務(wù)器通過(guò)設(shè)置/etc/hosts.allow和/etc/hosts.deny這個(gè)兩個(gè)文件來(lái)進(jìn)行控制,hosts.allow許可大于hosts.deny,可以限制或者允許某個(gè)或者某段IP地址遠(yuǎn)程SSH登錄服務(wù)器。方法比較簡(jiǎn)單,具體如圖2所示。
圖2 限制或允許某IP遠(yuǎn)程SSH登錄服務(wù)器
圖3 設(shè)置系統(tǒng)口令策略
圖4 建議關(guān)閉的用戶
圖5 關(guān)閉系統(tǒng)一些不需要的服務(wù)
如圖3所示。
# vi /etc/host.conf
添加: nospoof on不允許服務(wù)器對(duì)IP地址進(jìn)行欺騙。
# vi /etc/passwd
在這個(gè)文件中,每行表示一個(gè)用戶,在前面加上#注釋掉此行,即暫時(shí)關(guān)閉此用戶,不建議直接刪除,待有需要時(shí),去掉注釋即可,建議關(guān)閉的用戶如圖4所示。
# vi /etc/group #編輯用戶組,在前面加上#注釋掉此行,建議關(guān)閉的用戶組有:
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
如圖5所示。
若想恢復(fù)某個(gè)服務(wù),可使用“service servicename start”命令,如啟用藍(lán)牙服務(wù):
# service Bluetooth start chkconfig Bluetooth on
# vi /etc/aliases#建議注釋掉不要的
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
#root: marc
修改后執(zhí)行“/usr/
bin/newaliases”。
# cp /usr/lib/systemd/system/ctrl-altdel.target /usr/lib/systemd/system/ctrl-altdel.target.bak #修改前備份
直接編輯/usr/lib/systemd/system/ctrl-altdel.targe這個(gè)文件,按以往設(shè)置關(guān)閉這個(gè)功能的方式去操作:全部注釋掉文件中的內(nèi)容即可。但由于此文件是/usr/lib/systemd/system/reboot.target的軟鏈接文件,這樣會(huì)使reboot命令失效。因此要想解決這個(gè)問(wèn)題,只需刪除文件“/usr/lib/systemd/system/ctrl-alt-del.target”即可,同時(shí)執(zhí)行#init q重新加載配置文件使配置生效,此 時(shí)Ctrl+Alt+Del失效,同時(shí)reboot也能用,恢復(fù)ctrl+ALt+Del只 需 將reboot.target文件軟鏈接成“ctrl-alt-del.target”即可。即:
# ln -s /usr/lib/systemd/system/reboot.target /usr/lib/systemd/system/ctrl-alt-del.target
圖6 限制不同文件的權(quán)限
# cp /etc/rc.d/rc.local /etc/rc.d/rc.localbak #修改前備份
# vi /etc/rc.d/rc.local #修改文件,在文件末尾增加下面這一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #參數(shù)0表示允許,1表示禁止
# cp /etc/profile /etc/profilebak #修改前備份
# vi /etc/profile
找到 HISTSIZE=1000 改為 HISTSIZE=50
默認(rèn)情況下登錄到CentOS系統(tǒng)時(shí),它會(huì)告訴該CentOS發(fā)行版的名稱、版本、內(nèi)核版本、服務(wù)器的名稱。為了不讓這些默認(rèn)的信息泄露出來(lái),我們要進(jìn)行下面的操作,讓它只顯示一個(gè)“l(fā)ogin:”提示符。
刪 除/etc/issue和/etc/issue.net這兩個(gè)文件,或者把這兩個(gè)文件改名,效果是一樣的。
# mv /etc/issue /etc/issuebak
# mv /etc/issue.net/etc/issue.netbak
# chmod -R 700 /etc/rc.d/init.d/*
# chmod -R 777 /etc/rc.d/init.d/* #恢復(fù)默認(rèn)設(shè)置
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/gshadow
# chattr +i /etc/services #給系統(tǒng)服務(wù)端口列表文件加鎖,防止未經(jīng)許可的刪除或添加服務(wù)
# lsattr /etc/passwd/etc/shadow /etc/group/etc/gshadow /etc/services #顯示文件的屬性
注意:執(zhí)行以上權(quán)限修改之后,就無(wú)法添加刪除用戶了。
如果再要添加刪除用戶,需要先取消上面的設(shè)置,等用戶添加刪除完成之后,再執(zhí)行上面的操作。
# chattr
-i /etc/passwd #取消權(quán)限鎖定設(shè)置
# chattr -i /etc/shadow
# chattr -i /etc/group
# chattr -i /etc/gshadow
# chattr -i /etc/services #取消系統(tǒng)服務(wù)端口列表文件加鎖
現(xiàn)在可以進(jìn)行添加刪除用戶了,操作完之后再鎖定目錄文件。
如圖6所示。