目前很多人還是使用密碼來登陸服務器,並且服務器都是默認的 22端口,但是這樣會有被暴力破解密碼的危險

以上是被暴力破解的截圖的一部分ip統計
處理方法:
1, 先用命令查詢日志
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
如果發現很多數據, 說明很多軟件在登錄破解你的服務器, 如果沒有錯誤數據, 那倒問題不大
2,找到22端口,新增新的端口號
首先修改配置文件
vi /etc/ssh/sshd_config #vi打開文件后,按 I鍵 進入編輯模式,然后按下面的要求添加端口配置,最后按 ESC鍵 退出編輯模式並輸入 :wq 保存並退出vi編輯器
找到#Port 22一段,這里是標識默認使用22端口,修改為如下(新增2666端口):
Port 22 Port 2666
保存退出
然后我們重啟SSH。
/etc/init.d/ssh restart #如果提示服務不存在,那就用 /etc/init.d/sshd restart# CentOS7 則用 systemctl restart sshd.service
這樣SSH端口將同時工作與22和2666上。
配置防火牆(以下演示為iptable防火牆)
首先我們添加防火牆規則(示例端口為 2666,自己改):
iptables -I INPUT -p tcp --dport 2666 -j ACCEPT
如果不清楚你們是否配置了防火牆開機啟動和開機啟動讀取防火牆配置文件,所以我這里也寫上步驟,建議你們都做一下,避免重啟VPS后,SSH端口防火牆沒有開放導致無法連接服務器。
配置防火牆開機啟動
下面的代碼是配置防火牆開機啟動並且保存防火牆規則,開機啟動后會自動讀取保存的防火牆規則。
CentOS 系統:
注意:如果是 CentOS7 系統,那么就不是iptables 防火牆了。
service iptables savechkconfig --level 2345 iptables on
以后需要保存防火牆規則只需要執行:
service iptables save
Debian/Ubuntu 系統:
iptables-save > /etc/iptables.up.rulesecho -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptableschmod +x /etc/network/if-pre-up.d/iptables
以后需要保存防火牆規則只需要執行:
iptables-save > /etc/iptables.up.rule
測試: 找一台別的服務器ssh下此服務器 ssh -P 2666 root@此服務器ip 能連成功那就ok
取消默認SSH端口 22
vi /etc/ssh/sshd_config
我們再打開SSH配置文件,刪除 Port 22 這一行,然后重啟SSH即可。
/etc/init.d/ssh restart #如果提示服務不存在,那就用 /etc/init.d/sshd restart# CentOS7 則用 systemctl restart sshd.service
現在請使用ssh工具連接2666端口,來測試是否成功。如果連接成功了,則再次編輯sshd_config的設置,將里邊的Port22刪除,即可。
之所以先設置成兩個端口,測試成功后再關閉一個端口,是為了方式在修改conf的過程中,萬一出現掉線、斷網、誤操作等未知情況時候,還能通過另外一個端口連接上去調試以免發生連接不上必須派人去機房,導致問題更加復雜麻煩。
