对VPS和wordpress博客进行简单的安全配置

以前用的VPS快到期了,换了个低端Ubuntu VPS,一个月大约35元人民币。

之前用的是windows VPS,1G RAM、2CPU、7个IP,配置更高,流量也更多,方便跑自己写的小程序。

下面简述我对VPS做过的一些安全配置:

1. 修改SSH端口号

ssh连接之后,输入:

vi /etc/ssh/sshd_config

将Port 22修改为监听另一个端口号即可,比如55555。

修改后重启一下ssh服务:

service ssh restart

以后就可以使用对应的55555端口连接ssh了。

2. 禁止root远程登录ssh

首先建一个普通用户, somebody是某个方便你记忆的用户名:

useradd somebody

设置密码:

passwd somebody

添加好用户,再禁用root,在终端输入:

vi /etc/ssh/sshd_config

找到 “PermitRootLogin yes”,将yes修改为no。

同样的,重启ssh服务,之后root就不能远程登录了。

平日使用上面建立的somebody远程登录ssh,需要权限的时候,键入su切换到root身份即可。

3. 对访问wp-login.php进行身份认证

如果不需要让用户自主注册,可以不允许访客直接访问wp-login.php这个登陆页。

改名是个方法,也可以配置身份认证。下面的方法适用apache:

首先创建一个文件,保存认证信息,输入命令:

htpasswd -c /var/somewhere/auth-test testuser

认证信息的保存路径是/var/somewhere/auth-test,用户名为testuser。

然后在web站点的根目录下,创建或追加.htaccess文件,内容如下:

<filesMatch “wp\-login\.php”>
AuthUserFile /var/somewhere/auth-test
AuthType Basic
AuthName “Blog Admin Auth”
require valid-user
</filesMatch>

这样, 在每次访问wp-login.php时,就需要先进行身份认证了。访问这里试试

3. 对访问wp-admin目录要求身份认证,并对某些文件例外

操作与上面类似,认证信息文件可以跟上面使用同一个,直接到wp-admin目录下创建.htaccess文件。

但比较麻烦的是,我们可能需要对某些文件例外,不要求认证。

比如/wp-admin/admin-ajax.php这个文件,就是WP Super Cache缓存插件会匿名使用到的。

所以我们仍然需要使用正则表达式来建立规则:

<filesMatch “^(?!.*?ajax).*$”>
AuthUserFile /var/somewhere/auth-test
AuthType Basic
AuthName “Blog Admin Auth”
require valid-user
</filesMatch>

上面的规则是说,包含ajax字符串的文件可以直接访问,而其他文件,则需要先进行身份认证。

查看效果:  wp-admin/admin-ajax.php    wp-admin/index.php

发表评论

您的电子邮箱地址不会被公开。