LoginSignup
11
15

More than 3 years have passed since last update.

個人的Apacheのセキュリティを考慮した設定

Last updated at Posted at 2019-10-09

個人的にApacheのセキュリティを考慮した設定を記載します。

iconsディレクトリ対策

デフォルトコンテンツで使う画像などが設置されているディレクトリについて、コンテンツ表示を無効化する。

autoindex.confの修正

vi /etc/httpd/conf.d/autoindex.conf
※以下の箇所をコメントアウト。

#Alias /icons/ "/usr/share/httpd/icons/"

#<Directory "/usr/share/httpd/icons">
#    Options Indexes MultiViews FollowSymlinks
#    AllowOverride None
#    Require all granted
#</Directory>

welcome.conf削除

非表示でもいいと思いますが、公開不要なものなので削除。

rm -f /etc/httpd/conf.d/welcome.conf

security.conf作成

vi /etc/httpd/conf.d/security.conf
※以下記載。

# バージョン情報の隠蔽
ServerTokens Prod
ServerSignature Off

# inode情報の隠蔽
FileETag None

# レスポンスヘッダからX-Powered-Byを削除
Header unset X-Powered-By

# httpoxy 対策
RequestHeader unset Proxy

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

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

# XST対策
TraceEnable Off

<Directory /var/www/html>
   # .htaccess の有効化
   AllowOverride All
   # ファイル一覧出力の禁止
   Options -Indexes
</Directory>

クライアントから送信されるHTTPリクエストに関する設定

数値はあくまで例です。LimitRequestFieldSize が4096だと、
長いCookieコンテンツを送信した場合、Bad Requestが発生することもあります。
ただCookieの長さの上限をあまり大きくしないほうがセキュアです。

# リクエストボディの最大サイズ
LimitRequestBody 655360000
# リクエストヘッダーの最大数
LimitRequestFields 32
# リクエストヘッダーの最大サイズ
LimitRequestFieldSize 4096
# リクエストラインの最大サイズ(各リクエストの最初のライン)
LimitRequestLine 4096

ダミーのVirtual Hostを設定

 IPアドレスや意図しない逆引きアドレスからアクセスされないよう、最初ダミーのVirtualHostを設定します(↓はexample.comというドメイン名の場合)。この設定をしてログを確認すると、どれだけ不審な送信元IPからアクセスを受けているかわかります。

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName dummy.example.com # 適当な名前でよい

    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com # 実際に使用しているドメイン
    ...
</VirtualHost>
11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15