#24 Apache httpd 基本的なセキュリティ設定

  httpd Linux  [公開]
icon incmplt - Info Circus が 2024/07/22 7:12 に投稿 ( icon incmplt - Info Circus が 2024/09/30 19:48 に編集 <更新履歴> )

Apache httpd で基本的なセキュリティ設定 (2022年10月 更新)

# サーバー情報の秘匿と TRACEメソッドの無効化
ServerTokens Prod
ServerSignature Off
TraceEnable Off

# RequestReadTimeout header=10 body=30
SetEnv proxy-nokeepalive 1
FileETag None

# 無駄な言語情報の秘匿
Header unset "X-Powered-By"

# httpoxy 対策
RequestHeader unset Proxy

# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range

# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
#
RequestHeader unset Request-Range
# optional logging.
CustomLog logs/range-CVE-2011-3192.log common env=bad-range

# クリックジャッキング対策
Header append X-Frame-Options SAMEORIGIN

# XSS対策
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff

# DoS 攻撃対策
LimitRequestBody 10485760
LimitRequestFields 20
# slowloris 対策
# RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

.htaccess で対策する場合には、以下のような設定を検討する。

# .htaccessファイルへのアクセスを制限
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>

# ディレクトリリストの無効化
Options -Indexes

<IfModule mod_headers.c>
    # XSS攻撃の防止
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options "nosniff"
    Header set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'"
    # 他サイトからの iframe の禁止
    Header always append X-Frame-Options SAMEORIGIN
</IfModule>

# SQLインジェクション対策
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (\%27)|(\')|(\-\-)|(\%23)|(#) [NC]
    RewriteRule ^(.*)$ - [F,L]
    RewriteCond %{QUERY_STRING} (\%24)|($)|(\*.*)|(\+)|(\.)|(\[)|(\]) [NC]
    RewriteRule ^(.*)$ - [F,L]
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (;|%22|%3D|%27).*(select|insert|union|declare|drop|update) [NC]
    RewriteRule ^(.*)$ - [F,L]
</IfModule>

# HTTPメソッドの制限
<LimitExcept GET POST>
    Require all denied
</LimitExcept>

# 特定のIPアドレスのブロック
#<RequireAll>
#    Require all granted
#    Require not ip 192.168.0.1
#</RequireAll>

# 無効なユーザーエージェントのブロック
#<IfModule mod_rewrite.c>
#    RewriteEngine On
#    RewriteCond %{HTTP_USER_AGENT} ^BadBot [NC,OR]
#    RewriteCond %{HTTP_USER_AGENT} ^AnotherBadBot
#    RewriteRule ^.* - [F,L]
#</IfModule>

 添付ファイル     - [0]


 コメント追加