最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Apache2安全设置如何进行
时间:2026-07-23 09:21:04 编辑:袖梨 来源:一聚教程网
Apache2安全设置关键步骤

1. 系统与软件更新
定期更新系统和Apache2及相关软件包,修复已知安全漏洞。
- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - CentOS/RHEL:
sudo yum update -y
2. 防火墙配置
使用防火墙限制对Apache的访问,仅开放必要端口(HTTP 80、HTTPS 443)。
- UFW(Ubuntu/Debian):
sudo apt install ufw -ysudo ufw allow 'Apache Full'# 允许HTTP和HTTPSsudo ufw enable - Firewalld(CentOS/RHEL):
sudo firewall-cmd --permanent --zone=public --add-service=httpsudo firewall-cmd --permanent --zone=public --add-service=httpssudo firewall-cmd --reload
3. 禁用不必要模块
减少攻击面,禁用未使用的Apache模块(如autoindex、cgi、status)。
sudo a2dismod autoindex cgi status# Ubuntu/Debiansudo systemctl restart apache2注:CentOS需编辑
/etc/httpd/conf/httpd.conf,注释或删除对应LoadModule行。
4. 隐藏服务器信息
避免泄露Apache版本、操作系统等敏感信息,降低针对性攻击风险。编辑配置文件(/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf):
ServerTokens Prod# 仅显示“Apache”,隐藏版本号ServerSignature Off# 禁止在错误页面显示服务器信息5. 强化访问控制
- 基于IP的访问控制:限制特定IP访问敏感目录(如后台)。
<Directory /var/www/html/admin>Order Deny,AllowDeny from allAllow from 192.168.1.100# 仅允许指定IP</Directory> - 目录浏览禁用:防止用户查看目录结构。
<Directory /var/www/html>Options -Indexes# 禁止目录列表AllowOverride NoneRequire all granted</Directory>
6. 启用SSL/TLS加密
保护数据传输安全,强制使用HTTPS。
- 安装SSL模块:
sudo a2enmod ssl(Ubuntu/Debian) - 创建自签名证书(测试用)或申请免费Let’s Encrypt证书(生产用):
sudo apt install certbot python3-certbot-apache -ysudo certbot --apache -d yourdomain.com -d www.yourdomain.com - 配置虚拟主机(
/etc/apache2/sites-available/default-ssl.conf):<VirtualHost *:443>ServerName yourdomain.comSSLEngine onSSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem</VirtualHost>
7. 安装安全模块
- ModSecurity:Web应用防火墙(WAF),防御SQL注入、XSS等攻击。
sudo apt install libapache2-mod-security2 -y# Ubuntu/Debiansudo a2enmod security2sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.confsudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.confsudo systemctl restart apache2 - ModEvasive:防止暴力破解(如DDoS、暴力猜密码)。
添加以下规则:sudo apt install libapache2-mod-evasive -ysudo nano /etc/apache2/mods-enabled/evasive.conf<IfModule mod_evasive24.c>DOSHashTableSize 3097DOSPageCount 2# 1秒内2次相同请求视为攻击DOSSiteCount 50 # 1秒内50次请求视为攻击DOSPageInterval 1DOSSiteInterval 1DOSBlockingPeriod 10# 攻击时封锁10秒</IfModule>
8. 文件与目录权限
严格限制文件访问权限,避免未授权写入或读取。
sudo chown -R www-data:www-data /var/www/html# Ubuntu/Debian(Apache用户为www-data)sudo chmod -R 755 /var/www/html# 目录权限755,文件权限644注:CentOS Apache用户为
apache,需替换对应用户。
9. 日志监控与审计
启用详细日志记录,定期检查异常行为。编辑配置文件(/etc/apache2/apache2.conf):
LogLevel warn# 生产环境建议使用warn或errorErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined定期查看日志:
tail -f /var/log/apache2/error.log# 实时监控错误日志10. 其他安全措施
- 禁用目录列表:已在访问控制中配置(
Options -Indexes)。 - 限制上传文件大小:防止大文件消耗服务器资源。
<Directory /var/www/html/uploads>LimitRequestBody 52428800# 限制上传大小为50MB</Directory> - 使用强密码:为Apache用户、数据库用户设置复杂密码(包含大小写字母、数字、特殊字符)。
- 定期备份:备份配置文件和网站数据,防止数据丢失。
sudo tar -czvf /backup/apache2-backup.tar.gz /etc/apache2 /var/www/html