Ubuntu環境、Apacheの鉄板セキュリティ設定。
security.confの上書き。
参考記事
Apacheでは概ねこれをやっておけば間違いないというセキュリティ設定がある。
ネットに転がってる記事だけだと、Ubuntu環境ではもうひと手間必要だったので一応メモ。
security.confを上書き
Ubuntu環境でaptを使いApacheをインストールした場合、他Linux環境のようなhttpdファイルやディレクトリが存在しない。
Ubuntuでのセキュリティの設定は
/etc/apache2/conf-available/security.conf
で設定する。
下はsecurity.confの初期状態。
# Changing the following options will not really affect the security of the
# server, but might make attacks slightly more difficult in some cases.
#
# ServerTokens
# This directive configures what you return as the Server HTTP response
# Header. The default is 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of: Full | OS | Minimal | Minor | Major | Prod
# where Full conveys the most information, and Prod the least.
#ServerTokens Minimal
ServerTokens
OS
#ServerTokens Full
#
# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory
# listings, mod_status and mod_info output etc., but not CGI generated
# documents or custom error documents).
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
# Set to one of: On | Off | EMail
#ServerSignature Off
ServerSignature
On
#
# Allow TRACE method
#
# Set to "extended" to also reflect the request body (only for testing and
# diagnostic purposes).
#
# Set to one of: On | Off | extended
TraceEnable
Off
#TraceEnable On
ServerTokens, ServerSignature, TraceEnableを修正していく。
ServerTokens関係を全て#でコメントアウトした上で、下のコード群を書き込む。
#ServerTokens Minimal
#ServerTokens OS
#ServerTokens Full
# バージョン情報の隠蔽
ServerTokens
Prod
Header
always
unset
"X-Powered-By"
# httpoxy 対策
RequestHeader
unset
Proxy
# クリックジャッキング対策
Header
always
set
X-Frame-Options
"SAMEORIGIN"
# XSS対策
Header
always
set
X-XSS-Protection
"1;
mode=block"
Header
always
set
X-Content-Type-Options
"nosniff"
# DoS 攻撃対策
LimitRequestBody
10485760
LimitRequestFields
50
# slowloris 対策
RequestReadTimeout
header=20-40,MinRate=500
body=20,MinRate=500
<Directory
[アクセス制限したいディレクトリのpath]
>
# .htaccess の有効化
AllowOverride
All
# ファイル一覧出力の禁止
Options
-Indexes
# HTTPメソッドの制限
Require
method
GET
POST
</Directory>
[アクセス制限したいディレクトリのpath]
は、Apacheのみでサイトを運営してるなら多分
/var/www/html
辺りになると思う。
自分の場合
リバースプロキシ
でTomcatと連携してるので、TomcatのwebappsへのPathを指定している。
備考として、
Header always set X-Frame-Options "SAMEORIGIN"
を設定すると外部からiframe設定でリンクを貼れなくなるらしい。
自分のサイトでは全く問題ないので記述しておいた。
ServerSignatureはOnをOffに変えるだけ。
#エラー画面に表示されるApacheのバージョン情報等を表示しない
ServerSignature
Off
#ServerSignature On
TraceEnableもOnをOffに変えるだけ。
# XST対策
TraceEnable
Off
#TraceEnable On
Headerコードを有効化
ServerTokens付近の設定で
Header
というコードを多用したが、あれは実はUbuntuの初期状態では使用できない。
変更したsecurity.confを保存し、下のコードでApacheの文法チェックをしてみる。
すると下のようなエラー文が出る。
Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
このエラーを回避するには、下のコードを打ち込んでHeaderのコードを有効化する必要がある。
この後にApahceをリスタートすればセキュリティ設定はOK。
sudo service apache2 restart
0
0