LNMP是指Linux系统下(Nginx、MySQL(MariaDB)、PHP)这种网站服务器架构。以下是在Ubuntu上设置LNMP环境的基本安全指南:
修改SSH端口
- 打开
/etc/ssh/sshd_config
文件。 - 将SSH默认端口修改为其他非标准端口,例如2222。
- 在文件中添加或修改以下行:
Port 2222
。 - 保存并退出编辑器。
- 重启SSH服务以应用更改:
sudo systemctl restart sshd
。
设置SSH允许登录的IP
- 可以通过编辑
/etc/hosts.allow
和/etc/hosts.deny
文件来限制允许登录的IP。 - 或者,在
/etc/ssh/sshd_config
文件中使用allowusers
指令来指定允许登录的用户。
设置ufw防火墙
- 安装ufw防火墙:
sudo apt-get install ufw
。 - 开启防火墙:
sudo ufw enable
。 - 允许必要的端口,如22(SSH)、80(HTTP)、443(HTTPS)和3306(MySQL):
sudo ufw allow 22 /tcp
sudo ufw allow 80 /tcp
sudo ufw allow 443 /tcp
sudo ufw allow 3306 /tcp
。
- 重启防火墙以应用设置:
sudo ufw reload
。
修改Nginx配置
- 编辑Nginx配置文件,通常位于
/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
。 - 确保监听正确的端口(默认为80),并配置正确的server块。
- 重启Nginx服务以应用更改:
sudo systemctl restart nginx
。
修改PHP配置
- 编辑PHP配置文件,通常位于
/etc/php/7.x/fpm/php.ini
(具体版本可能有所不同)。 - 设置
display_errors
为On
,以便在开发过程中显示错误信息。 - 设置
error_reporting
为E_ALL
,以报告所有错误。 - 重启PHP-FPM服务以应用更改:
sudo systemctl restart php7.x-fpm
。
MySQL安全配置
- 在安装MySQL后,运行
mysql_secure_installation
脚本进行基本的安全设置,包括设置强密码、删除匿名用户、禁止远程root登录等。 - 编辑MySQL配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
,将bind-address
设置为0.0.0.0
以允许远程连接,然后注释掉这一行。 - 重启MySQL服务以应用更改:
sudo systemctl restart mysql
。
安装和配置phpMyAdmin
- 安装phpMyAdmin:
sudo apt-get install phpmyadmin
。 - 配置phpMyAdmin的访问权限,通常是通过创建一个符号链接到
/usr/share/phpmyadmin
目录。 - 重启Web服务器以应用更改。
以上步骤提供了Ubuntu LNMP环境的基本安全设置,但请注意,安全是一个持续的过程,需要定期更新和审查安全措施。此外,具体的命令和配置可能会因Ubuntu版本的不同而有所差异,建议参考最新的官方文档进行操作。