Qu'est-ce que le mode Promiscuité
Mode promiscuité ou mode promis est une fonctionnalité qui permet à la carte Ethernet de transmettre tout le trafic qu'elle reçoit au noyau. Il est généralement utilisé par un programme de reniflage de paquets comme Wireshark et tcpdump. Si un tel programme s'exécutait intentionnellement ou s'il existait un réseau ponté pour la virtualisation matérielle, le message "mode promiscuité" pourrait être simplement ignoré. Sinon, une enquête approfondie sur ce système sera nécessaire en raison d'un problème de sécurité.
Lorsqu'aucun démon d'audit n'est en cours d'exécution sur le système, le message "audit" sera enregistré dans le fichier /var/log/messages au lieu de / fichier var/log/audit/audit.log. Ce sont des messages d'information pour l'audit du noyau.
L'option PROMISC a été entièrement déprécié des initscripts dans RHEL 7.
# grep PROMISC -B 1 /usr/share/doc/initscripts-9.49.41/sysconfig.txt No longer supported: PROMISC=yes|no (enable or disable promiscuous mode)
Ainsi, afin de configurer la ou les interface(s) en mode promiscuité de manière permanente, suivez les étapes ci-dessous.
Configuration du mode Promiscuous sur l'interface dans CentOS/RHEL 7
1. Créez un fichier d'unité systemd personnalisé à l'aide d'un éditeur tel que vi ou vim.
# vi /etc/systemd/system/promisc.service
2. Un oneshot utilisant une commande en ligne peut être utilisé.
Exemple d'interface unique
Dans l'exemple ci-dessous, une seule interface est placée en mode promiscuité :
# cat /etc/systemd/system/promisc.service [Unit] Description=Bring up an interface in promiscuous mode during boot After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ip link set dev ens9 promisc on TimeoutStartSec=0 RemainAfterExit=yes [Install] WantedBy=default.target
Exemple d'interfaces multiples
L'exemple ci-dessous définit plus d'une interface en mode promiscuité :
# cat /etc/systemd/system/promisc.service [Unit] Description=Makes an interface run in promiscuous mode at boot After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ip link set dev ens9 promisc on ExecStart=/usr/sbin/ip link set dev ens12 promisc on TimeoutStartSec=0 RemainAfterExit=yes [Install] WantedBy=default.target
3. Assurez-vous que systemd est maintenant au courant du nouveau service :
# systemctl daemon-reload
Vérification
Redémarrez le serveur et vérifiez si l'interface est en mode promiscuité :
# reboot
# ip addr 1: lo: [LOOPBACK,UP,LOWER_UP] mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: ens9: [BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:fe:7d:f2 brd ff:ff:ff:ff:ff:ff inet 192.168.122.203/24 brd 192.168.122.255 scope global dynamic ens9 valid_lft 3398sec preferred_lft 3398sec 3: ens12: [BROADCAST,MULTICAST] mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 52:54:00:9f:37:9e brd ff:ff:ff:ff:ff:ff 4: ens10: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000 link/ether 52:54:00:30:ef:19 brd ff:ff:ff:ff:ff:ff 5: ens11: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000 link/ether 52:54:00:30:ef:19 brd ff:ff:ff:ff:ff:ff 6: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:30:ef:19 brd ff:ff:ff:ff:ff:ff inet 192.168.122.95/24 brd 192.168.122.255 scope global dynamic bond0 valid_lft 3396sec preferred_lft 3396sec
L'interface ens9 est maintenant en mode promiscuité au démarrage.