温馨提示×

CentOS Apache2如何配置防盗劫持

小樊
42
2025-12-09 14:54:28
栏目: 智能运维

在CentOS系统中配置Apache2以防止盗劫持,可以采取以下措施:

1. 更新系统和软件

确保你的系统和Apache2都是最新版本,因为新版本通常包含安全修复和增强功能。

sudo yum update
sudo yum install httpd

2. 配置防火墙

使用firewalldiptables来限制对Apache服务的访问。

使用firewalld

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

使用iptables

sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
sudo service iptables save
sudo service iptables restart

3. 配置SSL/TLS

使用SSL/TLS证书来加密数据传输,防止中间人攻击。

sudo yum install mod_ssl
sudo systemctl enable httpd
sudo systemctl start httpd

编辑/etc/httpd/conf.d/ssl.conf文件,配置SSL证书和密钥路径。

<VirtualHost *:443>
    ServerName yourdomain.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /path/to/your/certificate.crt
    SSLCertificateKeyFile /path/to/your/private.key
    SSLCertificateChainFile /path/to/your/chainfile.pem

    <Directory "/var/www/html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

4. 配置防盗劫持模块

Apache有一些模块可以帮助防止盗劫持,例如mod_rewritemod_security

启用mod_rewrite

sudo yum install mod_rewrite

httpd.confapache2.conf中启用mod_rewrite

LoadModule rewrite_module modules/mod_rewrite.so

安装和配置mod_security

sudo yum install mod_security

编辑/etc/httpd/conf.d/security2.conf文件,启用mod_security并配置基本规则:

SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditLog /var/log/httpd/modsec_audit.log
SecAuditLogParts ABIJDEFHZ
SecAuditLog /var/log/httpd/modsec_audit.log
SecAuditLogParts ABIJDEFHZ

5. 配置.htaccess文件

在网站的根目录下创建或编辑.htaccess文件,添加防盗劫持规则。

RewriteEngine On

# 防止目录列表
Options -Indexes

# 防止文件下载
RewriteCond %{REQUEST_FILENAME} \.(php|jsp|asp|exe|sh|cgi)$ [NC]
RewriteRule ^(.*)$ - [F,L]

# 防止SQL注入
RewriteCond %{QUERY_STRING} (.*)(?:\'|\"|;|\)|\(|\)) [NC]
RewriteRule ^(.*)$ - [F,L]

# 防止XSS攻击
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+[>|%3E] [NC]
RewriteRule ^(.*)$ - [F,L]

6. 定期备份和监控

定期备份你的网站文件和数据库,并设置监控系统来检测异常流量和攻击行为。

通过以上步骤,你可以大大提高CentOS系统中Apache2的安全性,防止盗劫持和其他常见的网络攻击。

0