高速WebサーバNginxセキュリティ設定20

    後藤大地  [2010/03/09]

    The main aim is to document the hurdles that most of us face as UNIX/Linux/BSD sys admin in our day today life.

    WebアプリケーションのシェアはApache HTTP Web Serverが揺るぎない。Netcraftの報告によれば、1996年にApacheがWebサーバシェアのナンバーワンになってから14年間、 Apache HTTP Web Serverは常にナンバーワンシェアを誇るWebサーバであり続けている。しかし変化がないわけではない。軽量高速のWebサーバは常に注目を集める分野であり、ここ数年で「Nginx」がその土台を築きつつある。

    Nginxは軽量で高速なWebサーバ。リバースプロキシサーバ、メールプロキシサーバとしての機能も備えている。トラフィックが高いサイトでの採用事例が伸びており、まだシェアは5%から6%ほどと少ないものの、第3勢力としての地位を確かなものにしつつある。Top 20 Nginx WebServer Best Security Practicesにおいて、NginxをLinuxやUNIXライクOSでセキュアに運用するための20のセットアップテクニックが紹介されている。いくつかの設定はLinuxに固有のものだが、セキュリティに関する設定として役に立つ。紹介されているテクニックは次のとおり。

    デフォルト設定 内容
    設定ファイルディレクトリ /usr/local/nginx/conf/
    主要設定ファイル /usr/local/nginx/conf/nginx.conf
    ドキュメントディレクトリ /usr/local/nginx/html/
    ログファイルディレクトリ /usr/local/nginx/logs/
    HTTPポート TCP 80
    HTTPSポート TCP 443
    コマンド 内容
    nginx -t 設定ファイルの変更をテストする
    nginx -s reload 設定の変更を読み込み
    nginx -s stop サーバの停止
    Nginxセキュアセットアップテクニック 備考
    1. SELinux機能を有効にする 典型的には2%-8%ほどのオーバーヘッドが発生する
    2. nosuid、noexec、nodevなど権限を限定したパーティションをマウントし利用する
    3. /etc/sysctl.confでネットワーク設定を制御する
    4. 不要なモジュールはビルドしないように設定してからNginxをビルドして使う
    5. バックエンドにApacheを使っている場合にはApache側でmod_securityモジュールを利用してインジェクション攻撃に対処する
    6. Nginxに対応したSELinuxポリシーをインストールする
    7. ファイアウォールを設定する Iptablesの例を紹介
    8. バッファオーバーフロー攻撃対策を設定する
    9. 並列接続をNginxHttpLimitZoneモジュールを使って制御する
    10. 用意しているドメインへのアクセスのみを許可する
    11. 利用するメソッドを制限する RFC 2616で規程されているメソッド
    12. 特定のユーザエージェントからのアクセスやリファラースパムを拒否する
    13. イメージホットリンクを禁止する
    14. ディレクトリアクセスを制限する
    15. SSLを利用する
    16. PHPセキュリティ設定を適切に実施する
    17. 可能であればNginxをJailで実行する FreeBSD Jail、XEN、OpenVZなどが利用できる
    18. ファイアウォールレベルで接続を制限する Iptablesおよびpfの例を紹介
    19. ファイルパーミッションを適切なものへ設定する
    20. 外部への接続をファイアウォールレベルで制限する Iptablesの例を紹介
    +. ログファイルのモニタリングと監査サービスの活用 ボーナスティップ

    Top 20 Nginx WebServer Best Security Practicesでは具体的な設定ファイルの例やコマンドの例をあげながら説明されている。なお、システムに用意されているパッケージ管理システムからインストールした場合、設定ファイルディレクトリやドキュメントディレクトリのパスはそのOSの流儀に揃えられることになり、デフォルトのパスとはだいぶ異なる点に注意する必要がある。

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン