在 CentOS 中自动拒绝黑客攻击?

在 CentOS 中自动拒绝黑客攻击?

我的服务器正在遭受攻击。我正在记录此类尝试:

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

  1. 您可以使用 限制每分钟的登录尝试次数iptables。此类规则将在三次登录尝试后阻止 IP 一分钟(取自recent极客日记 – 使用 Netfilter 和模块缓解 SSH 暴力攻击):

    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --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 recent --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 recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
    
  2. 如果你想要更多可配置的 sikytion,你可以使用失败2ban或者拒绝主机用于分析 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 存储库中找到。

相关内容