我的伺服器受到攻擊。我正在記錄這種嘗試:
Sep 22 06:39:11 s1574**** sshd[16453]: Failed password for invalid user amber from 64.215.17.4 port 35182 ssh2
Sep 22 04:39:11 s1574**** sshd[16454]: Received disconnect from 64.215.17.4: 11: Bye Bye
Sep 22 06:39:11 s1574**** sshd[16457]: Invalid user amber from 64.215.17.4
Sep 22 04:39:11 s1574**** sshd[16458]: input_userauth_request: invalid user amber
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): check pass; user unknown
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=dns2.rsd.com
Sep 22 06:39:11 s1574**** sshd[16457]: pam_succeed_if(sshd:auth): error retrieving information about user amber
Sep 22 06:39:14 s1574**** sshd[16457]: Failed password for invalid user amber from 64.215.17.4 port 35842 ssh2
Sep 22 04:39:14 s1574**** sshd[16458]: Received disconnect from 64.215.17.4: 11: Bye Bye
我該怎麼做才能阻止這種訪問嘗試,例如當超過 3 個拒絕時阻止 ip
答案1
您可以使用 限制每分鐘的登入嘗試次數
iptables
。此類規則將在三次登入嘗試後封鎖 IP 一分鐘(摘自recent
極客日記 – 使用 Netfilter 和模組減輕 SSH 暴力攻擊):iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m 最近 --set --name SSH iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m 最近 --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m 最近 --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
如果您想要更多可設定的 sikytion,您可以使用失敗2禁止或者拒絕主機用於分析 SSHd 日誌並封鎖可疑 IP 位址。
答案2
最好的實踐方法是使用 iptables 阻止所有不需要的端口,並將 ssh 設定為使用私鑰登入。我知道Putty和MobaXterm(都是免費的ssh客戶端)支援私鑰登入。然後在 /etc/ssh/sshd_config 中刪除
PermitRootLogin yes
並添加:
PermitRootLogin without-password
這將使即使您知道 root 密碼也不允許您使用它登入。
你可以使用 iptables 規則來限制它們,這樣它們就不會導致你的伺服器陷入困境
答案3
安裝軟體 Denyhosts。它會自動將此類駭客IP列出到hosts.deny中。該軟體包可在 epel 儲存庫中找到。