ubuntu

怎样提升Ubuntu Apache2安全性

小樊
38
2025-11-09 09:57:17
栏目: 智能运维

1. 系统与软件更新
定期更新Ubuntu系统和Apache2及相关软件包,及时修补已知安全漏洞。执行以下命令:

sudo apt update && sudo apt upgrade -y

2. 配置防火墙(UFW)
使用UFW限制访问,仅允许HTTP(80/tcp)、HTTPS(443/tcp)及SSH(默认22/tcp,建议修改为非标准端口)流量:

sudo ufw allow 'Apache Full'  # 允许HTTP/HTTPS
sudo ufw allow ssh            # 允许SSH(若修改端口需替换为实际端口)
sudo ufw enable               # 启用防火墙
sudo ufw status               # 验证规则

3. 禁用不必要的Apache模块
通过apache2ctl -M查看已启用模块,禁用无用模块(如autoindex防止目录列表、php7.x若无需PHP),减少攻击面:

sudo a2dismod autoindex  # 禁用目录自动列表
sudo a2dismod php7.4     # 示例:禁用PHP7.4模块(根据实际安装版本调整)
sudo systemctl restart apache2

4. 启用SSL/TLS加密
使用Let’s Encrypt获取免费证书,配置HTTPS加密通信。安装Certbot并自动配置:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com  # 替换为实际域名

证书自动续期(Certbot默认配置),无需手动操作。

5. 配置HTTP安全头
通过mod_headers模块添加安全头,防范XSS、点击劫持等攻击。编辑/etc/apache2/conf-available/security.conf,添加以下内容:

<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"  # 防止MIME类型嗅探
    Header always set X-Frame-Options "SAMEORIGIN"      # 防止点击劫持
    Header always set X-XSS-Protection "1; mode=block"  # 启用XSS防护
    Header always set Referrer-Policy "no-referrer-when-downgrade"  # 控制Referer信息
</IfModule>
sudo a2enconf security  # 启用配置
sudo systemctl restart apache2

6. 隐藏Apache版本与敏感信息
修改Apache配置文件,隐藏版本号和操作系统信息,降低针对性攻击风险:

sudo sed -i 's/ServerTokens OS/ServerTokens Prod/g' /etc/apache2/apache2.conf
sudo sed -i 's/ServerSignature On/ServerSignature Off/g' /etc/apache2/apache2.conf
sudo systemctl restart apache2

7. 限制目录访问权限
禁用目录自动列表,设置严格的访问控制,仅允许授权用户访问敏感目录(如/admin):

<Directory /var/www/html>
    Options -Indexes FollowSymLinks  # 禁止目录列表
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/html/admin>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

创建.htpasswd文件并添加用户:

sudo htpasswd -c /etc/apache2/.htpasswd admin  # 替换为实际用户名

8. 启用安全模块

9. 使用Fail2Ban防范暴力破解
安装Fail2Ban监控日志,自动封禁频繁尝试登录的IP地址:

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.local /etc/fail2ban/jail.local.bak  # 备份默认配置
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

编辑/etc/fail2ban/jail.local,启用Apache相关规则:

[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3
bantime = 600

10. 定期备份与监控

通过以上步骤,可显著提升Ubuntu上Apache2服务器的安全性,防范常见攻击(如DDoS、SQL注入、目录遍历等)。需定期检查和更新配置,适应新的安全威胁。

0
看了该问题的人还看了