-
Notifications
You must be signed in to change notification settings - Fork 0
Sécurisation
Pour la génération de notre certificat SSL nous avons utilisés Let’s Encrypt qui permet de le faire gratuitement et facilement grâce à son logiciel Certbot qui automatise la plupart des étapes requises.
1. sudo apt install certbot python3-certbot-nginx # Installation de Certbot
2. sudo nano /etc/nginx/sites-available/example.com # Vérifier le fichier de configuration
3. sudo certbot --nginx -d checkpcs.com -d www.checkpcs.com # Obtenir le certificat SSL
4. sudo systemctl status certbot.timer # Vérifier l'auto-renouvellement
Nous avons également installer des Honeypots (pot de miel) pour la sécurisation de nos formulaires, cela permet d'éviter les "spambots". Concrètement, cela consiste à mettre des inputs non utilisés dans le formulaire et lors de la soumissions de ce dernier cela vérifie si ils sont bien vides.
Finalement, afin de sécuriser au mieux nos formulaires nous décidés d'utiliser les Recaptchas de Google via le module ReCAPTCHA de React.
1. Génération d'une pair de clé Recaptcha qui sera liée à notre site internet via ce [site](https://www.google.com/recaptcha/admin/create).
2. Il faut ensuite installer et importer dans notre fichier le module Recaptcha de React.
3. Finalement, il suffit de créer un composant <ReCaptcha/> qui contiendra la clé ainsi que différent paramètre tels que render qui permet de dire si la captcha est explicite ou non.
En ce qui concerne la sécurisation du VPS nous avons tout d'abord installer un Fail2Ban ce qui permet d'éviter que quelqu'un essaye de pénétrer le système en essayant une multitude de mot de passe jusqu'à trouver le bon.
- Installation du package
Fail2Ban. - Copie du fichier de configuration appelé "jail.conf" qui permet de définir par exemple le temps du bannissement mais également le nombre de tentative consécutive avant d'être bannis.
apt-get install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Après cela le
Fail2Banest bien installé mais deux commandes sont très importante à retenir.
sudo fail2ban-client status sshd ==> Voir la listes des adresses ip bannies
sudo fail2ban-client set sshd unbanip [...] ==> Unban une ip bannie
Nous avons ensuite configurer un FireWall grâce au logiciel "iptables" qui nous permis de fermer tout les ports non utilisés et de laisser ouvert que ceux dont on a besoin.
iptables -A INPUT -p tcp --destination-port 80 -j DROP ==> Fermer le port 80
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT ==> Ouvrir le port 80
Nous avons changer le mot de passe de l'utilisateur debian afin d'augmenter la sécurité de notre VPS.
passwd
[Entrer l'ancien mot de passe]
[Entrer le nouveau mot de passe]
[Re rentrer le nouveau mot de passe]
Nous avons changer le port du SSH afin qu'il ne soit pas la valeur par default (soit 22)
nano /etc/ssh/sshd.conf
[Modifier la ligne PORT ...]
[Sauvegarder]
systemctl restart sshd
Pour ce qui est de la sécurisation de la base de données nous avons tout d'abord créer un USER qui ne possède que les doits dont il a besoin et pour cela nous avons effectués les commandes suivantes.
CREATE USER 'user'@localhost IDENTIFIED BY 'password';
GRANT PRIVILEGES ON 'yourDB'.* TO 'user'@localhost;
Liste des privilèges :
| PRIVILEGE | Description |
|---|---|
| SELECT | Faire des sélection dans les tables |
| INSERT | Ajouter des données dans les tables |
| UPDATE | Modifier des données dans les tables |
| DELETE | Supprimer des données dans les tables |
| CREATE | Créer une nouvelle table |
| ALTER | Modifier une table |
| DROP | Supprimer une table |
| ALL | Donner tout les droits |
Pour la sécurité des mots de passe nous utilisons le module bcrypt de NodeJS afin de hasher nos mots de passe dans la base de données.
Voici un exemple d'utilisation
bcrypt.hash("password", salt, (err, hash) => {
console.log(salt + hash)
});
# letsencrypte pour le server OVH
// salt est le temps que le hashage va prendre pour se faire