Conseil en systèmes et logiciels informatiques.

GNU / UFW le pare-feu sous Ubuntu

UFW (Uncomplicated Firewall) est le pare-feu installé par défaut d'Ubuntu, un outil de configuration simplifié en ligne de commande sous GNU/Linux.

Pour l'utiliser on peut également se servir de son interface graphique Gufw, à installer en plus avec Synaptic (disponible alors par le menu : Système => Administration => Configuration du pare-feu).

Avant-propos
Pour voir les services en cours sur l'ordinateur et donc en connaître les ports qu'ils utilisent, voici la ligne de commande à entrer dans le Terminal :

less /etc/services


Mais la réponse du Terminal est bien 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 alors renvoie :

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)

    ufw allow out imaps/tcp

  13. 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

  14. Autoriser le port de Gnome-Dictionary

    sudo ufw allow out 2628/tcp

  15. 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
  16. Autoriser Amule, Transmission (et autres Torrent)
    Passez par l'interface graphique et utilisez l'onglet "pré-configuré", c'est le plus simple.
  17. 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.
  18. Autoriser le port du whois

    sudo ufw allow out 43/tcp

  19. 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.
  20. 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

  21. 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"
  22. 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.

  23. 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
  24. Voir le statut actuel du par-feu UFW (c'est à dire les ports d'entrée et de sortie ouverts)

    sudo ufw status

Autoriser les ping
Sous Lucid Lynx, si vous avez configuré UFW à refuser par défaut les connexions sortantes, les ping ne seront 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

Pour désactiver un certain type de ping, ajoutez le caractère # devant la ligne du type à désactiver.

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 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 est celle que vous devrez renseigner sur le navigateur internet de votre ordinateur visiteur pour accéder à votre serveur, exemple : http://192.168.0.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 :

ipconfig

Cherchez dans les résultats "Adresse Ip v4" (ou v6 si c'est votre cas) du style 192.168.0.y


3/ Autorisez la connexion OUT vers le visiteur

sudo ufw allow from 192.168.0.y



4/ Autorisez la connexion DEST vers l'hôte

sudo ufw allow to 192.168.0.x



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 / Port : 5353

Le port 5353 est le service Multicast DNS.

N.B.
Voir aussi :
Wiki Ubuntu pare-feu
Wiki Ubuntu UFW
Wiki Ubuntu Gufw - l'interface graphique d'UFW
Le site officiel de UFW

Haut