Cos'è la modalità promiscua
Modalità promiscua o modalità promessa è una funzionalità che fa passare tutto il traffico ricevuto dalla scheda ethernet al kernel. Di solito viene utilizzato da un programma di sniffing dei pacchetti come Wireshark e tcpdump. Se esistesse un programma di questo tipo in esecuzione intenzionalmente o un collegamento in rete per la virtualizzazione dell'hardware, il messaggio di "modalità promiscua" potrebbe essere semplicemente ignorato. In caso contrario, sarà necessaria un'indagine approfondita su quel sistema a causa di un problema di sicurezza.
Quando non è presente alcun demone di audit in esecuzione sul sistema, il messaggio "audit" verrà registrato nel file /var/log/messages invece di / var/log/audit/audit.log. Sono messaggi informativi per il controllo del kernel.
L'opzione PROMISC è stato completamente deprecato da initscripts in 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)
Quindi, per configurare le interfacce in modalità promiscua in modo permanente, segui i passaggi indicati di seguito.
Configurazione della modalità promiscua sull'interfaccia in CentOS/RHEL 7
1. Crea un file di unità di sistema personalizzato utilizzando un editor come vi o vim.
# vi /etc/systemd/system/promisc.service
2. È possibile utilizzare un oneshot utilizzando un comando oneline.
Esempio di interfaccia singola
Nell'esempio seguente solo un'interfaccia viene messa in modalità promiscua:
# 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
Esempio di interfacce multiple
L'esempio seguente sta impostando più di un'interfaccia in modalità promiscua:
# 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. Assicurati che systemd sia ora a conoscenza del nuovo servizio:
# systemctl daemon-reload
Verifica
Riavvia il server e controlla se l'interfaccia è in modalità promiscua:
# 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'interfaccia ens9 è ora in modalità promiscua all'avvio.