关于WordPress安全问题一直以来多多少少都困扰着大家,针对性的WordPress安全插件也是比较多的,每种安全插件对应的功能看上去都是大同小异。
在我看来这些安全插件都有它们自己的侧重点,所以我计划把市面上用的比较多的安全插件都给大家过一遍,做到从原理到使用和本质上为大家进行全面的剖析。
今天要给大家解释的WordPress安全插件是Solid(SolidWP ) Security(或者是 iThemes Security)这个插件给我感觉是核心安全功能不多,侧重点很明确,就是做几个重要的安全卡位。
按照作者的官方介绍和我自己实际使用的过程体验来说,Solid Security安全插件主要是针对登录安全方面的措施进行各种安全防护,这是主要核心安全功能,其他功能都是附带,做的也是非常不错的。
官方插件下载地址:
官方文档地址:
初始化设置
刚开始第一次安装完成Solid Security插件之后,第一次使用的时候,官方会有一个设置向导,这个设计很不错,这么操作大大减少了设置安全插件的难度。

根据设置向导按照要求设置即可,下面看看一些基础的步骤。
- 我选择的是Blog,然后进行初始化操作,这个插件是有收费和免费的功能,初始化操作期间会让你选择是否使用收费功能。

- 上述是设置是否开启安全检查功能,看这个标志是Pro,像是收费功能,看解释意思就是会定义收集你网站的相关信息到官方服务中进行安全检查。
- 我是演示这个功能就不开启了,我也推荐大家不要使用这个功能,虽然它说是不会收集用户信息,但是这种东西说不清楚的。
- 点击Next向后走!

- 这一步的功能设计的非常好,我从业安全行业多年经验来说,这个设计确实是从安全的角度进行重点设计的第一步操作,简而言之就是在应用层面首先就是减少攻击面。
- 我这里大家的WordPress是直接暴露公网,前面没有像CloudFlare这类代理,所以我选择Direct Connection。
- 上面检测到的IP地址,是我当前访问此站点的来源IP地址。

- 这个没啥好说的,场景就是两个,一种是针对自己网站安装Solid Security插件,另一种场景针对客户网站安装Solid Security插件,根据实际情况选择即可,我选择自己的网站。

- 此处是让你设置一个密码复杂度的安全基线要求,如果你刚开始不清楚这些,可以先不开启,如果开启了,那么此插件会检查当前网站的密码复杂度是否符合要求,如果不符合要求会提示你更改为符合要求的密码。

- 上述按照要求都初始化完成就会进入第二步了,开始设置全局设置,此处设置很重要,分别是有两个功能点,一个是设置你自己的信任的IP地址列表和确认当前网站前面是否有类似CloudFLare代理的设置。
- 其中Authorized IPs 意思就是让你设置几个固定不变的IP地址,这里填写的IP地址目的是告诉Solid Security插件,这些IP地址是受信任的,不要将其锁定或拦截(后面详细解释,因为Solid Security插件有基于IP地址的行为进行拦截的行为,所以如果此处设置了即使后面触发了基于IP地址行为的规则Solid Security插件仍然不会拦截这些IP地址)。
- 下面的IP Detection是用来帮你检查当前网站前面是否配置了类似CloudFlare代理,我这个网站前面是没有配置代理,所以这个插件的Check IP检查出来的IP地址和上面Authorize IP Address是一样的。
- 到这里此处相关的内容就介绍完了,但我还是想更详细一点,把IP Detection下面的其他两个选项给大家看看。

- 如果设置Manual,那么Solid Security插件就会认为你的网站前面有代理,此时需要识别来源IP地址的方式就要从上述标记的HTTP Header中提取。

- Unconfigured就没啥好说的,不配置下一步就可以。

- 开始进入初始化第三步了,设置Features了。
- 存在的功能分别是:登录安全,防火墙,站点检查和收费的Security Check Pro。




- 上述功能选项默认就可以,继续下一步,或者你担心有问题,可以都关闭掉,然后初始化完毕之后,再根据实际情况开启和配置。

- 此时进入到第四步了,开始配置用户组,这里的用户组指的是WordPress自带的用户组,一般直接选择默认的即可。

- WordPress默认的用户组有Administrators,Editors,Authors,Contributors, Subscribers, Everybody Else
- 此处的功能选项就是为了设置这些用户组是否需要Solid Security插件的功能。
- 这里设置的话就保持默认Administrators具备对应的管理权限即可,其他不变。

- 设置通知的电子邮件。
- 至此所有初始化设置都完成了,设置完成之后就可以进入Dashboard,也就是下面说的仪表盘。
仪表盘展示
Dashboard其实没啥好说的,就是展示各类信息,如果命中了安全规则,那么就会在这个仪表盘中展示。


站点扫描
这个站点扫描的作用我个人绝对很鸡肋,看看扫描的功能名称就知道有干什么用的,其中还有两个收费功能,我绝对不需要付费购买。

防火墙
此处的功能是这个Solid Security插件的核心功能之一,我将重点给大家介绍一下怎么使用,这些功能用好了,能很大程度上提高网站的安全系数。

先看看大致功能选项记录如下:
从上图的功能看,有基础的免费功能和此插件重点宣传的收费功能,我还是推荐大家不需要购买此类插件的收费功能,因为在我看来,没太多实际作用。
日志功能展示(Logs)
这里的日志功能,我想大家也看到了,就是图中的Logs所示的功能选项,分别包括,存在危险已被拦截的信息展示,防火墙拦截日志记录(包括触发了哪条规则,触发的时间,对应响应的动作等等),以及右边的拦截排行榜(Top Blocked IPs)
日志功能除了展示页给了快捷导航功能,可以一键导航到配置防火墙的位置进行配置防火墙功能开启与否的选项。

规则功能选项(Rules)
此处是重点,开始之前我先把要提到的功能选项都列出来,然后再给大家依次解释。
- Create a Rule
- RULE NAME
- If incoming requests match…
- equals
- contains
- does not contain
- is in
- is not in
- URI
- Request Method
- Content Type
- Header
- Cookie
- IP Address
- FIELD
- OPERATOR
- VALUE
- Then take action…
- Block
- Redirect
- Log only
- Allow

- 配置一个测试的规则,名称是test1,基于URI字段进行判断,如果URI字段中包含test,那么防火墙就执行Block动作。


- 缺点规则已经激活,现在进行测试验证规则是否生效。

- 规则生效了,显示被防火墙拦截了。
- 上述只是一个简单的演示,规则可以根据自己实际需要进行自定义配置,规则可以基于IP地址,URI,请求方法,内容类型,HTTP头和Cookie进行配置。
- 这里所使用到的防火墙就是经常提到Web应用防火墙,简称WAF。
IP地址管理(IP Management)
- 被禁止的IP地址(Banned IPs)
- 这个很好理解,就是黑名单IP地址,这里填写了,那么这个IP将无法正常访问网站。
- 主动锁定的用户或IP地址(Active Lockouts)
- 此处的功能是大家查看哪些用户或者IP地址被拦截或者放行了。
- 授权的IP地址(Authorized IPs)
- 设置白名单IP地址,此处添加的IP地址,即使违法了Solid Security插件的规则也不会被拦截。

配置选项(Configure)
- 全局设置(Global Settings)
- 锁定(Lockouts)
- 锁定消息(Lockout Messages)
- 授权IP地址(Authorized IPs)


锁定功能,此插件给定的默认值是一旦触发规则,就锁定用户或者IP地址为15分钟,然后对于这个锁定的IP地址或者用户保留记录为7天。
然后开启永久封禁用户或IP地址的功能选项,最后设置永久封禁的阈值是3次。
所以,此处锁定逻辑是:如果有用户或者IP地址在7天之内触发规则导致锁定3次,那么这个用户或者IP地址将被永久封禁访问当前网站。
剩下的锁定消息就是当用户和IP地址触发规则被拦截之后看到的内容信息。
- 封禁用户(Ban Users)

看字面意思就知道是封禁用户的配置,Solid Security插件默认提供了一份封禁的列表,具体列表内容可参考:
除了上述默认的列表,还提供了自定义配置User-Agent的选项,可以通过配置恶意的User-Agent来封禁指定使用User-Agent的用户或IP地址。
同时还指出,如果封禁的用户或者IP地址,超过100个,将使用php封禁IP地址,通过服务器级别的操作来完成封禁的动作。
- 防火墙规则引擎(Firewall Rules Engine)

作用是某个恶意IP地址在30分钟之内违规10次,锁定时间将被延长。
- 本地暴力破解(Local Brute Force)

主要是针对WordPress后台用户暴力破解的防护,如果恶意攻击者使用admin账户暴力破解,将立即锁定,此时不需要再看上图中展示的Login Attempts阈值。
如果不是admin用户暴力破解,那么就使用Login Attempts的阈值进行判定。
- 网络暴力破解(Network Brute Force)

上述是已经配置好的,如果刚开始还没有配置,会显示让你输入一个邮箱,输入了之后点击保存设置就会像上图所示一样。
此处的网络暴力破解功能的作用是Solid Security插件免费给你的网站提供威胁情报信息,然后基于威胁情报信息,进行防护网络暴力破解的恶意IP地址。
自动化(Automated)
这是一个收费的功能选项,提供自动配置防火墙自动拦截恶意攻击行为的操作。

这其中提到两个防火墙的个性化高级的商业功能,现在市面上的防火墙都会拿着这两个功能作为卖点,所以我就给大家大致介绍下。
- 实时的更新(Real-Time Updates Inactive)
- 这个没什么好说的,意思就是你花钱,那么你看到对应的日志动态,相关触发规则的记录就会延迟给你看。
- 虚拟补丁(Virtual Patching Inactive)
- 虚拟补丁是WAF的功能亮点,其原理就是互联网上有0day漏洞,然后官方还没有及时推送补丁包修复对应的漏洞,那么此时就可以通过配置WAF规则来防护受影响的应用,这期间的所配置的规则就是它们所说的虚拟补丁。
需要知道patchstack到底是干什么的,根据官方介绍是全球最大的漏洞披露平台,提供 7,000 多个虚拟补丁。
漏洞扫描
这个插件的漏洞扫描还可以,不过我还是觉得比较鸡肋,此插件提供互联网存在漏洞插件的相关信息,除了这个功能之外还提供漏洞扫描的功能。


账户安全
目的是快速设置账户安全相关的配置,功能上给了4个基础且必要的安全配置,分别是选择指定的用户组,然后配置是否强制重置密码,删除账户和强制踢出当前登录的用户。

设置功能
此处的设置功能选项包括全局设置,功能配置,用户组,通知和高级配置选项。
全局设置(Global Settings)


全局设置的功能都在上面,我想大家都看到了,看字面意思也都明白,而且此处展示的功能,跟上面提到的防火墙相关设置选项有部分重叠,所以此处不打算详细介绍了。
功能选项(Features)
功能选项包含,登录安全,防火墙配置,站点检查以及Utilities功能,这里看到的基本都是全局设置此插件的功能是否开启或关闭的作用,当然还有一些配置参数修改的地方。
- 登录安全(Login Security)

- 防火墙(Firewall) 这部分内容跟上面防火墙章节内容几乎重叠,故此处略过了。

- 站点检查(Site Check) 其中一个功能是用来对当前网站的文件进行监控,另一个功能是设置计划任务周期性对当前网站进行扫描。

- 其他公共通用配置(Utilities)

用户组(User Groups)
这个就简单了,Solid Security插件是列举了当前网站的所有默认用户组信息,供大家配置一些基础的安全防护设置。

通知功能(Notifications)
主要是关于安全相关信息,恶意用户或IP地址被锁定和数据库备份相关信息的通知功能。

高级配置选项(Advanced)
这里的高级功能,我看了下,还是很不错的,把需要考虑到WordPress安全防护设置都考虑到了,主要功能分别是系统调整,WordPress调整和隐藏后台。
- 系统调整

- WordPress调整

- 隐藏后台

工具选项
一些针对网站管理的基础安全配置,分别是识别服务端IP地址,更改数据库表前缀,重置加密key,设置轮询加密key,创建MU插件,检查文件权限,服务器配置规则信息,wp-config.php规则配置,更改WordPress的Salts 。
这里的选项配置比较高级,如果你不是非常清楚,最好不用更改,就保持默认即可。

日志查看
供大家查看触发安全规则的相关日志事件,不过这里得清楚,免费版本是无法实时查看这些记录信息的,只有收费的版本才可以实时看到。
