Lorsqu’on veut créer et mettre en ligne un site web, nous sommes confrontés à deux choix : déléguer ceci à une entreprise professionnelle, monnayant un budget souvent conséquent, soit le faire nous-mêmes. Pour créer ce portfolio, j’ai opté pour la seconde option (l’alternance ne rapporte pas assez hélas…). Je suis alors encore une fois tombé sur deux choix : le coder moi-même, en html, css, javascript et php, ou passer par un outil de création de site web. Le premier choix est assez laborieux, bien qu’avec les outils modernes (internet et les IA), coder son site est devenu relativement simple. Le coder, mais pas forcément le sécuriser, en revanche. La deuxième option, possède plusieurs avantages : une courbe d’apprentissage qui augmente plutôt vite comparé aux langages du web, et une sécurité de base assez robuste. Etant un peu perfectionniste, j’ai opté pour le second choix, après avoir passé un peu trop de temps à essayer d’aligner mes boutons en css…
Pour afficher ce site, je me suis donc appuyé sur WordPress, logiciel web qui permet à n’importe qui de faire un site rapidement et assez facilement. L’outil est assez compliqué à prendre en main mais, une fois qu’il est compris, les modifications et la création de contenu sont assez rapides.
Pour pouvoir mettre en ligne ce site et qu’il soit accessible à n’importe qui, il faut aussi le mettre en ligne. Cette fois, plutôt que passer par un hébergement web tout fait que proposent beaucoup d’entreprises, j’ai décidé de louer mon propre serveur virtuel dans le cloud, et de tout faire moi même.
A l’aide de différents documents trouvés sur internet, j’ai donc trouvé comment installer son serveur WordPress sur Ubuntu, distribution Linux de mon serveur. En effet, installer ce genre de services ne se fait pas en un claquement de doigts, et certaines étapes doivent être suivies dans l’ordre. Voici les différentes étapes que j’ai suivi pour pouvoir mettre en ligne ce site, et le sécuriser un minimum, sur Ubuntu :
- Installer les dépendances nécessaires au bon fonctionnement de WordPress, à savoir (entre autres) : apache2 (serveur web), mysql-server, php, ghostscript. Je les ai installées à l’aide de
apt install apache2 ghostscript mysql-server php
, apt étant le gestionnaire de paquets d’Ubuntu - Installation de WordPress : créer la directory où les fichiers prendront leur place, soit dans
/srv/www/
et donner les droits à l’utilisateur WordPress avecchown www-data: /srv/www
et on télécharge et extrait l’installeur aveccurl https://wordpress.org/latest.tar.gz | -u www-data tar zx -C /srv/data
. - On crée ensuite un site Apache pour l’instance WordPress en modifiant
/etc/apache2/sites-available/wordpress.conf
. On démarre le site :a2ensite wordpress
eta2enmod rewrite
pour autoriser les réécritures d’url. On supprime le site « default » d’Apachea2dissite 000-default
. On redémarre Apache pour charger les changements avecservice apache2 reload
. - Il faut aussi un peu faire de SQL, car WordPress a besoin d’un base de données où stocker ses données. on créée la base de données
CREATE DATABASE wordpress;
puis le user wordpressCREATE USER wordpress@localhost IDENTIFIED BY <mot de passe>;
et on lui alloue tous les droits sur la base de donnéesGRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
-> ON wordpress.*
-> TO wordpress@localhost;
- La configuration pour que WordPress aille se connecter à la base de données est un peu longue, il s’agit globalement de modifications dans le fichier de configurations de wordpress dans
/srv/www/wordpress/wp-config.php
. - En tapant l’IP du serveur dans la barre de recherche d’un navigateur, on tombe alors sur la page de connexion wordpress.
- Mais il reste encore quelques configurations du point de vue sécurité du serveur à faire notamment :
> changement de la configuration de SSH : changement du numéro de port, authentification par clé ssh uniquement (désactivation de l’authentification par mot de passe)
> installation d’un pare feu (UFW pour ma part), blocage de tous les ports saufs : le port SSH, le port 80 (pour HTTP) et 443 (pour HTTPS).
> installation de certificats SSL pour passer le site en HTTPS (avec Let’s Encrypt) et configuration dans WordPress.
> installation de fail2ban pour bannir les IP de potentiels hackeurs ou robots qui essaient de se connecter par bruteforce.
Une autre configuration à faire aussi est le DNS. En effet, nous utilisons des URL et il faut donc un nom de domaine si l’on veut que le site soit répertorié sur les moteurs de recherche. Il faut donc créer, dans la configuration DNS de son hébergeur de nom de domaine, une nouvelle règle DNS de type A, avec le domaine / sous domaine associé (portfolio.bbarfry.fr par exemple) et l’IP cible.
Avec ces configurations, WordPress est maintenant prêt à être utilisé pour créer un site. Si vous lisez ceci, c’est que normalement la configuration est bonne, et que la sécurité a tenu.
