RSS

  • YouTube
  • LinkedIn
  • 谷歌

保护您的 WordPress 免受攻击

您访问的此站点是 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: 
   丰富的规则: 

就这些. 如果您对内容有评论, 感到轻松. 我希望这能帮助你,就像你帮助我一样。.

拥抱.

留言

您的电子邮件地址将不会发布. 标记必填的字段 *

此网站使用 Akismet 减少垃圾邮件. 了解如何处理注释数据.