Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
86
Help us understand the problem. What is going on with this article?
@shojimotio

AWSのApache2.4の初期設定とセキュリティ設定

More than 1 year has passed since last update.

 最初にする設定 httpd.conf, welcome.conf

設定が無い物は追記して、既存にあるものは変更する。又はコメントアウトして無効化する。

  • ServerAdminにemailを設定する。
  • ServerNameを設定する。
  • クロスサイトトレーシング対策(Basic認証のパスが漏れないようにする。)
  • トップページにディレクトリ一覧が表示する事を防ぐ
  • CGI を使ってない場合は、/cgi-bin/のエイリアス設定を無効にする。設定をコメントアウトする
  • SSI(サーバサイドインクルード)の使用を無効にする(デフォルトで無効なので特に記述追加は無し)
httpd.conf
# 変更 サーバー管理者への問い合わせ先メールアドレスに変更する
ServerAdmin webmaster@example.jp

# 変更 ドメインと合わせる。
ServerName hogehoge@example.com:80

# 追加 クロスサイトトレーシング対策 TRACE無効化
TraceEnable Off 

<Directory "/var/www/html">

    # 変更 -Indexesとしてトップページにディレクトリ一覧が表示する事を防ぐ
    Options -Indexes FollowSymLinks

・・・省略・・・

# コメントアウト cgi-binを使用しない
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 

#<Directory "/var/www/cgi-bin">
#    AllowOverride None
#    Options None
#    Order allow,deny
#    Allow from all
#</Directory>
  • アパッチのトップページ(テストページ)を非表示にする。welcome.confの中身をコメントアウト
conf.d/welcome.conf
# コメントアウト テストページを非表示にする
#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /error/noindex.html
#</LocationMatch>

共通セキュリティ security.conf

  • レスポンスヘッダ Server Apache/2.4.12 (Amazon)とかfullで出さない。
  • レスポンスヘッダ X-Powered-By PHP/5.3.29とか出さない。
  • 脆弱性のあるsslプロトコルのsslv3を無効にする。
  • .htaccessを許可したいディレクトリは個別に設定する。
  • v2.4はデフォルトでServerSignature Off
conf.d/security.conf
# Hide Apache Version
ServerTokens Prod

# Hide Header X-Powered-By
Header always unset X-Powered-By

# Anti POODLE
SSLProtocol All -SSLv3

# .htaccessファイルを許可するディレクトリを個別に指定します。
<Directory /var/www/html/hogehoge>

AllowOverride All
</Directory>

AWS ロードバランサーにぶら下がっている場合 aws_elb.conf

  • 408ログがELBから多発する時の設定を入れる。 コネクションタイムアウトデフォルト60秒なので、RequestReadTimeout headerをそれより大きく設定する
  • アクセスログにELBのIPが出てしまうのでアクセス元のIPが表示されるログフォーマットを作成
conf.d/aws_elb.conf
# Set over AWS ELB connection time out default 60s
RequestReadTimeout header=70

# ELB access_log format
LogFormat "%h %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" elbcombined

最後に

自分の技術ブログではフリーランス界隈の情報や最新のIT情報の発信していますので、よろしくお願いします。

86
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
shojimotio
自分はプログラム歴13年、札幌でフリーランスになって後数日で4期目になるエンジニアです。 今はゲーム系の案件でGCPでインフラ構築と、PHPプログラムでサーバーサイドプログラムミングをしています。 Twitterで日々の為になる技術情報やフリーランスについての有益な情報発信しています。 またブログではフリーランスのお役立ち情報や最新のIT情報の発信を続けています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
86
Help us understand the problem. What is going on with this article?