hardmaster2009
(usa Ubuntu)
Enviado em 15/12/2011 - 15:06h
lejoso escreveu:
Tenta o seguinte
iptables -t mangle -I PREROUTING -i eth2 -p tcp --dport 3389 -j CONNMARK --set-mark 123456
iptables -t mangle -I PREROUTING -m connmark --mark 123456 -p tcp --sport 3389 -j MARK --set-mark 3
Pelo que vi você utilizou o alvo MARK para marcar os pacotes que entram pela eth2 com destino a porta 3389. Porém ao utiliar o mesmmo, quando o pacote sai do firewall em direção ao servidor, ao retornar esta marcação não é mais válida.
Neste caso, devemos utilizar o alvo CONNMARK. A diferença dele pro MARK é que enquanto o MARK marca apenas pacotes, o CONNMARK marca conexões, sendo assim os pacotes que retornam ao firewall enxergarão essa marcação.
Nas regras acima, na primeira ele marca a conexão que entra pela eth2 com destino a porta 3389.
Na segunda, ele pega essa conexão marcada e marca o pacote com o valor 3, o que fará com que ele consulte a tabela de roteamento com essa marcação.
Se funcionar, você até pode criar uma regra geral para marcar qualquér conexão que entra pela eth2 (CONNMARK) e depois marcar a volta pela mesma interface.
Ficaria assim:
iptables -t mangle -I PREROUTING -i eth2 -j CONNMARK --set-mark 123456
iptables -t mangle -I PREROUTING -m connmark --mark 123456 -j MARK --set-mark 3
Espero poder ter ajudado!
Acabei de criaar uma nova comunidade no VOL ( Conntrack ). Caso seja de seu interesse, torne - se membro da mesma para debater um tópico muito legal e interessante.
Att,
Leonardo Souza
Graças ao colega Leonardo que deu essa ideia, esse cara deve ser feraaaaa !!!
Estou eufórico, depois de meses de tentativas, estudando, testando, trocando até de distribuição linux etc etc !! acabo de conseguir que 2 links de internet sirvam para conexão externa do ts e consequentemente tambem sirva pro WEB simultaneamente !! espero que seja de muita ajuda !!
simplesmente adicionei uma regrinha que nunca usei e num entendo ainda a -m state
ficou assim:
iptables -t mangle -A PREROUTING -m state --state ESTABLISHED, INVALID -i eth1 -p tcp --dport 3389 -j CONNMARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth0 -m connmark --mark 1 -j MARK --set-mark 1
onde eth1 é meu link de net nova
e a eth0 é minha interface de in-out pra LAN
Agora quero entender melhor oque a -m state faz com os pacotes realmente.
Obrigado Leonardo, se não foce pela sua dica estaria patinando ainda !!!