Pour ce tutoriel nous partirons d’une installation de Debian 9 minimale. Nous installerons un serveur web apache couplé avec PHP ainsi qu’un serveur de base de données MariaDB. Afin d’éviter les attaques les plus basiques, nous ajouterons fail2ban.
Avant de commencer on met à jour le système, tout le tutoriel sera à effectuer en root.
apt update apt upgrade -y
Apache & PHP
On installe les paquets et on active ssl
apt install apache2 php -y a2enmod ssl a2ensite default-ssl service apache2 restart
Pour ajouter un site, on crée un fichier dans /etc/apache2/sites-available. Ce fichier est minimal est n’est absolument pas utilisable en production, il faudra ajouter la gestion des logs et différents éléments liés à la sécurité.
monsite.com.conf
‹VirtualHost *:80› DocumentRoot /var/www/monsite.com ServerName www.monsite.com ‹/VirtualHost›
Pour l’activer on fera un lien symbolique vers /etc/apache2/sites-enabled.
ln -s /etc/apache2/sites-available/monsite.com.conf /etc/apache2/sites-enabled/monsite.com.conf
On recharge Apache
service apache2 reload
MariaDB
Nous allons installer MariaDB, la librairie pour effectuer la liaison avec PHP et PHPMyAdmin pour effectuer les taches d’administration. Lors de la configuration automatique de PHPMyAdmin, choisir apache2 (touche espace pour cocher/décocher) et le mode de configuration automatique. Valider la configuration avec dbconfig-common. Laisser vide le choix du mot de passe.
apt install mariadb-server php-mysql phpmyadmin
Votre serveur est maintenant opérationnel, accessible par son IP. PHPMyadmin peut être utilisé à l’adresse https://ip/phpmyadmin.
Fail2ban
apt install fail2ban
Ouvrir le fichier /etc/fail2ban/jail.conf et modifier les différentes sections liées à apache
[apache-auth] enabled = true [apache-badbots] enabled = true [apache-noscript] enabled = true [apache-overflows] enabled = true [apache-nohome] enabled = true [apache-botsearch] enabled = true [apache-fakegooglebot] enabled = true [apache-modsecurity] enabled = true [apache-shellshock] enabled = true
On redémarre fail2ban.
service fail2ban restart