以下是CentOS上部署LNMP实现安全防护的关键措施:
系统更新与权限管理
yum update
修复系统漏洞。root
远程登录,创建专用服务用户(如 webuser
),并限制其权限。chattr +i
锁定关键配置文件,防止篡改。防火墙配置
firewalld
或 iptables
,仅开放必要端口(HTTP 80、HTTPS 443、SSH 22等),禁止数据库端口(3306)外部访问。firewalld
规则:firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload
服务最小权限原则
root
用户运行,配置文件中指定用户组(如 user = webuser
)。server_tokens off;
。if ($request_method !~ ^(GET|HEAD|POST)$) { return 405; }
。add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self';";
root
登录,限制用户权限至最小必要范围。my.cnf
:[mysqld]
skip-name-resolve # 禁用DNS解析
sql_mode=STRICT_TRANS_TABLES # 严格模式
disable_functions = exec,passthru,shell_exec
。open_basedir
限制文件访问路径,防止跨目录攻击。文件与目录权限
755
,敏感文件(如配置文件)设为 640
,确保仅服务用户可读。chmod 600
),并使用随机文件名。数据备份与加密
mysqldump
)和网站文件,存储至异地。ELK Stack
)监控异常访问,重点关注 404
、500
错误及异常登录尝试。fail2ban
防止暴力破解,限制单个IP的失败登录次数。Lynis
)扫描系统漏洞。ModSecurity
,拦截SQL注入、XSS等攻击。参考来源:[1,2,3,6,7,8,9,10,11,13,14]