UFW (Uncomplicated FireWall) est un programme de gestion simplifié en ligne de commande d'un pare-feu.
Pour l'utiliser on peut également se servir de son interface graphique Gufw, à installer en plus avec Synaptic ou la logithèque (disponible alors par le menu : Système > Administration > Configuration du pare-feu).
Avant-propos
Sous Ubuntu, l'utilisation d'un ordinateur de bureau, avec une box par un particulier, rend techniquement l'ordinateur inaccessible depuis Internet directement, il n'est donc pas à vrai dire impératif, d'activer et de configurer un pare-feu.
Ce tutoriel est destiné à l'usage d'un pare-feu pour des raisons bien déterminées et à bon escient. Par exemple si vous utilisez des réseaux WIFI public, un pare-feu offre un niveau supplémentaire de sécurité.
Après activation du pare-feu, sachez néanmoins que si certains services ne fonctionnent pas ou plus, il vous faudra analyser les logs pour en comprendre la raison, puis prendre les mesures adéquates.
Services en cours
Pour voir les services en cours sur l'ordinateur et en connaître les ports qu'ils utilisent, servez-vous de la commande less dans un terminal ainsi :
less /etc/services
Cela peut être un bon point de départ pour noter et analyser tous les services actifs (et leurs ports) avant d'activer et de configurer le pare-feu UFW !
Pour conserver cette liste dans un fichier nommé "services-et-ports-actifs.txt" dans votre dossier "Documents", lancez la commande :
less /etc/services > ~/Documents/services-et-ports-actifs.txt
Faire le tri pour déterminer quel port est utilisé par une certaine ressources
Avec less, la réponse du terminal est plutôt longue, vous pouvez alors vous servir de grep pour filtrer la recherche. Par exemple, si l'on cherche à savoir quel est le port utilisé pour le dictionnaire d'Ubuntu (Gnome-Dictionnary)
less /etc/services | grep Dictionary
Et le terminal renvoie alors :
dict 2628/tcp # Dictionary server
Le port est donc le 2628/tcp.
Différentes politiques du pare-feu selon les besoins
1/ Activation du pare-feu UFW
sudo ufw enable
2/ Définition des stratégies par défaut
Par défaut on interdit toutes entrées et sorties.
sudo ufw default deny incoming
sudo ufw default deny outgoing
3/ Activation de la journalisation
sudo ufw logging on
4/ Autorisation en sortie du DNS (son Fournisseur d'Accès Internet)
sudo ufw allow out 53
5/ Autorisation en sortie du FTP
sudo ufw allow out 20,21/tcp
Ou juste le port 21 :
sudo ufw allow out 21/tcp
Ou si parfois les ports 20 et 21 pour télécharger sur certains sites cela ne suffisaient pas
sudo ufw allow out ftp
6/ Autorisation en sortie du HTTP et HTTPS (internet)
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp
7/ Messagerie Envoi du courrier (smtp, 25/tcp)
sudo ufw allow out smtp
8/ Messagerie Envoi du courrier en SSL (smtp sécurisé, le smtps)
sudo ufw allow out 465/tcp
9/ Messagerie Réception du courrier (pop3, 110/tcp)
sudo ufw allow out pop3
10/ Messagerie POP3S (pop3 sécurisé, par exemple pour Gmail, 995/tcp)
sudo ufw allow out pop3s/tcp
11/ Messagerie IMAP
sudo ufw allow out imap
12/ Messagerie IMAPS (l'imap sécurisé, pour Gmail par exemple)
sudo ufw allow out imaps/tcp
13/ Soumission sécurisée d'emails (Submission) utilisée par Thunderbird notamment (avec STARTTLS)
sudo ufw allow out 587/tcp
14/ Autorisation en sortie pour Empathy avec des comptes type MSN ou Google Talk
sudo ufw allow out 1863/tcp
sudo ufw allow out 5222/tcp
15/ Autoriser le port de Gnome-Dictionary
sudo ufw allow out 2628/tcp
16/ Voir la TV (Freebox) avec VLC
sudo ufw allow out 554/tcp
Puis pour les flux rtsp (Real Time Stream Control Protocol) :
a) Passez par l'interface graphique
Menu Edition > Add Rule > onglet "Avancé"
Allow > Entrée > UDP > Source (IP) : 212.27.38.253
et cliquez sur Ajouter !
b) Toujours par l'interface graphique
Allow > Sortie > UDP > Destination (IP) : 212.27.38.253 / ports > 32400:32999
et cliquez sur Ajouter !
Pour plus d'informations sur la télévision avec une Freebox, voir la page consacrée à VLC
17/ Autoriser Amule, Transmission (et autres Torrent)
Passez par l'interface graphique et utilisez l'onglet "pré-configuré", c'est le plus simple.
18/ Autoriser Freenode
sudo ufw allow out 6667/tcp
Freenode est un réseau de chat par Internet de la communauté du logiciel libre. Pour chatter avec elle, rendez-vous sur le freenode webchat ou si vous préférez utiliser un client IRC, lisez ce guide pratique.
19/ Autoriser le port du whois
sudo ufw allow out 43/tcp
20/ Autoriser le port des clés publiques des dépôts de paquets logiciels de Launchpad
sudo ufw allow out 11371/tcp
En effet pour pouvoir récupérer une clé des 'Personal Package Archives' de Launchpad, il est impératif d'avoir une connexion ouverte sur le port 11371.
Si vous désirez par exemple installer une nouvelle mouture d'un logiciel (non encore maintenu par votre version d'Ubuntu), il vous faudra inévitablement ouvrir ce port, voir la page sur les PPA.
21/ Autoriser les ports des flux XMMS (les radios du web)
Par l'interface graphique,
Onglet "Simple"
Allow > Sortie > TCP > 9667
et cliquez sur Ajouter !
Ou en console :
sudo ufw allow out 9667/tcp
22/ Comment détecter quel port une radio utilise (extraire l'URL d'un lien .pls) ?
a) Autorisez (temporairement) tout le trafic sortant
via l'interface graphique,
Sortant : sélectionnez "Autoriser"
b) Sur le site de la station, cliquez sur le lien (.pls) et identifiez quel port la radio utilise
Exemple pour Ministry of sound, le lien est : http://89.238.166.195:9162/listen.pls
C'est donc le port 9162.
c) Ensuite autorisez-le avec Gufw :
Edition > Ajouter :
Onglet Avancé :
Allow Sortie TCP Destination : 89.238.166.195 port 9162
Ici le port 9162 ne sera autorisé que pour l'IP : 89.238.166.195 (celle de Ministry of Sound Radio)
d) Pensez à interdire à nouveau tout le trafic sortant via l'interface graphique,
Sortant : sélectionnez "Refuser"
23/ Autorisez un autre port pour des radios
Exemple : le port N° 8000
Onglet "Simple"
Allow > Sortie > TCP > 8000
Validez par Ajouter !
ou en console :
sudo ufw allow out 8000/tcp
Ici le port 8000 sera autorisé pour tout le monde.
24/ Quelques autres ports utilisés par les radio sur internet
- out 8005/tcp
- out 8120/tcp
- out 8400/tcp
- out 8500/tcp
- out 9000/tcp
- out 8040/tcp
- out 1755/tcp
25/ Voir le statut actuel du pare-feu UFW (c'est à dire les ports d'entrée et de sortie ouverts)
sudo ufw status
Autoriser les ping
Si vous avez configuré UFW à refuser par défaut les connexions sortantes, il se peut que les ping ne soient plus autorisés.
Pour y remédier, éditez le fichier /etc/ufw/before.rules (en Root) et ajoutez-y ces lignes :
# Autoriser les ping / ok icmp codes output
-A ufw-before-output -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-output -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-output -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-output -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-output -p icmp --icmp-type echo-request -j ACCEPT
Autoriser l'accès à son serveur depuis un autre ordinateur
Un exemple courant, vous avez un serveur installé sur une tour (l'hôte : x) et désirez y accéder depuis votre ordinateur portable (le visiteur : y) sur votre réseau local.
1/ Recherchez l'adresse IP locale de l'ordinateur hôte (celui du serveur)
Sous linux, clic droit sur l'icône "Connexion au réseau" > Informations de connexion > Adresse IP
Cette adresse (identifiée normalement sous IPv4) est celle que vous devrez renseigner sur le navigateur internet de votre ordinateur visiteur pour accéder localement à votre serveur, exemple : http://192.168.x.x
2/ Recherchez l'adresse IP de l'autre ordinateur (le visiteur)
- Sous Linux, idem que ci dessus...
- Sous Windows : Menu Démarrer > Exécuter > tapez cmd puis touche "Enter" > tapez ensuite :
ip addr show
Sous GNU/Linux vous pouvez vous servir également de la ligne de commande ci-dessus sur les deux ordinateurs.
Ensuite pour une meilleure lisibilité, n'hésitez pas à agrandir en largeur votre terminal, et recherchez la ligne qui commence par : inet
L'adresse IP locale sera indiquée juste après ce mot, qui pourrait ressembler par exemple à : inet 192.168.1.119/24
Dans cet exemple précis l'adresse IP locale serait donc : 192.168.1.119
Une adresse IP suivie d'un slash et d'un nombre fait référence à la notation CIDR. Le nombre après le slash indique le nombre de bits utilisés pour le masque de sous-réseau. Ici /24 indique donc qu'il y a un total de 256 adresses possibles de : 192.168.1.xxx.0 à ... 192.168.1.xxx.255.
192.168.1.xxx.0
192.168.1.xxx.1
192.168.1.xxx.2
192.168.1.xxx.3
....
jusqu'à
192.168.1.xxx.255
3/ Autorisez la connexion OUT vers le visiteur
sudo ufw allow from 192.168.1.xxx
Modifiez "192.168.1.xxx.x" par l'IP locale du visiteur.
4/ Autorisez la connexion DEST vers l'hôte
sudo ufw allow to 192.168.1.xxx.x
Modifiez "192.168.1.xxx.x" par l'IP locale de l'hôte.
5/ Enfin autorisez le port 5353 en sortie (udp) de l'ordinateur hôte
Passez par l'interface graphique (Gufw), Menu Edition > Add Rule > onglet "Avancé" :
Allow / Sortie / UDP / Source : 192.168.0.x.x / Port : 5353
Le port 5353 est le service Multicast DNS.
À savoir
- A la première utilisation de l'interface graphique du pare-feu (Gufw), si vous avez entré certaines politiques par le terminal, il se peut que vous ne les voyiez pas. Pour y remédier, redémarrez Ubuntu.
- Pour ne voir que les services en cours sur l'ordinateur :
service --status-all
- Si vous avez autorisé les logs, chose bien pratique pour comprendre parfois ce qui bloque, vous les trouverez dans le répertoire /var/log/. Surveillez notamment le fichier /var/log/ufw.log.
- TCP : signifie : Transmission Control Protocol. Tandis que UDP signifie : User Datagram Protocol.
Si vous souhaitez en apprendre davantage sur ces protocoles, visitez : www.linux-france.org (archive). - Pour supprimer une règle que vous avez configurée par erreur, le plus simple est de passer par Gufw et de la retirer.
Voir aussi :
Vous avez aimé cet article, partagez-le !
Qui veut voyager loin ménage sa monture ; Buvez, mangez, dormez, et faisons feu qui dure