GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Exemple d'utilisation du pare-feu UFW dans Debian/Ubuntu

Présentation :
Je viens de commencer à utiliser le pare-feu UFW qui est un pare-feu basé sur des commandes de terminal. L'outil semblait un peu difficile à comprendre au début, mais avec un peu d'essais et d'erreurs, j'ai finalement réussi à faire fonctionner quelque chose. Voici donc ce que j'ai fait.

J'installe le pare-feu UFW :
apt-get install ufw

Hypothèse :
Je veux les conditions suivantes :
Liste des ports à autoriser depuis le LAN interne (192.168.100.0/24) :TOUS
Liste des ports à autoriser depuis l'hôte local (127.0.0.0/16) :TOUS
Liste des ports à autoriser vers Internet :TOUS
Liste des ports à autoriser l'accès depuis Internet :
ssh :22
FTP :21, 20, 20000-20099(utilisé par pure-ftp)
HTTP :80
HTTPS :443
Gerrit :2222

Résultat :à l'exception des ports ci-dessus, tous les autres ports doivent être bloqués sur Internet.

Commandes UFW à configurer au-dessus du pare-feu :

ufw allow from 192.168.100.0/24
ufw allow from 127.0.0.0/16
ufw allow from any to any port 22
ufw allow from any to any port 21
ufw allow 20000:20099/tcp
ufw allow from any to any port 80
ufw allow from any to any port 443
ufw allow from any to any port 2222

Remarque : Au-dessus, il n'y a pas de règles pour laisser passer tous les paquets des applications vers Internet. La raison en est que le comportement par défaut de ce pare-feu est qu'il permet à toutes les applications d'envoyer n'importe quoi sur Internet.
Cela peut être vérifié après l'activation du pare-feu UFW en exécutant la commande suivante :
iptables -L -n -v | grep 'Chain OUTPUT'
Résultat :
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
Définir les règles par défaut
Ceci est assez explicite.
ufw default deny incoming
ufw default allow outgoing

Le pare-feu n'est pas encore actif !
AVERTISSEMENT : Si vous configurez ce pare-feu via une connexion SSH, assurez-vous que la commande suivante a été incluse dans celles ci-dessus. Si ce n'est pas le cas, dès que vous activez le pare-feu, vous serez verrouillé hors du serveur et n'aurez aucun accès SSH. Mauvaise nouvelle 🙁
ufw allow from any to any port 22
Pour vérifier les ajoutés règles avant nous activons le pare-feu :
ufw show added
Nous activons maintenant le pare-feu avec la commande :
ufw enable
Nous examinons la configuration UFW en lançant la commande :
ufw status numbered
Vous devriez obtenir le résultat suivant :
Status: active
.
To Action From
-- ------ ----
[ 1] Anywhere ALLOW IN 192.168.100.0/24
[ 2] Anywhere ALLOW IN 127.0.0.0/16
[ 3] 22 ALLOW IN Anywhere
[ 4] 21 ALLOW IN Anywhere
[ 5] 20000:20099/tcp ALLOW IN Anywhere
[ 6] 80 ALLOW IN Anywhere
[ 7] 443 ALLOW IN Anywhere
[ 8] 2222 ALLOW IN Anywhere
[ 9] 22 ALLOW IN Anywhere (v6)
[10] 21 ALLOW IN Anywhere (v6)
[11] 20000:20099/tcp ALLOW IN Anywhere (v6)
[12] 80 ALLOW IN Anywhere (v6)
[13] 443 ALLOW IN Anywhere (v6)
[14] 2222 ALLOW IN Anywhere (v6)

Si vous devez recommencer, exécutez ce qui suit :
ufw disable
ufw reset

Si vous avez besoin de supprimer certaines règles, par exemple les règles concernant le port 2222 :(règles 8 et 14), nous supprimons les règles en utilisant leur numéro de règle en commençant par la dernière à supprimer dans la liste. La logique est que si vous commencez par la première les numéros de règle seront décalés après la première suppression et la dernière à supprimer ne sera pas la règle 14 mais la règle 13 etc.
Exemple :
ufw delete 14
ufw delete 8

Si vous devez insérer une règle au-dessus d'une règle existante, vous utilisez le numéro de règle qui doit venir après la nouvelle. Par exemple, si nous voulons ajouter la règle de refus du port 20005 d'Internet.
Remarque. Ici, cela n'a pas de sens (pas pratique) mais juste à titre d'exemple. J'insérerais la nouvelle règle "deny" avant la règle 11. Voici la commande :
ufw insert 11 deny 20005
Regardons le résultat :
ufw status numbered
Résultat :
Status: active
.
To Action From
-- ------ ----
[ 1] Anywhere ALLOW IN 192.168.100.0/24
[ 2] Anywhere ALLOW IN 127.0.0.0/16
[ 3] 22 ALLOW IN Anywhere
[ 4] 21 ALLOW IN Anywhere
[ 5] 20005 DENY IN Anywhere
[ 6] 20000:20099/tcp ALLOW IN Anywhere
[ 7] 80 ALLOW IN Anywhere
[ 8] 443 ALLOW IN Anywhere
[ 9] 2222 ALLOW IN Anywhere
[10] 22 ALLOW IN Anywhere (v6)
[11] 21 ALLOW IN Anywhere (v6)
[12] 20005 DENY IN Anywhere (v6)
[13] 20000:20099/tcp ALLOW IN Anywhere (v6)
[14] 80 ALLOW IN Anywhere (v6)
[15] 443 ALLOW IN Anywhere (v6)
[16] 2222 ALLOW IN Anywhere (v6)

Comme vous pouvez le voir, UFW a été assez intelligent pour insérer la règle pour IPv4 et IPv6 dans les positions appropriées.

Remarque pour le redémarrage :
Chaque fois que le pare-feu UFW est "activé" et qu'un redémarrage se produit, toutes les règles déjà enregistrées dans :/lib/ufw/user.rules
/lib/ufw/user6.rules

OU dans :
/etc/ufw/user.rules
/etc/ufw/user6.rules

sera réactivé au redémarrage.
AVERTISSEMENT :n'essayez pas de modifier ces fichiers ci-dessus car un chien de garde s'assure qu'il n'est pas modifié et reviendra automatiquement à la version pré-éditée.;-(. Utilisez la commande UFW pour apporter des modifications au pare-feu.

Utilisation d'UFW sur Xen DOM0 :
J'ai rencontré quelques problèmes avec l'utilisation d'UFW sur XEN DOM0 car, par défaut, UFW bloque le transfert de paquets vers les DOMU.
Pour y remédier, modifiez le fichier /etc/default/ufw et modifiez le paramètres suivants pour ACCEPTER :
DEFAULT_FORWARD_POLICY="ACCEPT"
Cela protégerait uniquement DOM0 et transférerait tout le reste du trafic vers les DOMU, laissant chaque DOMU se protéger.
Redémarrez ensuite UFW comme suit :
ufw disable
ufw enable

Pour plus d'infos sur le sujet je vous conseille le lien suivant :
https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu- et-debian-cloud-server

Journalisation

La journalisation d'UFW est effectuée en standard dans /var/log/syslog . Pour désactiver cette journalisation, procédez comme suit :
– Modifiez le fichier :/etc/rsyslog.d/20-ufw.conf (voir le contenu ci-dessous), supprimez le # à partir de la dernière ligne et exécutez les commandes suivantes pour mettre à jour les modifications apportées au pare-feu :
ufw disable
ufw enable

Contenu de /etc/rsyslog.d/20-ufw.conf :
# Log kernel generated UFW log messages to file
:msg,contains,"[UFW " /var/log/ufw.log
#
# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated UFW log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
#& ~


Ubuntu
  1. Configuration du pare-feu à l'aide d'Iptables sur Ubuntu 14.04

  2. Configurer le pare-feu UFW sur Ubuntu 18.04 - Meilleure méthode ?

  3. Comment configurer un pare-feu avec UFW sur Ubuntu 18.04

  4. Comment configurer un pare-feu avec UFW sur Debian 9

  5. Comment configurer le pare-feu UFW sur Ubuntu 18.04

Comment installer le pare-feu UFW sur Ubuntu 16.04 LTS

Comment configurer le pare-feu UFW sur Ubuntu 18.04 LTS

Comment configurer le pare-feu UFW sur Ubuntu 20.04 LTS

Comment configurer le pare-feu avec UFW sur Ubuntu Linux

Pare-feu Ubuntu UFW - Un guide complet

Comment configurer le pare-feu UFW sur Ubuntu 20.04