Apache2安全设置关键步骤
定期更新系统和Apache2及相关软件包,修复已知安全漏洞。
sudo apt update && sudo apt upgrade -ysudo yum update -y使用防火墙限制对Apache的访问,仅开放必要端口(HTTP 80、HTTPS 443)。
sudo apt install ufw -y
sudo ufw allow 'Apache Full' # 允许HTTP和HTTPS
sudo ufw enable
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
减少攻击面,禁用未使用的Apache模块(如autoindex、cgi、status)。
sudo a2dismod autoindex cgi status # Ubuntu/Debian
sudo systemctl restart apache2
注:CentOS需编辑
/etc/httpd/conf/httpd.conf,注释或删除对应LoadModule行。
避免泄露Apache版本、操作系统等敏感信息,降低针对性攻击风险。
编辑配置文件(/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf):
ServerTokens Prod # 仅显示“Apache”,隐藏版本号
ServerSignature Off # 禁止在错误页面显示服务器信息
<Directory /var/www/html/admin>
Order Deny,Allow
Deny from all
Allow from 192.168.1.100 # 仅允许指定IP
</Directory>
<Directory /var/www/html>
Options -Indexes # 禁止目录列表
AllowOverride None
Require all granted
</Directory>
保护数据传输安全,强制使用HTTPS。
sudo a2enmod ssl(Ubuntu/Debian)sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
/etc/apache2/sites-available/default-ssl.conf):<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
</VirtualHost>
sudo apt install libapache2-mod-security2 -y # Ubuntu/Debian
sudo a2enmod security2
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.conf
sudo systemctl restart apache2
sudo apt install libapache2-mod-evasive -y
sudo nano /etc/apache2/mods-enabled/evasive.conf
添加以下规则:<IfModule mod_evasive24.c>
DOSHashTableSize 3097
DOSPageCount 2 # 1秒内2次相同请求视为攻击
DOSSiteCount 50 # 1秒内50次请求视为攻击
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10 # 攻击时封锁10秒
</IfModule>
严格限制文件访问权限,避免未授权写入或读取。
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,需替换对应用户。
启用详细日志记录,定期检查异常行为。
编辑配置文件(/etc/apache2/apache2.conf):
LogLevel warn # 生产环境建议使用warn或error
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
定期查看日志:
tail -f /var/log/apache2/error.log # 实时监控错误日志
Options -Indexes)。<Directory /var/www/html/uploads>
LimitRequestBody 52428800 # 限制上传大小为50MB
</Directory>
sudo tar -czvf /backup/apache2-backup.tar.gz /etc/apache2 /var/www/html