Bonjour à tous,

Si vous avez déjà tenter de faire des règles Iptables à la main, vous aurez sans doute remarquer que c’est certes faisable MAIS, surtout très très barbant pour le peu de chose que l’on souhaite faire …

Magie de l’open source, des petits gars ont développés un logiciel nommé UFW (pour Uncomplicated FireWall).

Ce petit logiciel vous permettra de rentrer des lignes de commandes simplissimes, compréhensibles de tout humain normalement constitué qui possède un minimum de connaissances en anglais.

 

Dans cette procédure, pour l’exemple, je vous montrerais comment mettre en place UFW et comment autoriser les connexions sur les ports 80 et 443 pour le oueb web depuis tout internet.

On verra ensuite comment autoriser ftp/mysql/ssh depuis des adresses ip spécifiques. Oh, et on va causer IPV6 aussi dans le tas.

 

Installation et création des règles de base :

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 soit 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

 

Maintenant, faites pas les bleus, si vous réactivez le pare-feu sans créer une règle d’accès pour SSH votre serveur sera totalement inaccessible depuis Internet.

On va donc créer une règle pour accéder à SSH depuis un port spécifique :

ufw allow from IPV4 to any port 22
ufw allow from IPV6 to any port 22

 

Remplacez IPV4 par votre IPV4 fixe ou VPN le cas échéant, remplacez IPV6 par votre IPV6 et remplacez 22 par votre numéro de port SSH si vous n’avez pas laisser le port par défaut.

Si vous ne disposez ni d’une ipv4 fixe, ni d’une ipv6, utilisez la règle suivante :

ufw allow 22

 

Maintenant, activez le pare-feu :

ufw enable

 

Le problème, c’est que la toute de suite, si vous avez un serveur web, eh bien il ne sera plus accessible par personne.

Résolvez le problème en autorisant les accès http et https depuis le oueb tout entier :

ufw allow 80
ufw allow 443
ufw enable

Création de règles avancées :

Bon, comme vous l’avez vu, la syntaxe est plutôt simple, dans l’idée, voici la commande générique pour créer une règle :

ufw allow PORT

 

Remplacez simplement PORT par le numéro de port et le tour est joué, votre service sera accessible en tcp/udp et ipv4/ipv6 par tous les internets.

Seulement, pour des ports SSH, MySQL ou FTP il est judicieux de n’avoir que quelques ip qui sont autorisées à accéder aux services.

 

La commande suivante sera alors utilisée :

ufw allow from IP to any port PORT

 

Encore une fois, remplacez simplement PORT par le numéro de port et remplacez IP par votre IPV4 ou votre IPV6. Il faut faire une règle pour chaque protocole.

Pour supprimer une règle, lancez la commande suivante suivi de la règle en question :

ufw delete REGLE

 

L’application des règles passe toujours par la commande suivante :

ufw enable

 

Vous pouvez visualisez toutes les règles avec la commande suivante :

ufw status verbose

 

Vous pouvez lister les règles avec une numérotation avec la commande suivante :

ufw status numbered

 

Et ensuite les supprimez avec leur numéro de façon plus simple avec la commande suivante :

ufw delete 1

 

De quoi dégager un bon paquet de script kiddies, bot et autres problèmes de votre serveur 🙂