一、用戶權(quán)限安全設(shè)置
root權(quán)限太高,誤操作就相當(dāng)危險(xiǎn),所以日常操作使用普通賬號(hào),只有特定時(shí)候才使用su切換到root身份。
①、新建普通用戶,比如Winter
useradd Winter
②、修改密碼
passwd Winter
③、將帳號(hào)加入wheel組
usermod -G wheel Winter
④、設(shè)置只允許這個(gè)組的帳號(hào),使用su命令切換到root用戶
vim /etc/pam.d/su
找到#auth required pam_wheel.so use_uid
去掉行首的注釋符 # 然后使用 :wq保存退出,
接著vim /etc/login.defs在最末添加SU_WHEEL_ONLY yes,再用:wq保存退出即可。
Ps:執(zhí)行 echo “SU_WHEEL_ONLY yes”>>/etc/login.defs 亦可。
現(xiàn)在,再建立新的普通帳號(hào),是無法使用su命令切換到root組了,感興趣的可以測(cè)試下效果。
⑤、刪除掉不需要的用戶和用戶組
禁止所有默認(rèn)的被操作系統(tǒng)本身啟動(dòng)的并且不必要的賬號(hào),賬號(hào)越多,系統(tǒng)就越容易受到攻擊。
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers
⑥、鎖定口令文件
執(zhí)行chattr命令給下面的文件加上不可更改屬性,從而防止非授權(quán)用戶獲得權(quán)限。
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
二、SSH安全設(shè)置
①、修改SSH端口
默認(rèn)的SSH使用22端口,眾所周知,所以我們有必要自定義只有自己才知道的端口號(hào),而且增加那些惡意掃描端口的難度,建議把SSH端口改到10000以上,比如使用23212,如下修改:
Ps:修改前,請(qǐng)執(zhí)行iptables -nL 確認(rèn)防火墻未設(shè)置非22/80訪問限制規(guī)則,否則可能導(dǎo)致修改后無法使用自定義端口連接就悲劇了!
vim /etc/ssh/sshd_config 編輯SSH配置文件
i. 找到#Port 22,去掉#號(hào),并在下面添加Port 23212(先保留22端口,等23212成功連接再去掉22,保險(xiǎn)做法)
ii. 繼續(xù)找到#UseDNS yes,改成UseDNS no,可以提高ssh的連接速度;
iii. 找到#PermitRootLogin Yes 改成PermitRootLogin no 禁止roo遠(yuǎn)程使用ssh登錄
iv. 找到#PermitEmptyPasswords no,去掉#號(hào), 禁止空密碼登錄
最后,使用 :wq保存退出,再執(zhí)行 service sshd restart 重啟 ssh服務(wù)即可生效。
此時(shí),可以新開一個(gè)終端,測(cè)試能否通過23212端口連接,如果可以就把之前保留的port 22刪除即可。
三、防火墻簡(jiǎn)單安全設(shè)定
由于云主機(jī)是直接使用公網(wǎng)IP的,防火墻還是得簡(jiǎn)單設(shè)置下。
前期如下規(guī)劃:
僅作為web服務(wù)器使用,所以只需要開放SSH和HTTP、HTTPS端口即可,即只要開放上面定義的23212和80、443端口,由于不使用ftp,本例未提到21號(hào)端口,實(shí)際使用請(qǐng)注意辨別。
①、準(zhǔn)備工作
由于操作防火墻具有一定的誤操作風(fēng)險(xiǎn),很可能導(dǎo)致自己也被阻擋在外的悲劇,所以操作防火墻之前事先一定要先建立一個(gè)關(guān)閉防火墻的計(jì)劃任務(wù),比如:
執(zhí)行 crontab -e 加入:
*/10 * * * * root /etc/init.d/iptables stop
表示每10分鐘停止一次防火墻,以防誤操作把自己擋在外面,就算出現(xiàn)誤操作,10分鐘之內(nèi)將會(huì)停止,也不會(huì)造成悲劇,這是一個(gè)技巧!
②、防火墻設(shè)置腳本
以下代碼我親測(cè)無誤,請(qǐng)放心使用,策略說明:
i. 僅開通HTTP(80)、HTTPS(443)和SSH(自動(dòng)抓?。┒丝冢渌宦删芙^訪問!可根據(jù)實(shí)際需要在第10行添加其他端口,比如FTP的21端口、smtp25端口等。
ii. 單向禁ping設(shè)置,即外部IP無法ping通你的公網(wǎng)IP。
#!/bin/bash
ssh_port=`netstat -nutlp | grep sshd | grep 0.0.0.0 | awk '{print $4}' | cut -d ":" -f2`
iptables -F
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 80,443,$ssh_port -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
/etc/init.d/iptables save
exit 0
確認(rèn)無誤后,記得把第①步中的任務(wù)計(jì)劃取消。
四、其他安全設(shè)置
①、開啟TCP SYN Cookie保護(hù)
執(zhí)行echo 1 > /proc/sys/net/ipv4/tcp_syncookies即可。
做到這里,你的云主機(jī)已經(jīng)具備不錯(cuò)的安全性了,當(dāng)互聯(lián)網(wǎng)沒有絕對(duì)的安全可言,我們必須時(shí)刻注意網(wǎng)絡(luò)安全動(dòng)態(tài),隨時(shí)對(duì)已經(jīng)暴露出的和潛在安全漏洞進(jìn)行修補(bǔ)。