linux

如何在Apache中设置安全策略

小樊
32
2026-01-01 10:45:10
栏目: 编程语言

Apache安全策略设置清单

一 基础加固

二 请求与协议安全

三 访问控制与请求过滤

四 日志监控与维护

五 快速配置示例

ServerTokens Prod
ServerSignature Off

<Directory /var/www/html>
    Options -Indexes +FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak)$">
    Require all denied
</FilesMatch>
<IfModule mod_headers.c>
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set X-Content-Type-Options "nosniff"
    Header always set Referrer-Policy "no-referrer-when-downgrade"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always set Content-Security-Policy "default-src 'self'; script-src 'self'"
</IfModule>
<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile /path/to/cert.crt
    SSLCertificateKeyFile /path/to/privkey.key

    SSLProtocol -all +TLSv1.2 +TLSv1.3
    SSLCipherSuite ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20:!aNULL:!MD5:!DSS
    SSLHonorCipherOrder on
    SSLCompression off
    SSLSessionTickets off
</VirtualHost>
Timeout 60
KeepAliveTimeout 15

LimitRequestBody 10485760   # 10MB
LimitRequestFields 40
LimitRequestFieldSize 4094
LimitRequestLine 4094

<IfModule reqtimeout_module>
    RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
</IfModule>
# mod_evasive 示例
<IfModule mod_evasive24.c>
    DOSHashTableSize 2048
    DOSPageCount 2
    DOSPageInterval 1
    DOSSiteCount 50
    DOSSiteInterval 1
    DOSBlockingPeriod 60
</IfModule>

# ModSecurity 建议最小启用
<IfModule mod_security2.c>
    SecRuleEngine On
    SecRequestBodyAccess On
</IfModule>

0
看了该问题的人还看了