菜鸟使用Linode VPS安装LNMP,配合CloudFlare建立具有云解析和SSL证书的WordPress站点
前言
虽然最开始使用LNMP的时候就已经写过一篇菜鸟使用Linode VPS 搭建LNMP + WordPress + SSL + CloudFlare,但是当时使用的Centos系统已经不再有效更新,并且前几天LNMP被金华市矜贵网络科技有限公司收购后就惊现安全事件,闹的沸沸扬扬:
乘着还有其他LNMP用户拥有LNMP开发者军哥的最后纯净安装包,赶紧写个新的安装攻略,以便日后自己翻看也方便其他有缘的朋友查看。
第一部分:Linode VPS的选购
这个没有什么好多说的,Linode的VPS一直性能在线,被Akamai收购以后,VPS略微上涨了价格,不过总体还算可以接受。现在只要能有效注册新账号,还能获赠有效期为2个月的100美元用于服务器的购买。购买前建议先查看一下WordPress中文官网上发布的WordPress的系统要求。目前Linode最低配置的Nanode 1G VPS由于只有1G的内存,因此已经很难匹配上WordPress的推荐配置了。
因此建议采用 Linode 2G VPS, 虽然单核的CPU极容易在安装LNMP的时候长期100%满负荷运行,不过安装好了以后,足够对付大多数每天访问也就几百或者小几千的wordpress站点。关键价格便宜,才12美元/月。(当然涨价前的10美元/月是更美丽了,可惜美人老去。)
Linode在世界多地具有数据中心,可供选择的机房其实很多,这方面没有什么特别值得推荐的数据中心,根据喜好选择即可。唯一可能碰到的问题就是你购买的VPS服务器获配的IP地址是已经被墙的,碰到这种情况也只能退掉VPS,重新购买。这一点我和Linode的客服多次沟通反复确认,他们不再提供人工更换IP的服务。
算是小呼吁吧。互联网其实从来不是什么法外之地,我们做网站的也别认为有梯子就万事大吉。这万一有事就绝对不是一个IP被墙这么简单,所以还是建议大家悠着点。
系统的选择建议采用 Debian 系统,有什么最新的可供选择的版本就选择用什么版本。本文撰写日2023年11月9日是Debian 12。因此下文的所有内容都是基于Debian 12系统进行的操作,其他的系统可能细节有所不同。
第二部分:军哥最后的打包版本LNMP 2.0的安装
首先重点感谢https://lnmp.club/使的安装军哥最后的打包版本LNMP 2.0成为可能,当然必须也要感谢军哥,LNMP真的非常优秀。
第一步:升级Debian 12系统
SSH连接上Linode的服务器之后,先运行以下指令把系统升级到最新
apt-get update
第二步:修改SSH端口
1: 备份原sshd配置文件
指令:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
2:编辑sshd配置文件
下文内容均假设你希望新端口为3322,把下面所有指令中的3322替换为你需要设置的端口即可。
备注:新端口建议10000以上,至少我使用了2次10000以内的端口都不成功,另外端口不能超过65535。
指令:
vi /etc/ssh/sshd_config
- 按 i 进入编辑状态
- 使用方向键控制光标,到 #Port 22 这一行,删除前面的#
- 那么在 Port 22 下面添加一行 Port 3322
- 按ESC键,退出编辑状态
- 按 :w 保存修改
- 按 :q 退出
3:重启SSH服务
指令:
systemctl restart sshd
4:查看当前端口状态
指令:
ss -ntl
这个时候应该可以看见修改过的端口和原来的22端口。
5:SSH软件连接测试
使用SSH客户端软件连接测试一下新端口。
6:删除22端口
必须要先做好新端口的连接测试,只有测试成功后才能删除22端口。
如果使用新端口也能正常连接服务器,则参考上面第二步的介绍,删除 Port 22 这行内容,保存后退出。再操作一次上面的重启SSH服务和查看当前端口状态,在查看当前端口状态的显示结果中应该已经没有了22端口的显示,只有你的自定义端口显示。
第三步:安装并运行screen
先输入以下指令完成安装screen:
apt-get install screen
然后运行以下指令,screen就会创建一个名字为lnmp的会话,使的安装在这个会话下执行。
screen -S lnmp
第四步:安装军哥原版LNMP 2.0
1:下载军哥原版LNMP 2.0
指令:
wget -c https://lnmp.club/lnmp2.0-full.tar.gz
2:检测下载到lnmp2.0-full.tar.gz文件的md5值
指令:
md5sum lnmp2.0-full.tar.gz
查到的md5值应该完全匹配lnmp.com2023年8月31日网站记录中所显示的:ada53925291dc448b70f19de8f92880c,否则就不要安装
3:安装军哥原版LNMP 2.0
指令:
tar zxf lnmp2.0-full.tar.gz && cd lnmp2.0-full && ./install.sh lnmp
Mysql和PHP的安装我都选择的是能选择的最新版本,其他的安装提示建议查看https://lnmp.com/install.html做判断
安装过程Linode 2G VPS大约需要2个小时,比较慢,如果期间断链也不要紧张,SSH连接到服务器以后,执行命令:
screen -r lnmp
就会看到你的lnmp安装进程。
千万记录好安装Mysql时候输入的密码!!!!
4:修改PhpMyAdmin的访问路径
完成LNMP安装了以后,第一时间修改 /home/wwwroot/default下的phpmyadmin目录名, 把这个目录修改成只有自己知道的目录名称,比如123654,那么你以后就可以用http://你的VPS IP/123654 这个地址管理你的数据库了。
记得删除/home/wwwroot/default目录下的其他文件,只保留改过名的phpmyadmin文件夹。
第三部分:Cloudflare的设置
注册/登陆Cloudflare账号,根据提示一步一步添加好域名,并做好指向。Cloudflare的功能非常强大,他们的收费套餐我认为是对的起价格的,特别是几个收费只有10美元/月不到的小功能。不过对于绝大多数的小微站点来说,Cloudflare免费套餐也是绝对足够的。
2个重要点一定要注意,如果您和我一样是用来运行Wordpress的话:
1: SSL/TLS 的设置务必要设置成Full(完全),否则用https访问你的站点可能就会报错.
2:设置好屏蔽策略。在安全标签下的WAF栏目下,一定要创建以下策略:
如果用表达式表达,则内容输入
(http.request.uri.path contains "/xmlrpc.php") or (http.request.uri.path contains "/wp-json/wp/v2/users") or (http.request.uri.path contains "/wp-includes/wlwmanifest.xml") or (http.request.uri contains "?author")
即用户无法访问
- 访问路径包涵:/xmlrpc.php
- 访问路径包涵:/wp-json/wp/v2/users
- 访问路径包涵:/wp-includes/wlwmanifest.xml
- 访问地址包含:?author
这些文件或者目录,这些都会泄露你的Wordpress的用户名信息,虽然没有密码外泄,但是总归是不好。
第四部分:在VPS中新增站点
根据 https://lnmp.org/faq/lnmp-vhost-add-howto.html 提示操作即可,复制保存最终的站点开通结果。
第五部分:安装WordPress程序
使用SSH客户端,进入刚才创建的网站目录,指令:
cd 网站目录 #网站目录为站点开通结果中Home Directory:后面显示的内容#
下载完毕最新的WordPress压缩包,指令:
wget https://wordpress.org/latest.tar.gz
解压刚下载的WordPress压缩包,指令:
tar -zxf latest.tar.gz
移动解压后的WorPress内容到工作目录,指令:
cp -r ./wordpress/* ./
把文件的所属都修改为www组的www用户,指令:
chown -R www:www ./
删除wordpress的解压目录,指令:
rm -rf wordpress
删除刚下载的WordPress压缩包,指令:
rm latest.tar.gz #需要按Y确认删除#
如果使用SFTP软件上传了任何文件到网站目录下, 千万记得一定要在使用SSH客户端连接上VPS服务器,并使用 chown -R www:www 网站目录 指令把网站的文件所属修改成www组的www用户
非常重要1:第一时间浏览器打开你的网站,完成WordPress的最终配置工作。如果你的网站长时间保持安装好Wordpress程序但是没有完成最终配置工作话,很容易遭受攻击,并且大概率会攻击成功。
非常重要2:建议安装好WordPress以后,就马上安装隐藏登陆地址的插件,避免网站一直被穷举登陆的事情发生。友人说 WPS Hide Login 这个插件不错,我自己没使用过,仅做简单介绍,大家根据各自喜好安装。
第六部分:Wordpress的安全设置
第一步:隐藏默认的登陆后台地址
可以通过安装插件的方式来实现。建议安装WPS Hide Login插件,插件的作者为WPServeur, NicolasKulka, wpformation.
第二步:一旦发现试图访问author页面就显示404,并禁止跳转
在主题的functions.php文件中添加以下代码
//通过 functions.php 函数文件禁止访问author页面
function block_author_query($query) {
if (!is_admin() && $query->is_main_query() && $query->is_author()) {
$query->set_404();
status_header(404);
nocache_headers();
}
}
add_action('pre_get_posts', 'block_author_query');
- 下一篇:挑战极限速度建站