温馨提示×

LNMP在Debian中的安全性如何保障

小樊
45
2025-09-27 18:37:15
栏目: 智能运维

保持系统与软件最新
定期更新Debian系统和LNMP组件(Nginx、MySQL/MariaDB、PHP)至最新稳定版本,及时修补已知安全漏洞。通过sudo apt update && sudo apt upgrade命令完成系统更新,安装软件时优先选择官方源或可信第三方源。

配置防火墙限制访问
使用ufw(Uncomplicated Firewall)或iptables配置防火墙规则,仅允许必要端口(如HTTP 80/tcp、HTTPS 443/tcp、SSH 22/tcp)对外开放,禁止未授权IP访问。例如,sudo ufw allow 80/tcpsudo ufw allow 443/tcp,启用防火墙后通过sudo ufw enable激活。

强化SSH登录安全
修改SSH默认端口(如2222),禁用root用户远程登录,强制使用SSH密钥对认证。编辑/etc/ssh/sshd_config文件,设置Port 2222PermitRootLogin noPasswordAuthentication no,重启SSH服务使配置生效。

数据库安全加固
安装MySQL/MariaDB后,运行mysql_secure_installation命令移除匿名用户、禁止root远程登录、移除测试数据库;修改配置文件(/etc/mysql/mysql.conf.d/mysqld.cnf)中的bind-address127.0.0.1,限制数据库仅本地访问;设置强密码策略(如使用libpam-pwquality工具)。

Nginx配置安全优化
禁用Nginx不必要的模块(如autoindexserver_tokens),隐藏服务器版本信息(server_tokens off;);配置SSL/TLS加密(使用Let’s Encrypt免费证书),强制HTTPS访问;限制PHP处理目录的访问权限,避免恶意脚本执行(如location ~ \.php$块中正确配置fastcgi_pass指向PHP-FPM套接字)。

PHP安全配置
修改PHP配置文件(/etc/php/7.4/fpm/php.ini),设置cgi.fix_pathinfo=0防止路径遍历攻击;限制PHP进程资源使用(如pm.max_children根据服务器内存调整),避免资源耗尽;禁用不必要的PHP模块(如php_curl.dll),减少攻击面。

权限与用户管理
创建普通用户并加入sudo组,避免直接使用root用户操作;配置PAM模块强化密码策略(如libpam-pwquality),要求密码包含大小写字母、数字和特殊字符;合理分配文件/目录权限(如Nginx网站目录设为www-data:www-data,权限为750),防止未授权访问。

监控与日志管理
使用Fail2ban工具防止暴力破解攻击(如SSH、Nginx登录),自动封禁异常IP;通过LogwatchAuditd监控系统日志(/var/log/syslog/var/log/nginx/error.log/var/log/mysql/error.log),定期审查异常活动(如大量失败登录尝试、未授权文件访问)。

其他高级安全措施
考虑安装Web应用防火墙(WAF)如SafeLine,防护SQL注入、XSS、代码注入等Web攻击;使用SELinux或AppArmor进一步限制进程权限(如限制Nginx、PHP-FPM的访问范围);定期备份重要数据(如网站文件、数据库),使用Timeshift等工具实现系统级备份。

0