httpd

httpdのセキュリティ対策を施す[設定編]

httpdのセキュリティ対策を施す[調査編]に引き続き、
今回は設定をサーバに対して行ないます。
まずは、今回の設定を記載しておきます。
手っ取り早く設定をしたい人は、コピペで設定を反映しましょう。

まずは設定

# vim /etc/httpd/conf.d/secure.conf
ServerTokens Prod
Header unset "X-Powered-By"
RequestHeader unset Proxy
Header append X-Frame-Options SAMEORIGIN
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
TraceEnable Off
<Directory /var/www/html>
    AllowOverride All
    Options -Indexes
</Directory>

設定が完了したら、サービスを再起動して動いていることを確認しましょう。

# systemctl restart httpd
# systemctl status httpd

取り急ぎ設定が適用できたら、httpdの基本的な対策は完了です。

設定の解説

ServerTokens Prod

Prod 以外にするとバージョン番号などが出てしまうため、この設定にしています。
もしバージョン番号が分かってしまうと、脆弱性のあるバージョンかどうかを
アクセスした人が調査できてしまいます。
攻撃者なら、簡単に攻撃コードを持ってきて悪用すると思います。

Header unset "X-Powered-By"

curlコマンドなどでヘッダを見えるようにするとよく分かりますが、
X-Powered-Byというヘッダがレスポンスに標準で出てきます。
例えば、「X-Powered-By: PHP/7.x.xx」みたいな出力が出るため
PHPバージョンが古いと判明したら、攻撃のチャンスと思われるでしょう。

RequestHeader unset Proxy

httproxyの脆弱性に対応するための設定値となります。
どうやらProxyヘッダを勝手にHTTP_PROXYへ変換するようですね。

Header append X-Frame-Options SAMEORIGIN

この設定は、クリックジャッキングという脆弱性の対策として有用です。
この脆弱性は簡単に言うと「偽物のボタン」を利用者にクリックさせることが可能になる
というものです。恐ろしいですね。
「私は●●に住んでます」みたいな個人情報が勝手にSNSへ投稿される
といったことが考えられる脆弱性です。

Header set X-XSS-Protection "1; mode=block"

XSSを検知すると、ブラウザで描画を止める設定です。
XSSはHTMLと解釈できる文字列が原因で発生する脆弱性のため、
それを描画しなければいいや、という考えのもとで設定を行います。
これをX-XSS-Protection "0"
としてしまうと全く検知されなくなります。
気をつけましょう。

Header set X-Content-Type-Options nosniff

最近ではJSONPでの通信も行われるようになり、
場合によってはJavascriptと解釈されてしまうため
必須の設定値になりました。
昔はIEだけのヘッダだと思われていいたようですが、
最近は通用しないです。

TraceEnable Off

この設定値はTraceメソッドを無効にするというものです。
HTTPリクエストが全てレスポンスとして表示されるメソッドのため、
一昔前は問題視されていました。
ただ、最近ではブラウザ側でそもそも対策が取られているようなので、
利用者のバージョンが古くないと言うのであれば、
多少目を瞑っても良いかも。

AllowOverride All

.htaccessに関する設定が可能です。
Allにすることで.htaccessで設定可能なものが全て有効になります

Options -Indexes

指定したパスにコンテンツが存在せず、
ディレクトリが存在する場合標準ではディレクトリ一覧が出ます。
その出力を抑制する設定になります。

追加で実行すべきコマンド

# echo "" > /etc/httpd/conf.d/autoindex.conf
# echo "" > /etc/httpd/conf.d/welcome.conf

上記は、httpdインストール後に自動生成される
ファイルの中身を削除するコマンドです。
httpdのインストール直後は
コンフィグファイルに色々な情報が記載されています。
もしそのままにすると
特定のパスへアクセスすることで
「初期設定のまま放置されている」ということが分かってしまいます。
攻撃者の観点で言えば、
調査ツールを仕掛けておく → 攻撃できる弱点が無いかもっと調べる
という2段階目に突入することとなるわけです。
サーバにその他の弱点が無くても、
今後しつこく狙われる可能性があるので
早めに今回の記事にある設定しておきましょう。

-httpd
-, ,

© 2020 サーバ構築.net Powered by AFFINGER5