A correspondência do proprietário iptables elimina icmp para GIDs, mas não para UIDs

1

Eu tenho um comportamento estranho de iptables que não consigo explicar nem entender.

Eu tenho um usuário test que tem seu grupo primário test . Quero bloquear qualquer acesso de rede desse usuário.

Agora, se eu disser

iptables -A OUTPUT -o eth0 -m owner --uid-owner test -j DROP

e eu su test e depois recebo o seguinte:

ping serverfault.com       # WORKS
nmap -sP serverfault.com   # fails
wget serverfault.com       # fails

No entanto, se eu descarregar o iptables novamente, diga:

iptables -A OUTPUT -o eth0 -m owner --gid-owner test -j DROP

(observe a diferença: gid em vez de uid ), então recebo o seguinte

ping serverfault.com       # fails
nmap -sP serverfault.com   # fails
wget serverfault.com       # fails

Como você pode ver, a regra parece corresponder às duas vezes, mas somente quando eu bloquear o grupo primário também o ICMP é bloqueado. Isso é um bug ou isso faz algum sentido que eu não tenho conhecimento?

Quer dizer, eu poderia simplesmente bloquear os dois e ser feliz, mas quero entender por que eles se comportam de maneira diferente.

Minha iptables versão é v1.4.4 .

    
por bitmask 30.04.2011 / 16:48

1 resposta

4

A geração de icmp requer acesso bruto a um soquete que, por sua vez, requer acesso root. Ping, portanto, executa o suid, portanto, o uid para o proprietário do soquete é root e não test.

    
por 30.04.2011 / 17:27