Apache2安全设置关键步骤

定期更新系统和Apache2及相关软件包,修复已知安全漏洞。
sudo apt update && sudo apt upgrade -ysudo yum update -y使用防火墙限制对Apache的访问,仅开放必要端口(HTTP 80、HTTPS 443)。
sudo apt install ufw -ysudo ufw allow 'Apache Full'# 允许HTTP和HTTPSsudo ufw enablesudo firewall-cmd --permanent --zone=public --add-service=httpsudo firewall-cmd --permanent --zone=public --add-service=httpssudo firewall-cmd --reload减少攻击面,禁用未使用的Apache模块(如autoindex、cgi、status)。
sudo a2dismod autoindex cgi status# Ubuntu/Debiansudo 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,AllowDeny from allAllow from 192.168.1.100# 仅允许指定IP</Directory><Directory /var/www/html>Options -Indexes# 禁止目录列表AllowOverride NoneRequire all granted</Directory>保护数据传输安全,强制使用HTTPS。
sudo a2enmod ssl(Ubuntu/Debian)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>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 apache2sudo 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>严格限制文件访问权限,避免未授权写入或读取。
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或errorErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${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