Dedibox : installation d’un serveur LAMP sur CentOS 7
Il m’a fallu une bonne matinée pour tout réinstaller mon infrastructure LAMP sur une Linux CentOS 7. J’ai abandonné la Fedora qui n’est plus disponible sur les Dedibox.
La checklist pour Dedibox
- 3 partitions : 200 Mo pour /boot ;16384 Mo pour le / ; 1024Mo pour le swap ; le reste pour /home
- après installation, changement du mot de passe root et destruction du compte utilisateur créé lors de la l’installation de la machine via les commandes passwd et userdel
- installation de mc (yum install mc)
- changement du port du service sshd afin d’éviter les attaques en force brute (attention à changer le port dans le pare-feu ou à couper le pare-feu firewalld temporairement en attendant iptables)
- génération des clés SSH : clé privée .ppk sur le poste de travail et clé publique copiée dans le fichier ~/.ssh/authorized_keys ; interdiction de connexion par mot de passe (PasswordAuthentication -> no dans /etc/ssh/sshd_config)
- installation de yum-priorities (yum install yum-priorities)
- ajout des dépôts ELRepo, EPEL et RPMForge et gestion de la priorité dans les fichiers .repo avec le paramètre priority
- installation de unbound, un cache DNS très performant
- installation, configuration de Awstats et gestion des accès par un fichier .htaccess et .htpasswd dans /usr/share/awstats/wwwroot/cgi-bin
- minimisation des services via la commande systemctl (systemctl disable chronyd par exemple)
- activation via systemctl du service ntpd et configuration sur les serveurs français (0.fr.pool.ntp.org, etc)
- installation et configuration de iptables en service via yum install iptables-services
- installation de mariadb (yum install mariadb-server) et configuration des réglages dans le fichier /etc/my.cnf
- création d’un lien symbolique /var/lib/mysql sur le répertoire /home/mysql (ln -s /home/mysql /var/lib/mysql), après avoir renommé le répertoire /var/lib/mysql en /var/lib/mysql.old (mv /var/lib/mysql /var/lib/mysql.old)
- installation de Apache et du module ssl (yum install httpd mod_ssl)
- déplacement de l’emplacement des logs d’Apache contenus dans /var/log/httpd vers /home/log/httpd et création d’un lien symbolique
- désactivation de modules Apache au niveau du fichier /etc/httpd/conf.d/00-base.conf
- création des certificats autosignés et des clés avec la commande openssl, copiés respectivement dans /etc/pki/tls/certs et /etc/pki/tls/private
- gestion des droits sur le dossier /home/www qui abrite l’ensemble des sites Web du serveur
- configuration d’Apache et mise en place du module mod_cache_socache adossé à Memcache
- installation de php (yum install php php-gd php-mbstring php-mysql php-xcache)
- configuration des fichiers /etc/php.ini (directives date.timezone et memory_limit) et du fichier /etc/php.d/xcache.ini
- installation du serveur ftp pure-ftpd que j’ai préféré à vsftpd
- mise en œuvre d’IPv6 en suivant les préconisations faites par online.net
Ce que je ne ferai pas
- Installer Fail2ban : je suis revenu à une gestion de l’erreur 403 par redirection sur une page statique
- Installer Firewalld
Des billets en préparation
- configuration de mariadb
- configuration d’apache et notamment sur le module mod_cache_socache utilisé avec le démon memcached
- configuration d’IPv6 sur une Dedibox CentOS 7 (c’est vraiment du sport !!!)
- configuration de pure-ftpd en mode anonyme
- mise en œuvre de php-fpm
LAMP / Apache, Awstats, Centos, Dedibox, Dns, Firewall, Formateur Apache, Formateur Awstats, Formateur Centos, Formateur Iptables, Formateur LAMP, Formateur Linux, Formateur MariaDB, Formateur MySQL, Formateur SSH, Iptables, ipv6, Lamp, Linux, MariaDB, Memcache, MySQL, Ntp, OpenSSL, Pare-feu, php, SSH, SSL, Unbound