在Debian LNMP(Linux, Nginx, MySQL, PHP)环境下防止攻击是一个综合性的工作,涉及多个层面的配置和策略。以下是一些关键的步骤和建议:
1. 更新系统和软件
- 定期更新:确保系统和所有软件包都是最新的,以修复已知的安全漏洞。
sudo apt update sudo apt upgrade
2. 配置防火墙
- 使用ufw:安装并启用ufw(Uncomplicated Firewall)来限制入站和出站流量。
sudo apt install ufw sudo ufw enable sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 3306/tcp sudo ufw allow 9000/tcp sudo ufw allow ssh
3. 配置SSH安全性
- 更改默认端口:避免使用默认的SSH端口22,减少被自动扫描的风险。
- 禁用root登录:使用SSH密钥对进行身份认证,禁用root远程登录。
sudo nano /etc/ssh/sshd_config # 更改端口号Port 2222 PermitRootLogin no PasswordAuthentication no
4. 配置Nginx和PHP
- Nginx配置:确保Nginx配置文件中没有安全漏洞,例如正确配置PHP处理部分。
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }
- PHP配置:修改PHP配置文件(例如
/etc/php/7.4/fpm/php.ini
),确保cgi.fix_pathinfo
设置为0。
5. 数据库安全
- 使用
mysql_secure_installation
:在安装MySQL后,使用该命令进行安全设置,包括移除匿名用户、禁止远程root登录等。sudo mysql_secure_installation
6. 监控和日志
- 监控系统日志:使用工具如Logwatch或Fail2ban来自动监控并报告系统活动和安全事件。
- 查看日志:定期检查
/var/log
目录下的日志文件,寻找异常行为。
7. 使用Web应用防火墙(WAF)
- SafeLine:使用SafeLine等WAF来保护Web服务不受各种攻击,如SQL注入、XSS、代码注入等。
8. 其他安全措施
- 禁用不必要的服务:检查并禁用不必要的网络服务,降低攻击面。
- 使用强密码:设置强密码并强制用户使用复杂密码。
- 定期审计和监控:使用工具如auditd进行系统审计,监控可疑活动。
通过上述步骤,可以显著提高Debian LNMP环境的安全性,有效防止各种网络攻击。建议定期审查和更新安全设置,以应对新的安全威胁。