Outils pour utilisateurs

Outils du site


lamp

LAMP

Pré-requis

Installer les paquets apache :

apt-get install apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php

Installer les paquets php:

apt-get install php php-common php-curl php-intl php-mbstring php-mysql php-gd php-imagick php-xml php-simplexml php-cli php-zip php-apcu unzip

Installer les paquets MariaDB :

apt install mariadb-client mariadb-server

Modules Apache2

Afficher les modules chargés :

apachectl -t -D DUMP_MODULES

Activer les modules indispensables :

a2enmod ssl
a2enmod headers
a2enmod rewrite

APCU (gestion du cache)

Editer le fichier de configuration apcu.ini :

vi /etc/php/8.x/mods-available/apcu.ini

En fin de fichier, ajouter la ligne suivante :

apc.enable_cli=1

PHP

Editer le fichier de configuration PHP :

vi /etc/php/8.x/apache2/php.ini

Modifier les valeurs suivantes :

post_max_size = 500M
upload_max_filesize = 500M
max_file_uploads = 20

Virtualhost

Exemple :

<VirtualHost mon.site.fr:443>
 
ServerAdmin mail_admin@domain.fr
ServerName mon.site.fr
 
DocumentRoot /var/www/site
SSLEngine on
SSLCertificateFile /etc/ssl/site.pem
SSLCertificateKeyFile /etc/ssl/site.key
 
ErrorLog ${APACHE_LOG_DIR}/error.site.log
CustomLog ${APACHE_LOG_DIR}/access.site.log combined
 
<Directory /var/www/site/>
Options -Indexes +FollowSymLinks
AllowOverride None
</Directory>
 
</VirtualHost>

Activer un site :

a2ensite site.conf

Désactiver :

a2dissite site.conf

Désactiver ipv6

Editer le fichier ports.conf :

vi /etc/apache2/ports.conf

Modifier comme dans l'exemple suivant :

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
 
Listen 0.0.0.0:80
 
<IfModule ssl_module>
Listen 0.0.0.0:443
</IfModule>
 
<IfModule mod_gnutls.c>
Listen 0.0.0.0:443
</IfModule>
 
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Certificats

Installer les paquets suivants :

apt install certbot python3-certbot-apache -y

Commande pour générer des certificats Let's Encrypt :

certbot --apache

Sécurité

Masquer version Apache2

Pour empêcher Apache d'envoyer trop infos au navigateur, éditer :

vi /etc/apache2/conf-available/security.conf

Rentrer les valeurs suivantes :

ServerTokens Prod
...
ServerSignature Off

Permissions des fichiers

  • Modifier/Vérifier les droits du répertoire /var/www/ :
chown -R www-data:www-data /var/www/
chmod -R 755 /var/www/
  • Interdire l’accès aux fichiers sensibles dans le fichier virtualhost - ajouter après </Directory> :
<FilesMatch "\.(htaccess|htpasswd|ini|log|conf)$">
Require all denied
</FilesMatch>

ModSecurity (WAF pour Apache)

  • Installer le mod security :
apt install libapache2-mod-security2
a2enmod security2
systemctl restart apache2
  • Copier le fichier modèle de configuration :
cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
  • Activer le module dans le fichier :
vi /etc/modsecurity/modsecurity.conf
 
puis
 
SecRuleEngine On
  • Voir les logs :
tail -f /var/log/apache2/modsec_audit.log

mod_evasive (protection contre DoS)

apt install libapache2-mod-evasive
a2enmod evasive
systemctl restart apache2
lamp.txt · Dernière modification : de Gerald F