PeterMosmans.apache2

Ansibleロール: Apache2

このロールのビルドステータス: ビルドステータス

このロールは、DebianおよびUbuntuサーバーにApache 2ウェブサーバーをインストールおよび設定します。主な焦点は、デフォルトのApacheインストールの強化です。デフォルトのApache構成を変更し、特定のモジュールを無効化または有効化します。また、ウェブサイトの設定ファイル、SSL証明書、関連する秘密鍵をデプロイすることもできます。

apache2_php フラグをtrueに設定すると、PHPもインストールおよび設定されます。

ただし、apache2_php フラグをfalseに設定しても、PHPは削除または無効になりません。これは、phpモジュールをapache2_modules_disabled リストに追加することで行うことができます。

要件

ufw(単純なファイアウォール、iptablesのフロントエンド)のインストールが必要です。

ロールの変数

利用可能な変数は、下記にデフォルト値とともにリストされています。

apache2_default: trueの場合、デフォルトサイトは無効化されず/var/www/html削除されません。指定されていない場合やfalseの場合、デフォルトサイトは無効化され、/var/www/htmlは削除されます。

apache2_default: false

デフォルトでは、値は指定されていません。

apache2_modules_disabled: デフォルトで無効化されるApacheモジュールのリスト。デフォルトはdefaults/main.ymlにあります。

apache2_modules_disabled:
  - autoindex
  - authn_anon
  - cgi
  - dav
  - env
  - negotiation
  - setenvif
  - status
  - userdir

apache2_modules_enabled: デフォルトで有効化されるApacheモジュールのリスト。デフォルトはdefaults/main.ymlにあります。

apache2_modules_enabled:
  - alias
  - auth_digest
  - authz_host
  - deflate
  - dir
  - headers
  - reqtimeout
  - rewrite
  - ssl

apache2_php: trueの場合、PHPもインストールされ、Apache PHPモジュールが含まれます。

apache2_php: false

apache2_php_version: PHPのバージョン。デフォルトはdefaults/main.ymlにあります。

apache2_php_version: 7.0

PHPがインストールされると、php.ini/etc/php/[apache2_php_version]/apache2/php.iniにデプロイされます。これは多くのカスタマイズ可能なテンプレート変数を使用するテンプレートです。デフォルトはdefaults/main.ymlにあります。

apache2_php_allow_url_fopen: "Off"
apache2_php_allow_url_include: "Off"
apache2_php_assert_active: "0"
apache2_php_default_charset: "\"UTF-8\""
apache2_php_disable_functions: "fsockopen,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriorit,stream_socket_client"
apache2_php_display_errors: "Off"
apache2_php_display_startup_errors: "Off"
apache2_php_enable_dl: "Off"
apache2_php_expose_php: "Off"
apache2_php_log_errors: "On"
apache2_php_mail_add_x_header: "Off"
apache2_php_open_basedir: "/dev/urandom:/var/www"

apache2_ports: Apacheがリッスンするポートのリスト。この変数が定義されていない場合、ポート80(および443)が使用されます。例:

apache2_ports:
  - 80
  - 8000

apache2_security_conf: デフォルトで適用されるsecurity.conf設定のリスト。デフォルトはdefaults/main.ymlにあります。

apache2_security_conf:
  - name: "Header set X-Content-Type-Options:"
    value: "\"nosniff\""
  - name: "Header set X-Frame-Options:"
    value: "\"sameorigin\""
  - name: "ServerName"
    value: "{{ ansible_fqdn }}"
  - name: "ServerTokens"
    value: "Prod"
  - name: "ServerSignature"
    value: "Off"
  - name: "TraceEnable"
    value: "Off"

apache2_websites: オプションのApache設定ファイルのリスト。srcはJinja2ファイルを指し、destは作成されるウェブサイト設定ファイルになります。例:

apache2_websites:
  - src: mywebsited.conf.j2
    name: mywebsite.conf

デフォルトでは、リストは空です。

ssl_certificates: オプションのリストで、x.509 SSL証明書の場所(src)と名前(name)を含みます。場所はapache2 role/filesサブフォルダーからの相対パスです。例えば、セキュアなストレージパスから証明書を含めたい場合、次のようにします:

ssl_certificates:
  - src: /secure/storage/path
    name: www.mysite.com.cer

デフォルトでは、リストは空です。

ssl_keys: オプションのリストで、秘密鍵の場所(src)と名前(name)を含みます。場所はapache2 role/filesサブフォルダーからの相対パスです。例えば、セキュアなストレージパスから鍵を含めたい場合、次のようにします:

ssl_certificates:
  - src: /secure/storage/path
    name: www.mysite.com.key

デフォルトでは、リストは空です。

www_folder: ウェブサイトディレクトリが保存されるデフォルトのルート。

www_folder: /var/www

このロールはApache設定をテンプレート化しないことに注意してください - 設定ファイルをコピーします。ただし、PHPはテンプレート化します。

依存関係

なし。

例のプレイブック

- hosts: all
  become: yes
  become_method: sudo
  roles:
    - role: PeterMosmans.apache2

この例はApacheをインストールし、強化します。

- hosts: all
  become: yes
  become_method: sudo
  roles:
    - role: PeterMosmans.apache2
      apache2_websites:
      - src: .
        name: mywebsite.conf
  vars:
    apache2_php: true

この例はApacheをインストールし、強化し、PHPをインストールおよび強化し、roles/apache2/filesからmywebsite.confファイルをデプロイし、ウェブサイトを有効化します。デフォルトのウェブサイトは無効化され、/var/www/htmlは削除されます。

ライセンス

GPLv3

著者情報

作成者: Peter Mosmans。

プロジェクトについて

Installs and hardens Apache2 (and PHP5).

インストール
ansible-galaxy install PeterMosmans.apache2
ライセンス
gpl-3.0
ダウンロード
280
所有者
Lead pentester, security consultant, trainer