Comment configurer le pare-feu dans Ubuntu 18.04
Un pare-feu correctement configuré est l’un des aspects les plus importants de la sécurité globale du système. Par défaut, Ubuntu est livré avec un outil de configuration de pare-feu appelé UFW (Uncomplicated Firewall).
UFW est une interface conviviale pour la gestion des règles de pare-feu iptables et son objectif principal est de rendre la gestion d’iptables plus facile ou, comme son nom l’indique, simple. Le pare-feu d’Ubuntu est conçu comme un moyen facile d’effectuer des tâches de pare-feu de base sans apprendre iptables. Il n’offre pas toute la puissance des commandes iptables standard, mais il est moins complexe.
Dans ce tutoriel, vous allez apprendre :
- Qu’est-ce que l’UFW et son aperçu.
- Comment installer UFW et effectuer une vérification de l’état.
- Comment utiliser IPv6 avec UFW.
- Politiques par défaut UFW.
- Profils d’application.
- Comment autoriser et refuser des connexions.
- Journal du pare-feu.
- Comment supprimer les règles UFW.
- Comment désactiver et réinitialiser UFW.
Ubuntu UFW.
Configuration logicielle requise et conventions utilisées
Présentation de l’UFW
Le noyau Linux inclut le sous-système Netfilter, qui est utilisé pour manipuler ou décider du sort du trafic réseau dirigé vers ou via votre serveur. Toutes les solutions de pare-feu Linux modernes utilisent ce système pour le filtrage des paquets.
Le système de filtrage de paquets du noyau serait peu utile aux administrateurs sans une interface d’espace utilisateur pour le gérer. C’est le but d’iptables : lorsqu’un paquet atteint votre serveur, il sera transmis au sous-système Netfilter pour acceptation, manipulation ou rejet en fonction des règles qui lui sont fournies depuis l’espace utilisateur via iptables. Ainsi, iptables est tout ce dont vous avez besoin pour gérer votre pare-feu, si vous le connaissez, mais de nombreuses interfaces sont disponibles pour vous simplifier la tâche.
UFW, ou Uncomplicated Firewall, est une interface d’iptables. Son objectif principal est de simplifier la gestion de votre pare-feu et de fournir une interface facile à utiliser. Il est bien pris en charge et populaire dans la communauté Linux, même installé par défaut dans de nombreuses distributions. En tant que tel, c’est un excellent moyen de commencer à sécuriser votre serveur.
Installer UFW et vérifier l’état
Uncomplicated Firewall doit être installé par défaut dans Ubuntu 18.04, mais s’il n’est pas installé sur votre système, vous pouvez installer le paquet en utilisant la commande :
sudo apt-get install ufwUne fois l’installation terminée, vous pouvez vérifier l’état de UFW avec la commande suivante :
sudo ufw status verboseubuntu1804@linux:~$ sudo ufw status verbose
[sudo] password for ubuntu1804:
Status: inactive
ubuntu1804@linux:~$
ubuntu1804@linux:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
ubuntu1804@linux:~$
ubuntu1804@linux:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
ubuntu1804@linux:~$
Utilisation d’IPv6 avec UFW
Si votre serveur est configuré pour IPv6, assurez-vous que UFW est configuré pour prendre en charge IPv6 afin de configurer vos règles de pare-feu IPv4 et IPv6. Pour ce faire, ouvrez la configuration UFW avec cette commande :
sudo vim /etc/default/ufwAssurez-vous ensuite que IPV6 est défini sur yes, comme suit :
IPV6=yesEnregistrez et quittez. Redémarrez ensuite votre firewall à l’aide des commandes suivantes :
sudo ufw disable
sudo ufw enable
Désormais, UFW configurera le pare-feu pour IPv4 et IPv6, le cas échéant.
Politiques par défaut de UFW
Par défaut, UFW bloquera toutes les connexions entrantes et autorisera toutes les connexions sortantes. Cela signifie que toute personne essayant d’accéder à votre serveur ne pourra pas se connecter à moins que vous n’ouvriez spécifiquement le port, tandis que toutes les applications et services exécutés sur votre serveur pourront accéder au monde extérieur.
Les stratégies par défaut sont définies dans le fichier /etc/default/ufw et peuvent être modifiées à l’aide de la commande sudo ufw default <policy> <chain>.
sudo ufw default deny outgoingLes politiques de pare-feu constituent la base de la création de règles plus détaillées et définies par l’utilisateur. Dans la plupart des cas, les politiques par défaut UFW initiales constituent un bon point de départ.
Profils d’application
Lors de l’installation d’un paquet avec la commande apt, il ajoutera un profil d’application au répertoire /etc/ufw/applications.d. Le profil décrit le service et contient UFW settings.
Vous pouvez répertorier tous les profils d’application disponibles sur votre serveur à l’aide de la commande :
sudo ufw app listSelon les packages installés sur votre système, le résultat ressemblera à ce qui suit :
ubuntu1804@linux:~$ sudo ufw app list
[sudo] password for ubuntu1804:
Available applications:
CUPS
OpenSSH
ubuntu1804@linux:~$
Pour obtenir plus d’informations sur un profil spécifique et les règles incluses, utilisez la commande suivante :
sudo ufw app info ‘<app_name>’ubuntu1804@linux:~$ sudo ufw app info 'OpenSSH'
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
Comme vous pouvez le voir sur la sortie ci-dessus, le profil OpenSSH ouvre le port 22 sur TCP.
Autoriser et refuser les connexions
Si nous activions le pare-feu, il refuserait par défaut toutes les connexions entrantes. Par conséquent, vous devez autoriser/activer les connexions en fonction de vos besoins. La connexion peut être ouverte en définissant le port, le nom du service ou le profil d’application.
sudo ufw allow sshsudo ufw allow httpsudo ufw allow 80/tcpsudo ufw allow 'HTTP'Au lieu d’autoriser l’accès à des ports uniques, UFW nous permet également d’accéder à des plages de ports.
sudo ufw allow 1000:2000/tcpsudo ufw allow 3000:4000/udpPour autoriser l’accès sur tous les ports à partir d’une machine avec une adresse IP ou autoriser l’accès sur un port spécifique, vous pouvez suivre les commandes suivantes :
sudo ufw allow from 192.168.1.104sudo ufw allow from 192.168.1.104 to any port 22La commande permettant la connexion à un sous-réseau d’adresses IP :
sudo ufw allow from 192.168.1.0/24 to any port 3306Pour autoriser l’accès sur un port spécifique et uniquement à une interface réseau spécifique, vous devez utiliser la commande suivante :
sudo ufw allow in on eth1 to any port 9992La politique par défaut pour toutes les connexions entrantes est définie sur refuser et si vous ne l’avez pas modifiée, UFW bloquera toutes les connexions entrantes à moins que vous n’ouvriez spécifiquement la connexion.
Pour refuser toutes les connexions à partir d’un sous-réseau et avec un port :
sudo ufw deny from 192.168.1.0/24sudo ufw deny from 192.168.1.0/24 to any port 80Journal du pare-feu
Les journaux de pare-feu sont essentiels pour reconnaître les attaques, dépanner vos règles de pare-feu et remarquer les activités inhabituelles sur votre réseau. Cependant, vous devez inclure des règles de journalisation dans votre pare-feu pour qu’elles soient générées, et les règles de journalisation doivent être placées avant toute règle de résiliation applicable.
sudo ufw logging onLe journal se trouve également dans /var/log/messages, /var/log/syslog et /var/log/kern.log
Suppression des règles UFW
Il existe deux façons différentes de supprimer des règles UFW, par numéro de règle et en spécifiant la règle réelle.
La suppression des règles UFW par numéro de règle est plus facile, surtout si vous êtes nouveau sur UFW. Pour supprimer une règle par un numéro de règle, vous devez d’abord trouver le numéro de la règle que vous souhaitez supprimer, vous pouvez le faire avec la commande suivante :
sudo ufw status numberedubuntu1804@linux:~$ sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] Anywhere ALLOW IN 192.168.1.104
[ 3] 22/tcp (v6) ALLOW IN Anywhere (v6)
Pour supprimer la règle numéro 2, la règle qui autorise les connexions à n’importe quel port à partir de l’adresse IP 192.168.1.104, utilisez la commande suivante :
sudo ufw delete 2ubuntu1804@linux:~$ sudo ufw delete 2
Deleting:
allow from 192.168.1.104
Proceed with operation (y|n)? y
Rule deleted
ubuntu1804@linux:~$
La deuxième méthode consiste à supprimer une règle en spécifiant la règle réelle.
sudo ufw delete allow 22/tcpDésactiver et réinitialiser UFW
Si, pour une raison quelconque, vous souhaitez arrêter UFW et désactiver toutes les règles, vous pouvez utiliser :
sudo ufw disableubuntu1804@linux:~$ sudo ufw disable
Firewall stopped and disabled on system startup
ubuntu1804@linux:~$
La réinitialisation de UFW désactivera UFW et supprimera toutes les règles actives. Ceci est utile si vous souhaitez annuler toutes vos modifications et recommencer à zéro. Pour réinitialiser UFW, utilisez la commande suivante :
sudo ufw resetubuntu1804@linux:~$ sudo ufw reset
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/ufw/user.rules.20181213_084801'
Backing up 'before.rules' to '/etc/ufw/before.rules.20181213_084801'
Backing up 'after.rules' to '/etc/ufw/after.rules.20181213_084801'
Backing up 'user6.rules' to '/etc/ufw/user6.rules.20181213_084801'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20181213_084801'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20181213_084801'
ubuntu1804@linux:~$
Conclusion
UFW est développé pour faciliter la configuration du pare-feu iptables et fournit un moyen convivial de créer un pare-feu IPv4 ou IPv6 basé sur l’hôte. Il existe de nombreux autres utilitaires de pare-feu et certains peuvent être plus faciles, mais UFW est un bon outil d’apprentissage, ne serait-ce que parce qu’il expose une partie de la structure sous-jacente du netfilter et parce qu’il est présent dans de nombreux systèmes.
