Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.
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 🙂
Salut,
serait-il plus sécurisé de fermer le port 3306 de mysql ?
quels sont les inconvénients ? (pas besoin de phpmyadmin)
Oui c’est plus sécurisé.
Il n’y a pas d’inconvénient. Il faut simplement autoriser ton adresse IP uniquement si tu souhaite y accéder.
Il à l’air simple à prendre en main ce « ufw » et beaucoup plus user-friendly que ce fichu IPTables… !
Merci pour la découverte !
Il y a une commande pour wipe toutes les règles ?
Pas a ma connaissance.
J’ai mis à jour l’article avec une méthode plus simple in case of …
Peut-être en faisant ufw default allow incoming ?
Ça va changer la règle par défaut mais, je pense pas que ça purge le reste, faut voir.