在Ubuntu下配置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境并确保其安全性,可以遵循以下步骤:
1. 安装Nginx
首先,更新系统包列表并安装Nginx:
sudo apt update sudo apt install nginx
安装完成后,通过浏览器访问服务器IP地址,检查Nginx是否安装成功。
2. 安装MySQL/MariaDB
接下来,安装MySQL或MariaDB:
sudo apt install mysql-server
安装过程中,系统会提示设置MySQL的root密码,请务必设置一个强密码。
安装完成后,运行以下命令以安全配置MySQL:
sudo mysql_secure_installation
按照提示操作,包括更改root密码、删除匿名用户、禁止远程root登录等。
3. 安装PHP
安装PHP及其必要的扩展:
sudo apt install php-fpm php-mysql
4. 配置Nginx以支持PHP
编辑Nginx的默认配置文件:
sudo vim /etc/nginx/sites-available/default
在server
块中,找到location ~ \.php$
部分,确保以下配置存在且未被注释:
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }
保存并退出编辑器,然后重启Nginx服务:
sudo systemctl restart nginx
5. 安全加固措施
- 修改SSH端口:编辑
/etc/ssh/sshd_config
文件,更改SSH默认端口为一个非标准端口,例如2222,以减少暴力破解攻击的风险。 - 启用公钥认证:编辑
/etc/ssh/sshd_config
文件,将PubkeyAuthentication
设置为yes
,并禁用密码认证。 - 配置防火墙:使用
ufw
允许必要的端口,如SSH(修改后的端口)和HTTP:
sudo ufw allow 2222/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
- 设置复杂密码:确保所有用户账户都设置了复杂且难以猜测的密码,并定期更换。
- 定期更新系统和软件包:使用
unattended-upgrades
包实现系统的自动更新,并定期手动运行sudo apt update && sudo apt upgrade
以安装最新的安全补丁。
6. 测试配置
最后,通过创建一个info.php
文件在网站的根目录来测试PHP配置是否正确:
保存文件后,通过浏览器访问服务器的IP地址加上/info.php
,如果能看到PHP的信息,则说明配置成功。
以上步骤涵盖了在Ubuntu下安装和配置LNMP环境的基本流程,以及一系列安全加固措施,以确保服务器的安全性和稳定性。