Questo modulo aggiunge la possibilità di creare delle regole che possano controllare e prendere delle decisioni in base a chi ha creato il pacchetto.
Ciò è possibile solo per i pacchetti generati localmente e destinati alla catena OUTPUT.
Inoltre non è sempre possibile per ogni pacchetto stabilire chi è il proprietario (es. risposte a ping ICMP).
Opzioni disponibili:
Il pacchetto soddisfa la regola se è stato creato dal userid (numerico) specificato.
Il pacchetto soddisfa la regola se è stato creato dal groupid (numerico) specificato.
Il pacchetto soddisfa la regola se è stato creato dal processo con id (numerico) specificato.
Il pacchetto soddisfa la regola se è stato creato dal processo con gruppo sessione (numerico) specificato.
E' inoltre possibile far precedere a queste opzioni il carattere '!' per negare.
Per ottenere una lista dei processi con relativi USER e PID numerici usare il comando:
# ps -auxn USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 0 1 0.0 0.7 1120 476 ? S 09:32 0:00 init 0 2 0.0 0.0 0 0 ? SW 09:32 0:00 [kswapd] 0 3 0.0 0.0 0 0 ? SW 09:32 0:00 [kflushd] 0 4 0.0 0.0 0 0 ? SW 09:32 0:00 [kupdate] 0 246 0.0 0.8 1168 524 ? S 09:32 0:00 syslogd -m 0 0 255 0.0 0.8 1168 520 ? S 09:32 0:00 klogd 99 269 0.0 1.0 1292 628 ? S 09:32 0:00 identd -e -o 2 287 0.0 0.7 1144 496 ? S 09:32 0:00 /usr/sbin/atd
#!/bin/bash # # Esempio # # -------------------------------------------------------------------------------- # Aggiungiamo una regola alla catena OUTPUT (-A OUTPUT) che accetti (-j ACCEPT) solo i pacchetti, # generati localmente, che appartengono all'utente con userid uguale a 0 (root). # -------------------------------------------------------------------------------- iptables -A OUTPUT -m owner --uid-owner 0 -j ACCEPT # -------------------------------------------------------------------------------- # il resto dei pacchetti sono rifiutati (-j REJECT) # -------------------------------------------------------------------------------- iptables -A OUTPUT -j REJECT