如何在CentOS 6上使用fail2ban保护SSH

fail2ban提供了一种自动保护虚拟服务器免受恶意行为的方法。本教程将向您介绍如何下载安装Fail2Ban所需的EPEL存储库,复制配置文件,配置fail2ban默认值,

关于Fail2Ban

服务器不是孤立存在的,只有最基本的SSH配置的服务器可能容易受到强力攻击。 fail2ban提供了一种自动保护服务器免受恶意标志的方法。 该程序通过扫描日志文件并对违反的操作(例如重复的失败登录尝试)做出反应来工作。

第一步 - 安装Fail2Ban

因为fail2ban不可用于CentOS,我们应该从下载EPEL存储库开始:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

后续安装fail2ban:

yum install fail2ban

第二步 - 复制配置文件

缺省fail2ban配置文件位于/etc/fail2ban/jail.conf。 不过,不应该在该文件中完成配置工作,而是应该对其进行本地复制。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

复制文件后,您可以在新的jail.local文件中进行所有更改。 许多可能需要保护的可能服务已经在文件中。 每个都位于其自己的部分,配置和关闭。

第三步 - 在Jail.Local中配置默认​​值

打开新的fail2ban配置文件:

vi /etc/fail2ban/jail.local

第一部分的默认值包括fail2ban将遵循的基本规则。 如果要为虚拟专用服务器设置更详细的保护,可以自定义每个部分中的详细信息。

您可以看到下面的默认部分。

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1

# "bantime" is the number of seconds that a host is banned.
bantime  = 3600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

写你的个人IP地址输入到ignoreip线。 您可以使用空格分隔每个地址。 IgnoreIP允许您白名单列出某些IP地址,并确保它们没有被锁定在您的VPS。 包括您的地址将保证您不会意外地禁止自己从您自己的虚拟私人服务器。

下一个步骤是在一个bantime,那主机会从服务器被阻止,如果他们发现违反任何规则的秒数决定。 这在机器人的情况下特别有用,一旦被禁止,将简单地移动到下一个目标。 默认值设置为10分钟 - 如果愿意,您可以将其提高到一个小时(或更高)。

Maxretry是一个主机可能有他们得到禁赛的禁令时间长度不正确之前的登录尝试的数量。

Findtime指的是主机有登录的默认设置为10分钟的时间量。 这意味着如果主机尝试并且失败,在指定的10分钟内登录超过maxretry次数,它们将被禁止。

第四步(可选) - 在Jail.Local中配置ssh-iptables节

SSH详细信息部分只是在配置中更进一步,它已经设置并打开。 虽然您不应该要求在此部分进行任何更改,您可以找到以下每行的详细信息。

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath  = /var/log/secure
maxretry = 5

简单地使指这样的事实,SSH保护上。 你可以用“false”这个词关闭它。

过滤器时,默认被设置为sshd的,是指含有fail2banuses找到匹配规则的配置文件。 名称是文件扩展名的缩写版本。 例如,sshd引用/etc/fail2ban/filter.d/sshd.conf。

动作描述的fail2ban将采取禁止匹配的IP地址的步骤。 与过滤器条目一样,每个操作都指向action.d目录中的一个文件。 默认禁止操作“iptables”可以在/etc/fail2ban/action.d/iptables.conf找到。

在“iptables”详细信息中,您可以进一步自定义fail2ban。 例如,如果您使用非标准端口,则可以更改括号内的端口号以匹配,使线条看起来更类似于:

 eg. iptables[name=SSH, port=30000, protocol=tcp]

您也可以在此行中将协议从TCP更改为UDP,具体取决于要让fail2ban监视哪个协议。

如果您在虚拟专用服务器上设置了邮件服务器,Fail2Ban可以在禁止IP地址时向您发送电子邮件。 在默认情况下,sendmail-whois引用位于/etc/fail2ban/action.d/sendmail-whois.conf的操作。

日志路径指的fail2ban将跟踪日志的位置。

在SSH部分中的最大重试线具有相同的定义默认选项。 但是,如果您启用了多个服务并希望为每个服务指定特定的值,则可以在此处为SSH设置新的最大重试量。

第五步 - 重新启动Fail2Ban

对fail2ban配置进行任何更改后,请务必重新启动Fail2Ban:

sudo service fail2ban restart

您可以在IP表中查看fail2ban投入生效的规则:

iptables -L
作者Etel Sverdlov