lamp
Table des matières
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
