最基本的Linux系統安全防護,你做到了嗎?阿里云租用須看
前言
最近有些朋友自己買了阿里云主機,他們自己在阿里云上面部署了一些服務什么的,他們或許對代碼比較熟悉,但是對系統安全和系統防護這一塊還是比較缺乏經驗。前幾天有個朋友叫我幫他看下他阿里云主機上的一些進程卡死的問題,這個朋友也是很信任我,直接把公網IP,賬號密碼給我了。
我拿到IP、賬號、密碼一看。IP是公網的,ssh的端口是22,賬號是root,密碼是8位簡單的密碼。可能是職業的關系,我就覺得這個機器很不安全,于是就建議朋友從安全方面加固他的阿里云主機系統安全。
1、修改默認的ssh端口號
系統默認的ssh端口號是22,現在的網絡環境中,無時無刻不在有人對暴露在公網的服務器進行掃描,為的就是入侵你的系統,控制你的系統作為犯罪的肉雞,或者盜竊其中的信息。此時你的ssh端口如果依然為22,那么無疑是幫助這些小人降低入侵你系統的難度。因此第一條建議是修改ssh的默認端口。
修改方法:
- # sed -i 's/#Port 22/Port 22612/' /etc/ssh/sshd_config
- # /etc/init.d/sshd restart

2、創建普通用戶,禁止root用戶直接遠程登錄系統
首先你需要創建一個普通用戶,這個普通用戶的定位可以是用來可以遠程登錄系統的用戶,可以是基于程序運行的用戶等等,總之只有一個root用戶是不太安全的。
- # useradd testuser
- # echo testuser@112233 | passwd --stdin testuser (當然建議密碼使用 # mkpasswd -l 16 命令進行隨機生成密碼,從安全角度來說,盡量16位以上)
普通用戶創建了,接下來進行root用戶直接登錄系統。
修改方法:
- # sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
設置完成后,root無法從遠程直接登錄系統,如需使用root權限,可以遠程登錄testuser用戶,再su切換到root即可使用root權限。

3、系統登錄失敗次數限制策略
我上面也說了,現在的網絡環境中,無時無刻不在有人對暴露在公網的服務器進行掃描,如果有人掃描到了你這個系統的ssh端口是被修改之后的,比如說是2222,那么他就會根據ssh協議不斷嘗試你的服務器密碼,當然他們也沒那么傻,肯定不會人工去嘗試你的服務器密碼,他們是有程序不斷去嘗試攻破你的服務器。
這個時候,我們試想下,如果我們的ssh密碼只有8位,而且很簡單,估計不用3天就被嘗試攻破了,16位的也不用3個月就能攻破。所以除了密碼復雜度(盡量隨機)以及長度以外,為了防止有些想做壞事的人去嘗試攻破你的服務器密碼,你還可以設置系統登錄失敗次數限制策略。比如說超過5次密碼驗證錯誤,那么則在3分鐘之內即使密碼輸入正確,也登錄失敗。
- # vim /etc/pam.d/sshd
- #%PAM-1.0 必須添加下面這行在文件的第二行;也就是這個注釋的下一行
- auth required pam_tally2.so deny=5 even_deny_root unlock_time=180
檢驗方法:
使用ssh遠程連接方式連接服務器,連續輸入5次錯誤密碼,則會鎖定180秒;180秒以后,則輸入正確密碼就可以進行登錄了

4、iptables策略設置
現在還有一部分的公司是還沒有能購買硬件防火墻的,這個時候軟件級別的iptables就派上用場了。iptables可以作為一個輕量級的防護軟件,如果你的服務器,不管是你自主購買進行托管的,還是租用阿里云的,iptables必須要進行設置,否則遲早有一天你的服務器會淪陷的。
- # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT (#允許已建立的或相關連的通行)
- # iptables -A INPUT -i lo -j ACCEPT (#允許本地回環接口(即運行本機訪問本機))
- # iptables -A INPUT -s 內網網段/掩碼 -j ACCEPT (#允許內網網段之間互相訪問)
- # iptables -A OUTPUT -j ACCEPT (#允許所有本機向外的訪問)
- # iptables -A INPUT -p tcp --dport 22222 -j ACCEPT (#允許訪問22222(ssh端口)端口 )
- # iptables -A INPUT -p tcp --dport 80 -j ACCEPT (#如果有80端口,則允許訪問80端口)
- # iptables -A INPUT -j DROP (#禁止除了上述規則以外的任意訪問)
- # /etc/init.d/iptables save (#一定要記得進行規則保存,否則一切都前功盡棄,重啟iptables之后就全都沒了)
后續
上述4個安全建議設置僅為初等級別的,但是如果你的系統連初等級別的安全還未達到,那你就要趕緊進行設置了。后續會繼續出一些更為安全措施建議。