Comment installer et utiliser UFW Firewall sur Linux
Introduction
UFW, également connu sous le nom de Uncomplicated Firewall, est une interface d’iptables et est particulièrement bien adapté aux pare-feu basés sur l’hôte. UFW fournit une interface facile à utiliser pour les utilisateurs débutants qui ne sont pas familiers avec les concepts de pare-feu. C’est l’outil de pare-feu le plus populaire provenant d’Ubuntu. Il prend en charge IPv4 et IPv6.
Dans ce tutoriel, nous allons apprendre à installer et à utiliser le pare-feu UFW sous Linux.
Exigences
- Toute distribution Linux installée sur votre système
- Configuration des privilèges root sur votre système
Installation d’UFW
Ubuntu
Par défaut, UFW est disponible dans la plupart des distributions basées sur Ubuntu. S’il est supprimé, vous pouvez l’installer en exécutant la commande linux suivante.
apt-get install ufw -y
Debian
Vous pouvez installer UFW dans Debian en exécutant la commande linux suivante :
apt-get install ufw -y
CentOS
Par défaut, UFW n’est pas disponible dans le référentiel CentOS. Vous devrez donc installer le référentiel EPEL sur votre système. Vous pouvez le faire en exécutant la commande linux suivante :
yum install epel-release -y
Une fois le référentiel EPEL installé, vous pouvez installer UFW en exécutant simplement la commande linux suivante :
yum install --enablerepo="epel" ufw -y
Après avoir installé UFW, démarrez le service UFW et activez-le pour qu’il démarre au démarrage en exécutant la commande linux suivante.
ufw enable
Ensuite, vérifiez l’état de UFW avec la commande linux suivante. Vous devriez voir le résultat suivant :
ufw status
Status: active
Vous pouvez également désactiver le pare-feu UFW en exécutant la commande linux suivante :
ufw disable
Définir la politique par défaut UFW
Par défaut, la configuration de la stratégie par défaut UFW permet de bloquer tout le trafic entrant et d’autoriser tout le trafic sortant.
Vous pouvez configurer votre propre politique par défaut à l’aide de la commande linux suivante.
ufw default allow outgoing
ufw default deny incoming
Ajouter et supprimer des règles de pare-feu
Vous pouvez ajouter des règles pour autoriser le trafic entrant et sortant de deux manières, à l’aide du numéro de port ou du nom du service.
Par exemple, si vous souhaitez autoriser les connexions entrantes et sortantes du service HTTP. Exécutez ensuite la commande linux suivante en utilisant le nom du service.
ufw allow http
Vous pouvez également exécuter la commande suivante à l’aide du numéro de port :
ufw allow 80
Si vous souhaitez filtrer les paquets en fonction de TCP ou UDP, exécutez la commande suivante :
ufw allow 80/tcp
ufw allow 21/udp
Vous pouvez vérifier l’état des règles ajoutées avec la commande linux suivante.
ufw status verbose
Vous devriez voir le résultat suivant :
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
80/tcp ALLOW IN Anywhere
21/udp ALLOW IN Anywhere
80/tcp (v6) ALLOW IN Anywhere (v6)
21/udp (v6) ALLOW IN Anywhere (v6)
Vous pouvez également refuser tout trafic entrant et sortant à tout moment à l’aide des commandes suivantes :
ufw deny 80
ufw deny 21
Si vous souhaitez supprimer les règles autorisées pour HTTP, il vous suffit de faire précéder la règle d’origine de delete comme indiqué ci-dessous :
ufw delete allow http
ufw delete deny 21
Règles UFW avancées
Vous pouvez également ajouter une adresse IP spécifique pour autoriser ou refuser l’accès à tous les services. Exécutez la commande suivante pour permettre à l’IP 192.168.0.200 d’accéder à tous les services du serveur :
ufw allow from 192.168.0.200
Pour refuser l’IP 192.168.0.200 pour accéder à tous les services sur le serveur :
ufw deny from 192.168.0.200
Vous pouvez autoriser la plage d’adresses IP dans UFW. Exécutez la commande suivante pour autoriser toutes les connexions de l’adresse IP 192.168.1.1 à 192.168.1.254 :
ufw allow from 192.168.1.0/24
Pour autoriser l’adresse IP 192.168.1.200 à accéder au port 80 via TCP, exécutez la commande linux suivante :
ufw allow from 192.168.1.200 to any port 80 proto tcp
Pour autoriser l’accès à la plage de ports tcp et udp de 2000 à 3000, exécutez la commande linux suivante :
ufw allow 2000:3000/tcp
ufw allow 2000:3000/udp
Si vous souhaitez bloquer l’accès au port 22 à partir des adresses IP 192.168.0.4 et 192.168.0.10 mais autoriser toutes les autres adresses IP à accéder au port 22, exécutez la commande suivante :
ufw deny from 192.168.0.4 to any port 22
ufw deny from 192.168.0.10 to any port 22
ufw allow from 192.168.0.0/24 to any port 22
Pour autoriser le trafic HTTP sur l’interface réseau eth0, exécutez la commande linux suivante :
ufw allow in on eth0 to any port 80
Par défaut, UFW autorise les requêtes ping. Si vous souhaitez refuser la demande ping, vous devrez modifier le fichier /etc/ufw/before.rules :
nano /etc/ufw/before.rules
Supprimez les lignes suivantes :
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
Enregistrez le fichier lorsque vous avez terminé.
Si jamais vous avez besoin de réinitialiser UFW, en supprimant toutes vos règles, vous pouvez le faire via la commande linux suivante.
ufw reset
Configurer NAT avec UFW
Si vous souhaitez NAT les connexions de l’interface externe à l’interface interne à l’aide de UFW. Ensuite, vous pouvez le faire en modifiant /etc/default/ufw et /etc/ufw/before.rules file.
Tout d’abord, ouvrez le fichier /etc/default/ufw à l’aide de l’éditeur nano :
nano /etc/default/ufw
Modifiez la ligne suivante :
DEFAULT_FORWARD_POLICY="ACCEPT"
Ensuite, vous devrez également autoriser la redirection ipv4. Vous pouvez le faire en éditant le fichier /etc/ufw/sysctl.conf :
nano /etc/ufw/sysctl.conf
Modifiez la ligne suivante :
net/ipv4/ip_forward=1
Ensuite, vous devrez ajouter NAT au fichier de configuration de ufw. Vous pouvez le faire en modifiant le fichier /etc/ufw/before.rules :
nano /etc/ufw/before.rules
Ajoutez les lignes suivantes juste avant les règles de filtrage :
NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
Forward traffic through eth0 - Change to match you out-interface
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
don't delete the 'COMMIT' line or these nat table rules won't
be processed
COMMIT
Save the file when you are finished. Then restart UFW with the following linux command:
ufw disable
ufw enable
Configurer la redirection de port avec UFW
Si vous souhaitez transférer le trafic à partir d’une adresse IP publique, par exemple. 150.129.148.155 ports 80 et 443 vers un autre serveur interne avec l’adresse IP 192.168.1.120. Ensuite, vous pouvez le faire en modifiant /etc/default/before.rules :
nano /etc/default/before.rules
Modifiez le fichier comme indiqué ci-dessous :
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.120:80
-A PREROUTING -i eth0 -d 150.129.148.155 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.120:443
-A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
Ensuite, redémarrez UFW avec la commande suivante :
ufw disable
ufw enable
Ensuite, vous devrez également autoriser les ports 80 et 443. Pour ce faire, exécutez la commande suivante :
ufw allow proto tcp from any to 150.129.148.155 port 80
ufw allow proto tcp from any to 150.129.148.155 port 443