Utiliser une IP dynamique pour NGINX et UFW

//Utiliser une IP dynamique pour NGINX et UFW
1/52/53/54/55/5 (Pas encore de note)
Loading...

Utiliser une IP dynamique pour NGINX et UFW

Bonjour à tous,

Aujourd’hui on va voir comment autoriser l’accès à certaines ressources uniquement depuis son IP dynamique depuis NGINX et UFW.

Et vu que les IPV4 fixes sont encore un luxe pour les connexions des particuliers, on va voir comment gérer tout ça avec des adresses IP dynamiques 🙂

 

Configuration de NGINX :

Ici on va prendre l’exemple du blog et donc d’un site WordPress.

L’idée va être d’interdire l’accès aux ressources critiques en se laissant tout de même un accès privilégié.

 

Ouvrez votre vhost :

nano /etc/nginx/sites-enabled/abyssproject.vhost

 

Et ajoutez les lignes suivantes :

 

        location /wp-admin {
            allow 1.2.3.4;
            deny all;
        }

        location /xmlrpc.php {
            allow 1.2.3.4;
            deny all;
        }

 

Remplacez 1.2.3.4 par votre adresse IPV4 publique actuelle.

Le vhost complet est disponible ici : https://github.com/stylersnico/my-webserver/blob/master/etc/nginx/sites-enabled/abyssproject.vhost

 

Testez la configuration de NGINX avec la commande suivante :

nginx -t

 

Et si aucune erreur ne ressort, redémarrez :

systemctl restart nginx

 

Un visiteur qui ne se connecte pas depuis une adresse ip autorisée verra ceci :

 

 

Configuration de UFW :

On en a déjà parlé plusieurs fois sur le blog, mais, on va reprendre depuis le début pour que ça soit clair dans le cas d’un serveur web.

Installez UFW avec la commande suivante :

apt-get install ufw -y

 

Si vous utilisez IPV6 sur votre serveur, éditez le fichier suivant :

nano /etc/default/ufw

 

Et vérifiez que la ligne IPV6 est bien sur Yes :

IPV6=yes

 

Ensuite, désactivez le pare-feu :

ufw disable

 

Autorisez toutes les connexions sortantes et refusez toutes les connexions entrantes :

ufw default deny incoming
ufw default allow outgoing

 

 

Ouvrez déjà les ports nécessaires pour votre serveur web, à savoir les ports par défaut pour le HTTP et le HTTPS :

ufw allow 80
ufw allow 443

 

Maintenant, ouvrez le port 22 depuis votre adresse IP uniquement :

ufw allow from 1.2.3.4 to any port 22

 

Et activez enfin UFW :

ufw enable

 

Mise à jour de l’adresse IP automatiquement :

J’ai légèrement modifié un script trouvé sur StackExchange pour l’adapter à ce dont j’avais besoin : https://unix.stackexchange.com/questions/91701/ufw-allow-traffic-only-from-a-domain-with-dynamic-ip-address

 

Dans un premier temps, il vous faudra avoir un dyndns valide, si vous ne savez pas de quoi on parle, je vous renvoie vers l’article de Arowan : https://www.arowan.be/2016/05/07/dyndns-by-ovh/

 

Une fois que vous avez votre domaine fonctionnel, récupérez le script et installez-le :

cd /root/
wget https://raw.githubusercontent.com/stylersnico/acl-updater-for-dyndns/master/dinhost.sh
chmod +x dinhost.sh
echo "1.2.3.4" > /var/log/dinhost.log

 

Maintenant, testez que votre domaine renvoie la bonne adresse IP :

host votredomainedyndns | head -n1 | cut -f4 -d ' '

 

Et si ça vous renvoi quelque chose dans le genre c’est bon :

root@webhost:~# host dyn.dns | head -n1 | cut -f4 -d ' '
176.167.224.77

 

Maintenant, mettez à jour le script avec votre domaine :

sed -i 's/'dyn.host'/'votredomainedyndns'/g' /root/dinhost.sh

 

Et lancez-le :

./dinhost.sh

 

Ouvrez votre crontab :

crontab -e

 

Et ajoutez la ligne suivante :

* * * * * /root/dinhost.sh > /dev/null 2>&1

 

Adresse IP de secours :

Créez-vous un serveur OpenVPN chez un hébergeur de votre choix en suivant ceci : https://www.abyssproject.net/2015/06/creer-un-serveur-openvpn-sous-debian-7-ou-8/

 

Ensuite, vous pourrez ajouter l’adresse IPV4 de ce serveur en tant qu’adresse de secours dans toutes vos configurations et vous en servir comme adresse de secours en cas de soucis sur le DynDNS 🙂

 

By |2017-06-25T13:37:47+00:003 juillet 2017|GNU/Linux|2 Comments

About the Author:

Diplômé d'un BTS SIO SISR et travaillant actuellement en Suisse, je suis passionné par tout ce qui touche à l'informatique et la musique hard rock et métal depuis ma plus tendre enfance. Je suis le créateur et l'unique rédacteur d'Abyss Project, ce blog qui me sert de bloc-notes public en quelque sorte.

2
Poster un Commentaire

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Nicolas SimondCascador Recent comment authors

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Plus récents Plus anciens Populaires
Cascador
Invité

Salute,

Sympa ! Si je peux me permettre :
– dyn.host et dinhost.log ?
– echo iptables have been updated devrait être changé par ufw has been updated
– service nginx restart par systemctl restart nginx

Tcho !