以下是CentOS下Apache的安全设置关键步骤:
更新系统与软件
sudo yum update -y
sudo yum install httpd mod_ssl mod_security mod_evasive -y # 安装Apache及安全模块
禁用不必要的模块
编辑/etc/httpd/conf/httpd.conf
,注释或删除不需要的模块(如mod_rewrite
可按需禁用):
# <IfModule mod_rewrite.c>
# RewriteEngine Off
# </IfModule>
配置SSL/TLS加密
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/apache.key -out /etc/pki/tls/certs/apache.crt
/etc/httpd/conf.d/ssl.conf
中启用SSL:<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/apache.crt
SSLCertificateKeyFile /etc/pki/tls/private/apache.key
</VirtualHost>
配置防火墙
开放HTTP(80)和HTTPS(443)端口:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
设置文件与目录权限
确保网站目录权限正确,仅允许Apache用户访问:
sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html
隐藏版本信息
在httpd.conf
中添加:
ServerTokens Prod
ServerSignature Off
启用安全模块
/etc/httpd/conf.d/security2.conf
中启用规则引擎:SecRuleEngine On
SecAuditLog /var/log/httpd/security_audit.log
/etc/httpd/conf.d/evasive.conf
中配置防暴力攻击规则:<IfModule mod_evasive20.c>
DOSPageCount 2
DOSSiteCount 50
DOSBlockingPeriod 10
</IfModule>
限制访问权限
/etc/httpd/conf/httpd.conf
或虚拟主机配置中添加:<Directory "/var/www/html">
Options -Indexes
</Directory>
.htaccess
限制IP访问(可选):Require ip 192.168.1.0/24
定期备份与监控
sudo tar -czvf apache-backup.tar.gz /etc/httpd /var/www/html
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
完成配置后重启Apache:
sudo systemctl restart httpd
以上步骤参考自,可根据实际需求调整。