PeterMosmans.apache2

Rôle Ansible : Apache2

État de construction pour ce rôle : État de construction

Ce rôle installe et configure le serveur web Apache 2 sur des serveurs Debian et Ubuntu. L'objectif principal est de renforcer une installation Apache par défaut. Il modifie la configuration par défaut d'Apache et désactive ou active des modules spécifiques. En outre, il peut déployer des fichiers de configuration de site web, des certificats SSL et des clés privées correspondantes.

En définissant le flag apache2_php sur vrai, PHP sera également installé et configuré.

Notez que PHP ne sera pas supprimé ou désactivé en mettant le flag apache2_php sur faux. Cela peut être fait, par exemple, en ajoutant le module php à la liste apache2_modules_disabled.

Exigences

L'installation de ufw (le pare-feu sans complications, une interface pour iptables).

Variables du rôle

Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut.

apache2_default : Quand vrai, le site par défaut ne sera pas désactivé, et /var/www/html ne sera pas supprimé. S'il n'est pas spécifié ou faux, le site par défaut sera désactivé et /var/www/html sera supprimé.

apache2_default: false

Par défaut, la valeur n'est pas spécifiée.

apache2_modules_disabled : Une liste de modules Apache qui seront désactivés par défaut. Les valeurs par défaut peuvent être trouvées dans defaults/main.yml.

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

apache2_modules_enabled : Une liste de modules Apache qui seront activés par défaut. Les valeurs par défaut peuvent être trouvées dans defaults/main.yml.

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

apache2_php : Quand vrai, PHP sera également installé, y compris le module PHP pour Apache.

apache2_php: false

apache2_php_version : La version de PHP. La valeur par défaut peut être trouvée dans defaults/main.yml.

apache2_php_version: 7.0

Si PHP est installé, php.ini sera déployé dans /etc/php/[apache2_php_version]/apache2/php.ini. Ceci est un modèle qui utilise de nombreuses variables personnalisables. Les valeurs par défaut peuvent être trouvées dans 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 : Une liste sur laquelle Apache écoutera. Si cette variable n'est pas définie, le port 80 (et 443) sera utilisé. Exemple :

apache2_ports:
  - 80
  - 8000

apache2_security_conf : Une liste avec des paramètres security.conf qui seront appliqués par défaut. Les valeurs par défaut peuvent être trouvées dans 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 : Une liste optionnelle avec des fichiers de configuration Apache. Le src pointe vers le fichier Jinja2, le dest sera le fichier de configuration de site web résultant. Exemple :

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

Par défaut, la liste est vide.

ssl_certificates : Une liste optionnelle contenant l'emplacement (src) et le nom (name) des certificats SSL x.509. Veuillez noter que l'emplacement est relatif au sous-dossier apache2 role/files. Par exemple, si vous souhaitez inclure un certificat depuis un chemin de stockage sécurisé, vous devriez utiliser ce qui suit :

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

Par défaut, la liste est vide.

ssl_keys : Une liste optionnelle contenant l'emplacement (src) et le nom (name) des clés privées. Veuillez noter que l'emplacement est relatif au sous-dossier apache2 role/files. Par exemple, si vous souhaitez inclure une clé depuis un chemin de stockage sécurisé, vous devriez utiliser ce qui suit :

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

Par défaut, la liste est vide.

www_folder : Le dossier racine par défaut où les répertoires de site web sont stockés.

www_folder: /var/www

Veuillez noter que ce rôle ne modélise pas les configurations Apache - il copie des fichiers de configuration. En revanche, il modélise PHP.

Dépendances

Aucune.

Exemple de Playbook

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

Cet exemple installera et renforcera Apache.

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

Cet exemple installera et renforcera Apache, installera et renforcera PHP, déploiera le fichier mywebsite.conf depuis le dossier roles/apache2/files et activera le site web. Le site web par défaut sera désactivé, et /var/www/html sera supprimé.

Licence

GPLv3

Informations sur l'auteur

Créé par Peter Mosmans.

À propos du projet

Installs and hardens Apache2 (and PHP5).

Installer
ansible-galaxy install PeterMosmans.apache2
Licence
gpl-3.0
Téléchargements
280
Propriétaire
Lead pentester, security consultant, trainer