一、用戶權(quán)限安全設置
root權(quán)限太高,誤操作就相當危險,所以日常操作使用普通賬號,只有特定時候才使用su切換到root身份。
①、新建普通用戶,比如Winter
useradd Winter
②、修改密碼
passwd Winter
③、將帳號加入wheel組
usermod -G wheel Winter
④、設置只允許這個組的帳號,使用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)在,再建立新的普通帳號,是無法使用su命令切換到root組了,感興趣的可以測試下效果。
⑤、刪除掉不需要的用戶和用戶組
禁止所有默認的被操作系統(tǒng)本身啟動的并且不必要的賬號,賬號越多,系統(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安全設置
①、修改SSH端口
默認的SSH使用22端口,眾所周知,所以我們有必要自定義只有自己才知道的端口號,而且增加那些惡意掃描端口的難度,建議把SSH端口改到10000以上,比如使用23212,如下修改:
Ps:修改前,請執(zhí)行iptables -nL 確認防火墻未設置非22/80訪問限制規(guī)則,否則可能導致修改后無法使用自定義端口連接就悲劇了!
vim /etc/ssh/sshd_config 編輯SSH配置文件
i. 找到#Port 22,去掉#號,并在下面添加Port 23212(先保留22端口,等23212成功連接再去掉22,保險做法)
ii. 繼續(xù)找到#UseDNS yes,改成UseDNS no,可以提高ssh的連接速度;
iii. 找到#PermitRootLogin Yes 改成PermitRootLogin no 禁止roo遠程使用ssh登錄
iv. 找到#PermitEmptyPasswords no,去掉#號, 禁止空密碼登錄
最后,使用 :wq保存退出,再執(zhí)行 service sshd restart 重啟 ssh服務即可生效。
此時,可以新開一個終端,測試能否通過23212端口連接,如果可以就把之前保留的port 22刪除即可。
三、防火墻簡單安全設定
由于云主機是直接使用公網(wǎng)IP的,防火墻還是得簡單設置下。
前期如下規(guī)劃:
僅作為web服務器使用,所以只需要開放SSH和HTTP、HTTPS端口即可,即只要開放上面定義的23212和80、443端口,由于不使用ftp,本例未提到21號端口,實際使用請注意辨別。
①、準備工作
由于操作防火墻具有一定的誤操作風險,很可能導致自己也被阻擋在外的悲劇,所以操作防火墻之前事先一定要先建立一個關(guān)閉防火墻的計劃任務,比如:
執(zhí)行 crontab -e 加入:
*/10 * * * * root /etc/init.d/iptables stop
表示每10分鐘停止一次防火墻,以防誤操作把自己擋在外面,就算出現(xiàn)誤操作,10分鐘之內(nèi)將會停止,也不會造成悲劇,這是一個技巧!
②、防火墻設置腳本
以下代碼我親測無誤,請放心使用,策略說明:
i. 僅開通HTTP(80)、HTTPS(443)和SSH(自動抓?。┒丝?,其他一律拒絕訪問!可根據(jù)實際需要在第10行添加其他端口,比如FTP的21端口、smtp25端口等。
ii. 單向禁ping設置,即外部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
確認無誤后,記得把第①步中的任務計劃取消。
四、其他安全設置
①、開啟TCP SYN Cookie保護
執(zhí)行echo 1 > /proc/sys/net/ipv4/tcp_syncookies即可。
做到這里,你的云主機已經(jīng)具備不錯的安全性了,當互聯(lián)網(wǎng)沒有絕對的安全可言,我們必須時刻注意網(wǎng)絡安全動態(tài),隨時對已經(jīng)暴露出的和潛在安全漏洞進行修補。