4. Configuration de la capture de trafic au niveau utilisateur

Debian GNU/Linux

Les paquets de la distribution Debian GNU/Linux intègrent cette fonctionnalité de délégation des droits de capture de paquets. Pour l'activer, il suffit de reconfigurer le paquet wireshark-common.

# dpkg-reconfigure wireshark-common
Reconfiguration wireshark-common

Comme indiqué dans la copie d'écran ci-dessus, l'utilisateur doit appartenir au groupe système wireshark pour bénéficier de la fonctionnalité. Par exemple, l'ajout de l'utilisateur etu au groupe via la commande adduser donne le résultat suivant :

# adduser etu wireshark
Ajout de l'utilisateur « etu » au groupe « wireshark »...
Ajout de l'utilisateur etu au groupe wireshark
Fait.

Lors de la connexion suivante avec ce compte utilisateur il sera possible d'utiliser directement les outils wireshark ou tshark.

Détail des manipulations

  1. Création d'un groupe système dédié à la capture de trafic réseau.

    # addgroup --system pcap
    Adding group `pcap' (GID 136) ...
    Done.
  2. Ajout d'un utilisateur au groupe système.

    # adduser phil pcap
    Adding user `phil' to group `pcap' ...
    Adding user phil to group pcap
    Done.
    [Avertissement] Avertissement

    Cette nouvelle attribution n'est valable qu'après une nouvelle authentification. Nous sommes encore dans le cas classique de l'évaluation du contexte de travail utilisateur au moment de l'authentification.

  3. Modification des propriétés du programme dumpcap.

    Avant modification du groupe propriétaire :

    # ls -lh `which dumpcap`
    -rwxr-xr-x 1 root root 62K  4 mars  18:04 /usr/bin/dumpcap

    Changement de groupe propriétaire et nouveau masque de permission. Une fois cette opération faite, les membres du groupe système pcap seront les seuls utilisateurs à pouvoir exécuter le programme en mode non privilégié.

    # chgrp pcap /usr/bin/dumpcap
    # chmod 750 /usr/bin/dumpcap
    # ls -lh /usr/bin/dumpcap
    -rwxr-x--- 1 root pcap 62K  4 mars  18:04 /usr/bin/dumpcap

    Mémorisation de ces nouvelles propriétés par le gestionnaire de paquets Debian.

    # dpkg-statoverride --add root pcap 750 /usr/bin/dumpcap
    # dpkg-statoverride --list /usr/bin/dumpcap
    root pcap 750 /usr/bin/dumpcap

    Avec cette dernière manipulation, toutes les mises à jour de paquets conserveront les changements de propriétés du programme en l'état.

  4. Modification du contexte de travail pour le programme dumpcap.

    # setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
    # getcap /usr/bin/dumpcap
    /usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

    Les bits eip correspondent aux attributs effective, inheritable et permitted.

    Avec l'attribut effective, le noyau ne vérifie pas si l'UID vaut 0 (mode privilégié) si le programme nécessite une opération en mode privilégié.

    L'attribut inheritable transmet les aptitudes du processus actuel aux autres processus enfants.

    L'attribut permitted indique que le processus peut utiliser les aptitudes étendues du noyau Linux.

    La documentation sur les Linux Capabilities est disponible à partir de la page Not needing root to administer Linux.

Il ne reste plus qu'à tester les nouvelles fonctionnalités attribuées à l'utilisateur non privilégié membre du groupe système pcap.

phil@0wnB0x:~$ id
uid=1000(phil) gid=1000(phil) groupes=1000(phil),4(adm),20(dialout),<snip/>,128(tftp),136(pcap)
phil@0wnB0x:~$ tshark -i wlan0
Capturing on wlan0
<snip>
  0.577380  192.168.1.9 -> 192.168.1.1  SSH Encrypted response packet len=352
  0.578481  192.168.1.1 -> 192.168.1.9  TCP 46722 > ssh [ACK] Seq=1 Ack=353 Win=30 Len=0 TSV=7711965 TSER=1467786
  1.582427  192.168.1.9 -> 192.168.1.1  SSH Encrypted response packet len=240
  1.583462  192.168.1.1 -> 192.168.1.9  TCP 46722 > ssh [ACK] Seq=1 Ack=593 Win=33 Len=0 TSV=7712217 TSER=1468791
</snip>