LNMP在Debian上的安全策略有哪些
导读:1. 系统基础安全加固 定期更新系统与软件:通过sudo apt update && sudo apt upgrade命令安装所有可用安全更新,确保操作系统及LNMP组件(Nginx、MySQL/MariaDB、PHP)处...
1. 系统基础安全加固
- 定期更新系统与软件:通过
sudo apt update & & sudo apt upgrade
命令安装所有可用安全更新,确保操作系统及LNMP组件(Nginx、MySQL/MariaDB、PHP)处于最新版本,修补已知漏洞。 - 使用强密码策略:安装
libpam-pwquality
工具,编辑/etc/security/pwquality.conf
文件,设置密码复杂度要求(如最小长度、包含大小写字母/数字/特殊字符),强制用户使用强密码。 - 禁用不必要的服务:通过
systemctl list-units --type service --state=running
命令列出运行中的服务,禁用未使用的服务(如FTP、Telnet),减少攻击面。
2. 网络与访问控制
- 配置防火墙:使用
ufw
(Uncomplicated Firewall)工具,仅允许必要端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口)对外开放,命令示例:sudo ufw allow OpenSSH
、sudo ufw allow 80/tcp
、sudo ufw allow 443/tcp
,然后启用防火墙sudo ufw enable
。 - 强化SSH安全性:编辑
/etc/ssh/sshd_config
文件,进行以下设置:更改默认SSH端口(如Port 2222
)、禁用root远程登录(PermitRootLogin no
)、启用SSH密钥认证(PasswordAuthentication no
),重启SSH服务使配置生效。
3. LNMP组件安全加固
- Nginx安全配置:
- 禁用不必要的Nginx模块(如
http_autoindex_module
、http_gzip_module
,若无需目录列表或压缩功能),减少潜在攻击点; - 配置SSL/TLS加密:申请并安装SSL证书(如Let’s Encrypt免费证书),在Nginx配置中添加
ssl_certificate
(证书路径)和ssl_certificate_key
(私钥路径)指令,启用HTTPS; - 限制请求大小:在
server
或location
块中添加client_max_body_size 10M;
,防止大文件上传导致的DDoS攻击; - 设置严格的访问控制:使用
allow
/deny
指令限制特定IP访问敏感目录(如location /admin { allow 192.168.1.100; deny all; }
)。
- 禁用不必要的Nginx模块(如
- MySQL/MariaDB安全配置:
- 运行
mysql_secure_installation
脚本,完成root密码设置、移除匿名用户、禁止root远程登录、删除测试数据库等操作; - 修改配置文件(
/etc/mysql/mysql.conf.d/mysqld.cnf
),将bind-address
设置为127.0.0.1
,限制MySQL仅监听本地接口,防止远程非法访问; - 启用二进制日志(
log_bin = /var/log/mysql/mysql-bin.log
)和慢查询日志(slow_query_log = 1
),便于审计和排查性能问题。
- 运行
- PHP安全配置:
- 禁用危险PHP函数:编辑
php.ini
文件(如/etc/php/8.1/fpm/php.ini
),修改disable_functions
参数,禁用exec
、system
、shell_exec
等函数,防止恶意代码执行; - 限制资源使用:在PHP-FPM池配置文件(如
/etc/php/8.1/fpm/pool.d/www.conf
)中,调整pm.max_children
(最大子进程数,如5)、pm.start_servers
(启动时的子进程数,如5)等参数,防止资源耗尽攻击; - 关闭错误显示:设置
display_errors = Off
,log_errors = On
,避免在生产环境中泄露敏感信息(如数据库结构、路径),错误日志记录到/var/log/php_errors.log
。
- 禁用危险PHP函数:编辑
4. 安全工具与监控
- 安装Fail2ban:通过
sudo apt install fail2ban
命令安装,配置/etc/fail2ban/jail.local
文件,针对SSH、Nginx等服务的暴力破解行为进行自动封禁(如maxretry = 3
,尝试3次失败后封禁IP),减少非法登录风险。 - 日志审计与监控:使用
Logwatch
工具(sudo apt install logwatch
)生成每日系统日志报告,分析异常活动;或使用Prometheus
+Grafana
搭建实时监控系统,监控服务器CPU、内存、磁盘使用情况,以及Nginx、MySQL的运行状态,及时发现并响应安全事件。
5. 数据备份与权限管理
- 定期备份重要数据:使用
rsync
、tar
等工具备份网站文件(如/var/www/html
)、数据库(通过mysqldump
导出),并将备份文件存储到异地(如云存储),防止数据丢失。 - 严格权限控制:遵循“最小权限原则”,为网站目录设置合理权限(如
chown -R www-data:www-data /var/www/html
,chmod -R 750 /var/www/html
),确保Nginx用户(通常为www-data
)仅能访问必要的文件;避免使用root用户运行Nginx、PHP-FPM等服务,降低权限滥用风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: LNMP在Debian上的安全策略有哪些
本文地址: https://pptw.com/jishu/720549.html