Linux服务器终极安全加固指南:Nginx与Apache安全模块配置
Linux服务器安全是每个系统管理员必须掌握的核心技能。本文将提供一套完整的Linux服务器安全加固方案,特别聚焦于Nginx与Apache两大主流Web服务器的安全模块配置,帮助新手用户从零开始构建安全可靠的服务器环境。
为什么服务器安全至关重要? 🚨
在当今数字化时代,服务器面临着各种安全威胁,从恶意攻击到数据泄露,后果不堪设想。一个未加固的Linux服务器就像一座不设防的城堡,容易成为黑客的目标。通过本文介绍的方法,你可以显著提升服务器的安全性,保护敏感数据,防止未授权访问,确保业务持续稳定运行。
基础安全加固步骤
1. 系统更新与补丁管理
保持系统更新是安全加固的第一步。通过以下命令可以快速更新系统并安装安全补丁:
sudo apt update && sudo apt upgrade -y
建议配置自动安全更新,编辑/etc/apt/apt.conf.d/50unattended-upgrades文件,确保关键安全更新能够自动应用。
2. 防火墙配置
使用UFW(Uncomplicated Firewall)简化防火墙管理:
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
3. SSH安全加固
编辑SSH配置文件/etc/ssh/sshd_config,进行以下关键设置:
- 禁用密码登录,只允许密钥认证
- 更改默认SSH端口
- 限制允许登录的用户
- 禁用root直接登录
PasswordAuthentication no
Port 2222
AllowUsers your_username
PermitRootLogin no
Nginx安全模块配置
安装与基础配置
sudo apt install nginx
核心安全模块配置
1. ModSecurity WAF配置
ModSecurity是一个开源的Web应用防火墙,能有效防止SQL注入、XSS等常见攻击:
sudo apt install libnginx-mod-http-modsecurity
配置文件路径:/etc/nginx/modsec/main.conf
2. SSL/TLS配置
确保启用现代TLS协议,禁用不安全的加密套件:
server {
listen 443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
}
3. HTTP安全头配置
添加关键安全头,增强浏览器安全防护:
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
Apache安全模块配置
安装与基础配置
sudo apt install apache2
核心安全模块配置
1. 启用安全模块
sudo a2enmod security headers ssl rewrite
2. ModSecurity配置
sudo apt install libapache2-mod-security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
编辑配置文件/etc/modsecurity/modsecurity.conf,设置SecRuleEngine On
3. SSL/TLS配置
创建SSL配置文件/etc/apache2/conf-available/ssl-params.conf:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
启用配置:
sudo a2enconf ssl-params
高级安全加固措施
1. 内核参数优化
编辑/etc/sysctl.conf文件,添加以下安全相关参数:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.ip_forward = 0
kernel.randomize_va_space = 2
应用更改:
sudo sysctl -p
2. 文件系统安全
设置合适的文件权限,保护敏感配置文件:
sudo chmod 600 /etc/ssh/sshd_config
sudo chmod 700 /root
启用文件系统审计工具AIDE:
sudo apt install aide
sudo aideinit
sudo aide --check
3. 入侵检测与防御
安装并配置Fail2ban,防止暴力破解:
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑/etc/fail2ban/jail.local,配置SSH和Web服务防护规则。
安全监控与维护
日志监控
配置日志轮转,确保系统日志得到妥善管理:
sudo apt install logrotate
设置日志监控工具Logwatch:
sudo apt install logwatch
定期安全审计
使用Lynis工具进行系统安全审计:
sudo apt install lynis
sudo lynis audit system
总结
通过本文介绍的方法,你已经掌握了Linux服务器安全加固的核心技术,特别是Nginx和Apache的安全模块配置。记住,安全是一个持续过程,需要定期更新和维护。建议建立安全基线,定期进行安全审计,及时响应新的安全威胁。
要获取更多详细信息,可以参考项目中的linux-kernel-sysctl-hardening.md文件,其中包含了更多高级内核安全配置选项。
保护服务器安全是一项长期任务,希望本文提供的指南能帮助你构建一个更加安全可靠的Linux服务器环境! 🔒
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



