怎样使用 SSHGUARD 阻止 SSH 暴力攻击
发布时间:2022-04-29 10:22:08 所属栏目:安全 来源:互联网
导读:SSHGuard是一个入侵防御实用程序,它可以解析日志并使用系统防火墙自动阻止行为不端的 IP 地址(或其子网)。最初旨在为 OpenSSH 服务提供额外的保护层,SSHGuard 还保护范围广泛的服务,例如 Vsftpd 和 Postfix。它可以识别多种日志格式,包括 Syslog、Syslog
SSHGuard是一个入侵防御实用程序,它可以解析日志并使用系统防火墙自动阻止行为不端的 IP 地址(或其子网)。最初旨在为 OpenSSH 服务提供额外的保护层,SSHGuard 还保护范围广泛的服务,例如 Vsftpd 和 Postfix。它可以识别多种日志格式,包括 Syslog、Syslog-ng 和原始日志文件。SSHGuard 与 Fail2ban 非常相似,只是它是用 C 编写的(Fail2ban 是用 Python 编写的),更轻巧,提供的功能更少。 在本指南中,我们将演示如何安装和配置 SSHGuard 以阻止 Linux 服务器中的 SSH 暴力攻击。 第一步:在 Linux 上安装 SSHGuard 在 Debian/Ubuntu 上安装 SSHGuard 首先,更新软件包列表,然后使用 apt 软件包管理器从默认存储库安装 SSHGuard。 在 Yum/RHEL 系统上安装 SSHGuard 对于基于 RHEL 的发行版,例如 CentOS,首先安装 EPEL 存储库。 复制 $ sudo yum install epel-release 1. 或者 复制 $ sudo dnf install epel-release 1. 有了 EPEL,继续使用 dnf 包管理器安装 SSHGuard。 复制 $ sudo dnf install sshguard 1. 安装后启动并将 SSHGuard 设置为随系统自启。 复制 $ sudo systemctl start sshguard $ sudo systemctl enable sshguard 1. 2. 检查 SSHGuard 运行状态。 复制 $ sudo systemctl status sshguard 1. 第 二 步:Linux 上的 SSHGuard 配置 SSHGuard 会主动监控 /var/log/auth.log、/var/log/secure systemd 日志和 syslog-ng 日志文件以查找失败的登录尝试。 对于每次不成功的登录尝试,远程主机将被禁止一段时间,默认设置为 120 秒。此后,每次连续失败的登录尝试,禁令时间都会增加 1.5 倍。 禁止违规主机的时间以及其他参数在 sshguard.conf 文件中指定。您可以使用 vim 编辑器访问配置文件。 复制 $ sudo vim /etc/sshguard/sshguard.conf 1. 在基于 RHEL 的发行版上,配置文件位于以下路径中。 复制 $ sudo vim /etc/sshguard.conf 1. 这是从 Ubuntu / Debian 查看时的配置文件示例。 主要选项: BACKEND:指令指向后端可执行文件的完整路径。在这个例子中,我们看到 IPtables 被设置为默认的防火墙后端。 THRESHOLD:指令在攻击者的攻击分数超过指定值时阻止攻击者。 BLOCK_TIME:选项是在每次连续失败的登录尝试后阻止攻击者的秒数。默认情况下,第一次尝试后设置为 120。这会随着每次连续失败的登录尝试而增加。 DETECTION_TIME:选项是指攻击者在其得分被重置之前被系统注册或记住的时间(以秒为单位)。 WHITELIST_file:选项指向包含不应列入黑名单的主机的白名单文件的完整路径。 第三 步:配置 SSHGuard 以阻止 SSH 暴力攻击 为了抵御暴力攻击,您需要在以下防火墙上进行配置以使用 sshguard。 使用 UFW 阻止 SSH 攻击 如果您在 Ubuntu / Debian 系统上安装并启用了 UFW,请修改 /etc/ufw/before.rules 文件。 复制 $ sudo vim etc/ufw/before.rules $ sudo vim etc/ufw/before.rules 1. 2. 在“allow all on loopback”部分之后添加以下行。 复制 # allow all on loopback -A ufw-before-input -i lo -j ACCEPT -A ufw-before-output -o lo -j ACCEPT # hand off control for sshd to sshguard :sshguard - [0:0] -A ufw-before-input -p tcp --dport 22 -j sshguard 1. 2. 3. 4. 5. 6. 保存文件并重新启动 UFW。 复制 $ sudo systemctl restart ufw 1. 现在尝试使用错误的凭据从不同的系统登录服务器,并注意在第一次登录尝试失败后您将被锁定 120 秒。 您可以通过检查 auth.log 日志文件来验证这一点。 复制 $ sudo tail -f /var/log/auth.log 1. 在下一次失败的日志尝试之后,阻塞时间增加到 240 秒,然后是 480 秒,然后是 960 秒,依此类推。 使用 Firewalld 阻止 SSH 攻击 如果您正在运行 firewalld,请确保已设置并启用它。然后执行以下命令以在您的首选区域上启用 sshguard。 如果您仍在使用 Iptables,首先,在 Iptables 中为 sshguard 创建一个新的链式规则,以阻止不需要的访客。 之后,请务必重新启动 sshguard 守护程序和防火墙后端以应用更改。 小结 在本指南中,我们演示了如何在 Linux 系统上使用 SSHGuard 阻止 SSH Bruteforce 攻击。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |