Regras de roteamento diferentes para um usuário específico usando a marca de firewall e a regra ip

2

Execução do Ubuntu 12.10 na AMD64.

Estou tentando configurar regras de roteamento diferentes para um usuário específico. Eu entendo que o caminho certo para fazer isso é criar uma regra de firewall que marca os pacotes para esse usuário e adicionar uma regra de roteamento para essa marca. Apenas para continuar os testes, adicionei uma regra que descarta todos os pacotes como inacessíveis:

# ip rule
0:  from all lookup local
32765:  from all fwmark 0x1 unreachable
32766:  from all lookup main
32767:  from all lookup default

Com essa regra em vigor e todas as cadeias de firewall em todas as tabelas vazias e com a política ACCEPT, ainda posso fazer ping de hosts remotos muito bem como qualquer usuário.

Se eu adicionar uma regra para marcar todos os pacotes e tentar fazer ping no Google, ela falhará conforme o esperado

# iptables -t mangle -F OUTPUT
# iptables -t mangle -A OUTPUT -j MARK --set-mark 0x01
# ping www.google.com
ping: unknown host www.google.com

Se eu restringir essa regra ao usuário da VPN, parece não ter efeito.

# iptables -t mangle -F OUTPUT
# iptables -t mangle -A OUTPUT -j MARK --set-mark 0x01 -m owner --uid-owner vpn
# sudo -u vpn ping www.google.com
PING www.google.com (173.194.78.103) 56(84) bytes of data.
64 bytes from wg-in-f103.1e100.net (173.194.78.103): icmp_req=1 ttl=50 time=36.6 ms

Mas parece que a marca está sendo configurada, porque se eu adicionar uma regra para descartar esses pacotes no firewall, funcionará:

# iptables -t mangle -A OUTPUT -j DROP -m mark --mark 0x01
# sudo -u vpn ping www.google.com
ping: unknown host www.google.com

O que estou perdendo? Obrigado!

    
por Paul Crowley 05.11.2012 / 23:34

1 resposta

2

O ping é setuid para que tenha permissão para construir pacotes ICMP - presumivelmente isso também impede que ele capture a marca do firewall. Se eu tentar isso em uma caixa de teste e usar o dig ou o telnet em meus casos de teste, a rota da política parece funcionar corretamente.

    
por 06.11.2012 / 00:26