LNMP是指Linux、Nginx、MySQL和PHP的组合,常用于搭建网站服务器。在Ubuntu上设置LNMP环境并确保安全性的步骤如下:
LNMP环境搭建步骤
- 更新系统软件包:
sudo apt update
- 安装Nginx:
sudo apt install nginx
- 启动Nginx服务并设置开机自启动:
sudo systemctl start nginx sudo systemctl enable nginx
- 安装MySQL数据库服务器:
sudo apt install mysql-server
在安装过程中,系统会提示设置MySQL的root密码,请务必设置一个强密码。
- 启动MySQL服务并设置开机自启动:
sudo systemctl start mysql sudo systemctl enable mysql
- 安装PHP及相关扩展:
sudo apt install php-fpm php-mysql
- 配置Nginx以支持PHP:
编辑Nginx配置文件:
sudo nano /etc/nginx/sites-available/default
在server
块中添加以下内容:
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }
保存并关闭文件,然后重新加载Nginx配置:
sudo systemctl reload nginx
- 测试LNMP环境:
在/var/www/html
目录下创建一个PHP测试文件:
sudo nano /var/www/html/info.php
在文件中添加以下内容:
保存并关闭文件,然后在浏览器中访问服务器的IP地址,如果能够正常显示PHP信息,则安装成功。
安全设置
- 修改SSH端口:
编辑/etc/ssh/sshd_config
文件,修改SSH端口为一个非标准端口,以减少被自动扫描的风险。
Port 2222
保存并退出,然后重启SSH服务:
sudo systemctl restart ssh
- 配置防火墙:
使用ufw
允许必要的端口,如SSH(修改默认的22端口)和HTTP(80端口):
sudo ufw allow 2222/tcp sudo ufw allow 80/tcp sudo ufw enable
- 设置复杂密码:
确保所有用户账户都设置了复杂且难以猜测的密码,并定期更换。
- 定期更新系统和软件包:
使用unattended-upgrades
包实现系统的自动更新,并定期手动运行:
sudo apt update && sudo apt upgrade
- 禁用root登录:
编辑/etc/ssh/sshd_config
文件,将PermitRootLogin
设置为no
,禁止直接通过SSH登录root账户。
PermitRootLogin no
- 启用公钥登录:
确保PubkeyAuthentication
设置为yes
,使用密钥对进行身份验证。
- 安装并配置Fail2Ban:
防止暴力破解攻击,通过编辑/etc/fail2ban/jail.conf
文件进行配置。
通过以上步骤,你可以在Ubuntu上成功搭建LNMP环境,并进行基本的安全设置。但请注意,安全是一个持续的过程,需要定期更新、审计和加固。