您访问的此站点是 WordPress. 我喜欢它的轻松.
WordPress 非常擅长在 VPS 或云中快速生成博客, 但它的轻松也是它最大的缺陷.
拥有一个网站是多么简单, 互联网上绝大多数的页面都是使用它的,因此这吸引了那些寻找其开源编程缺陷的人.
发现故障后, 一个淘气的黑客将能够使用这个缺陷在世界各地的数百万个网站, 发布文件, 发送电子邮件,甚至在域内创建虚假网站. 这些都是我见过的东西,我相信即使你见过.
关于WordPress,我最困扰我的一件事就是它的身份验证和执行机制 XML-RPC. 它们是暴力攻击的源源.
看看最后一点 10 我的此日志文件中的行 (从该服务器实时获取,而撰写本文时不使用任何保护机制).
六月 8 21:09:39 主机字按(xxxxxxx.com.br)[1010]: gestao_click的身份验证失败 196.41.127.26 六月 8 21:09:40 主机字按(xxxxxxx.com.br)[1791]: 来宾发布者的身份验证失败 196.41.127.26 六月 8 21:09:41 主机字按(xxxxxxx.com.br)[9892]: ricardo_pereira的身份验证失败 196.41.127.26 六月 8 21:10:15 主机字按(zzzzzzzzz.com.br)[6490]: 未知用户管理员的 XML-RPC 身份验证尝试从 86.167.111.66 六月 8 21:11:38 主机字按(www.zzzzzzzzz.com.br)[1011]: 来自 alexacolemanmkdef 的身份验证失败 5.135.164.126 六月 8 21:11:38 主机字按(www.zzzzzzzzz.com.br)[6490]: alexia_dias的身份验证失败 5.135.164.126 六月 8 21:11:39 主机字按(www.zzzzzzzzz.com.br)[5620]: beatriz_seomarketing的身份验证失败 5.135.164.126 六月 8 21:11:40 主机字按(www.zzzzzzzzz.com.br)[6489]: bianca_oblige的身份验证失败 5.135.164.126 六月 8 21:11:41 主机字按(www.zzzzzzzzz.com.br)[1010]: celioedu 的身份验证失败 5.135.164.126 六月 8 21:11:42 主机字按(www.zzzzzzzzz.com.br)[9893]: celeste_pinto的身份验证失败 5.135.164.126
只有通过这些行,您才能看到,在现有 WordPress 安装中尝试进行身份验证的活动非常激烈, 几乎每秒一个.
以减轻这些不断的入侵企图, 几年前,我使用将这些请求的 IP 纳入防火墙筛选器的公式, 完全阻止来自这些服务器的访问. 这大大减少了这些尝试. 最初,我手动这样做, 处理日志并添加最坚持的 IP, 但后来我发现一个脚本,自动做: O 失败2班.
失败2班
的 失败2班 是监视日志和禁止 IP 的守护进程脚本. 通过分析具有身份验证(如 WordPress)的任何软件的日志,并且从当前故障中包括防火墙筛选器中的源 IP.
它使用非常简单,可用于多个存储库,适用于不同的 Linux 发行版.
下面我将向您展示如何使用安装和配置 Centos 8 连同 沃尔瓦尔德
Instalando os recursos necessários
下面的行安装所有必要的项目.
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm $ sudo rpm -ql epel-release $ sudo dnf install firewalld fail2ban -y
从此时起,应该已经安装了故障2班,并且防火墙.
注意: 如果使用 SSH 连接中的 shell, 有必要将连接端口添加到 公共区域 这样您就不会激活防火墙并阻止远程访问.
为此,请使用 命令:
$ sudo systemctl 开始 沃尔瓦尔德 && sudo 防火墙-cmd --区=公共 --加-港口=22/断续器 --永久 && sudo 防火墙-cmd --区=公共 --加-服务=https --永久 && sudo 防火墙-cmd --区=公共 --加-服务=网址 --永久 && sudo 防火墙-cmd --重新加载
如果一切正确,您将与防火墙激活在这个时候和端口 80, 443 和 22 释放到公共区域.
现在,让我们激活服务,以便它们始终与系统一起启动.
$ sudo systemctl enable fail2ban $ sudo systemctl enable firewalld
WPFail2Ban
当我们谈论WordPress时,我不会展示如何配置故障2班来读取Web服务器日志并禁止IP从这些日志. 使用适当的插件可以更简单地执行此操作. 的 WPFail2Ban. 只需安装即可.
安装 WPFail2Ban,无需更改任何设置, 它将将所有登录尝试失败添加到默认系统系统系统日志文件,在 CentOS 的情况下, /var/log/messages
.
在我的安装中, 我没有使用 WPFail2Ban 手册中指示的设置, 即使因为没有 过滤 器 表明.
要做的第一件事是为 Fail2Ban 创建一个筛选器. 让我们在 /etc/fail2ban/filter.d/wordpress.conf
.
以下行假定没有其他配置文件可用于 WordPress. 我是个维姆的奉献者, 但使用你喜欢的编辑器.
$ sudo vim /etc/fail2ban/filter.d/wordpress.conf
添加以下行:
Fail2Ban 筛选器,用于检测错误命令身份验证失败
#
[包括]
before = common.conf
[定义]
_daemon = wordpress failregex = ^%(__prefix_line)s 的身份验证失败 .* 从 $
^%(__prefix_line)s 被阻止的身份验证尝试 .* 从 $
^%(__prefix_line)sXML-RPC 身份验证尝试未知。* 来自 $
^%(__prefix_line)s 阻止的用户枚举尝试来自 $
^%(__prefix_line)spingback 请求自 $
ignoreregex =
# 开发说明:
#
# 作者: Marcos 瑞吉酒店
我不会去细说线, 只是他们准备捕获 WPFail2Ban 引擎将发送到日志文件的大多数身份验证失败.
下一步是定义当 fail2ban 找到与配置文件中定义的任何默认值匹配的条目时将执行的操作.
这些操作都在目录中的配置文件中定义 /等/fail2ban/行动.D/ 对于本文的建议,我们感兴趣的文件 防火墙. 根据我的经验, 没有在区域中包含 IP 的配置 –;拖放区 我想要的方式,所以我创建了一个操作文件. 文件内容下方 firewallcmd-drop.conf.
# /etc/fail2ban/action.d/firewallcmd-drop.conf
[包括]
before = firewallcmd-common.conf
[定义]
actionstart =
actionstop =
actioncheck =
actionban = firewall-cmd --zone=drop --add-source=<ip>
actionunban = firewall-cmd --zone=drop --remove-source=<ip>
下一步是创建将激活筛选器和. 为此,, 创建或编辑文件 /等/fail2ban/监狱.当地 并添加以下行:
# 筛选字压登录尝试 [WordPress] 启用 = 真日志路径 = /var/log/messages 操作 = firewallcmd-drop
从这一点开始,一切都准备启动服务. 一旦 Fail2Ban 启动,并且日志中已有与要搜索的模式匹配的条目, 您将看到 IP 被添加到防火墙中的阻止列表中.
$ sudo systemctl start fail2ban
查看防火墙类型中的已阻止 IP 防火墙-cmd --列表-都 --区-落, 你会看到一个出口,看起来像:
落 (积极)
目标: DROP icmp-block-inversion: 无接口:
来源: 223.225.107.45 111.231.227.35 139.99.156.158 149.202.70.189 162.241.200.235 167.71.111.16 178.254.11.154 18.228.33.11 223.225.10.190 45.119.212.93 62.210.178.229 68.183.134.134 69.163.163.220 80.211.174.81 103.57.84.227 159.65.128.55 91.134.248.230 165.22.107.13 208.97.188.13 188.240.208.26
服务业:
港口:
协议:
化装: 无转发端口:
源端口:
icmp-block:
丰富的规则:
就这些. 如果您对内容有评论, 感到轻松. 我希望这能帮助你,就像你帮助我一样。.
拥抱.