Fail2ban防止SSH暴力破解


Fail2ban防止SSH暴力破解

查看登陆失败记录

sudo grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

安装Fail2ban

Fail2ban软件包包含在默认的Ubuntu 20.04存储库中。 要安装它,请以具有sudo权限的用户运行以下apt命令

sudo apt update
sudo apt install fail2ban

检查服务状态

sudo systemctl status fail2ban

查看fail2ban运行状态

sudo fail2ban-client status sshd

查看被禁IP

# fail2ban 使用iptables实现
sudo iptables --list -n

Fail2ban配置

Fail2ban在安装时会创建两个默认的配置文件/etc/fail2ban/jail.d/defaults-debian.conf/etc/fail2ban/jail.conf。我们不建议直接修改这些文件,因为更新Fail2ban时它们可能会被覆盖。

Fail2ban将按以下顺序读取配置文件。每个.local文件都会覆盖.conf文件中的设置:

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

将IP地址列入白名单

白名单,顾名思义就是不会从这些IP检测是否是恶意的访问。如需你要创建白名单,可以将IP地址或者IP范围添加到ignoreip指令中。

在这里,您应该添加您的本地计算机IP地址以及您要列入白名单的所有计算机。取消以ignoreip开头的行注释,并添加您的IP地址,以空格分隔:

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

设置禁止时间与重试次数

bantimefindtimemaxretry选项的值定义了禁止时间和禁止条件。bantime是禁止持续的时间。如果未指定后缀,则默认为秒。默认情况下,bantime值设置为10分钟。通常,大多数用户都希望设置更长的禁止时间。你也可以根据您的喜好更改值bantime的值,要永久禁止IP,请使用负数:

bantime  = 1d

findtime是设置失败次数之间的持续时间。 例如,如果将Fail2ban设置为在尝试五次失败后禁止IP(请参见下文maxretry),则这些失败必须在findtime时间内发生,即10分钟完成5次失败的尝试。

findtime  = 10m

/etc/fail2ban/jail.local

maxretry是允许IP失败尝试次数。 默认值设置为5,对于大多数用户来说应该够用。

maxretry = 5

删除已被限制IP

sudo fail2ban-client set sshd unbanip 23.34.45.56

禁止已被限制的IP

sudo fail2ban-client set sshd banip 23.34.45.56

文章作者: Kevin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kevin !
评论
  目录