Site Web (LAMP) et installation de ProFTPD

Site Web (LAMP) et installation de ProFTPD

« Notamax, comme de plus en plus de sociĂ©tĂ©s aujourd’hui, avait besoin d’un site web. Quelque chose leur permettant de tenir leur clients informĂ©s des nouveautĂ©s, des changements, ainsi que leur permettre de toucher plus de personnes. »

Les attentes

RĂ©aliser un site web sĂ©curisĂ© et simple permettant de publier des articles et des vidĂ©os. L’utilisation d’un CMS semble de rigueur pour la rapiditĂ© de crĂ©ation et d’édition d’articles, la gestion de membres et autre.

La partie technique

  • Linux Debian 9.3 Stretch
  • Apache2
  • MariaDB
  • PHP
  • CMS WordPress
  • ProFTPD

Configuration

1) TĂ©lĂ©chargement et installation d’Apache, MariaDB, et PHP

Rien de trÚs compliqué ici:

sudo apt-get install apache2 mysql-server mysql-client mysql-common php php-mysql

 

2) Création de la base de données

Ici on créer donc une base de données nommée site_web, puis on créer un utilisateur du nom de wordpress et enfin on lui donne les accÚs:

sudo mysql -u root -p
create database site_web;
create user wordpress@localhost identified by 'P@ssword';
grant all privileges on site_web.* to wordpress@localhost;
exit

3) Installation et configuration du serveur FTP ProFTPD

Pour l’installer:

sudo apt-get install proftpd

Pour configurer le serveur (comme changer le nom ou le port utilisé par exemple) :

nano /etc/proftpd/proftpd.conf

Encore une fois, par mesure de sĂ©curitĂ©, il convient de dĂ©-commenter la ligne ‘DefaultRoot’ pour chrooter les users dans leur home et rajouter une ligne ‘RootLogin on’ pour autoriser le login ftp en root (Ă  ne pas effectuer en prod bien entendu).

Ensuite, un simple nano /etc/ftpusers pour supprimer l’utilisateur root et donc permettre sa connexion.

4) Téléchargement et installation de WordPress

Un simple wget puis on extrait l’archive et on la dĂ©place dans le dossier appropriĂ©:

wget https://fr.wordpress.org/wordpress-4.8.1-fr_FR.tar.gz
tar zxvf wordpress-4.8.1-fr_FR.tar.gz
sudo rm -R /var/www/html/
sudo mv wordpress /var/www/html

(Ou bien uploader le contenu du zip via FTP, dans /var/www/html/)

5) Configuration de WordPress

On dĂ©marre donc notre navigateur et nous nous rendons sur l’adresse de notre serveur, puis il nous suffit de suivre la procĂ©dure, faire les mises Ă  jours du CMS, installer des modules de sĂ©curitĂ©, un thĂšme, et au passage modifier les permaliens.

(Modifier le fichier apache2.conf pour rĂ©soudre l’erreur 404 des permaliens).

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Ne pas oublier d’activer la rĂ©-Ă©criture d’URL via le module Apache:

a2enmod rewrite

6) Changement du port SSH

Pour se prémunir des attaques de bots, il est important de changer le port SSH par défaut.

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.save
nano /etc/ssh/sshd_config

Modifiez le port d’Ă©coute en 2222 au lieu de 22 par exemple.

7) CrĂ©ation d’un pare-feu Iptables:

Par mesures de sĂ©curitĂ©, j’ai dĂ©cidĂ© de crĂ©er un script ip-tables servant de pare-feu, et se lançant Ă  chaque dĂ©marrage du serveur. Un exemple basique est disponible Ă  cette adresse.

Pour résumer

Cet article n’est pas Ă©normĂ©ment dĂ©taillĂ©, je n’ai pas abordĂ© la configuration de l’outil Fail2Ban (un indispensable pour la sĂ©curitĂ© de votre serveur…) ainsi que la liaison de votre nom de domaine Ă  votre site, le passage en HTTPS via Let’s Encrypt, etc. Cela fera sĂ»rement l’objet d’autre articles*.

Je ferais Ă©ventuellement un article entier dĂ©diĂ© Ă  la sĂ©curisation d’Apache2 et de WordPress, car il y a Ă©normĂ©ment de matiĂšre. Cependant, je me suis dis que certaines options de sĂ©curitĂ© doivent quand mĂȘme ĂȘtre dĂ©crites ici, histoire de ne pas se retrouver piratĂ© quelque heures aprĂšs avoir rĂ©alisĂ© son premier site web 🙂.

*Il s’avĂšre que j’ai rĂ©cemment rĂ©digĂ© un nouvel article parlant de WordPress, son installation se passe sur NGINX mais est bien plus dĂ©taillĂ©, notamment la partie sĂ©curitĂ©. Pour les curieux, il se trouve ici. 

You May Have Missed