2009/4/15 Kenjiro Tanaka <[email protected]>:
> Vejamos se posso dar uma mãozinha.
>
> 2009/4/15 Daniel Venturi <[email protected]>
>>
>> Bom dia pessoal, preciso de ajuda
>>
>> o meu problema é o seguinte preciso redirecionar o trafego de uma porta
>> 10000 para a porta 20000, bloquear o trafego que venha diretamente para a
>> porta 10000 e ainda testar o funcionamento disso localhost(loopback).
>> por exemplo
>>
>> o que vem para a porta 10000 direcionar para a porta 20000 e aceitar
>> o que vem para a porta 20000 diretamente descartar.
>>
>> o direcionamento está funcionando corretamente com a seguinte regra:
>> iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT
>> --to-destination :20000
>
> O redirecionamento é da 10000 pra 20000 na mesma maquina ou pra outro PC?
> Bom, mas tu disseste que está funcionando.
>
>>
>> o bloqueio do trafego direto para a porta 20000 e a liberação do trafego
>> que vem da 10000 para a 20000 não consigo fazer, sendo que já tentei o
>> seguinte conjunto de regras:
>> iptables -A INPUT -j REJECT -p tcp --dport 20000
>
> A pergunta pode parecer ridícula mas, ja tentou usar um "-j DROP" ali só pra
> testar? Se as conexões para a porta 20000 seriam para a propria maquina
> rodando o firewall, deveria bloquear tranquilamente
>
>>
>> iptables -A FORWARD -j ACCEPT -p tcp --dport 20000
>
> Faz um tempinho que não brinco com essas coisas, mas... acho que algo assim
> resolveria o teu problema:
>
> iptables -t nat -A POSTROUTING -p tcp -m tcp --sport 20000 -j SNAT
> --to-source :10000
>
>>
>> quanto ao funcionamento do direcionamento em loopback (localhost), tentei
>> a regra abaixo e também não deu certo:
>> iptables -t nat -A POSTROUTING -o eth0 -p tcp -j MASQUERADE
>
> Esta parte eu realmente não entendi. O que tem a ver "loopback/localhost"
> com "eth0"? localhost é "lo", lembra? :)
>
> Sinceramente boiei nessa de "direcionamento em loopback". Qual o propósito?
>
> Bom, espero ter ajudado um pouco.
>
> May the Force be with you!
>
> Kenjiro
>

Uma opção é marcar os pacotes que chegam na porta 10000 e só aceitar a
entrada na porta 20000 se eles tiverem essa MARK. Por exemplo:


# Marca tudo que entrar na porta TCP/10000 com a mark 10000 (poderia
ser outro numero qualquer como 1,2, 3...)
iptables -A INPUT -p tcp --dport 10000 -j MARK --set-mark 10000

# Redireciona todos os pacotes com a mark 10000 para a porta TCP/20000
iptables -A INPUT -m mark --mark 10000 -j REDIRECT 20000

# Rejeita todos os pacotes na porta TCP/20000 que não tiverem a mark 10000
iptables -A INPUT -p tcp --dport 20000 ! -m mark --mark 10000 -j REJECT

# Sanity check: aceita todos os pacotes na porta TCP/20000 com mark
10000 (talvez não precise, depende das tuas regras anteriores/police)
iptables -A INPUT -p tcp --dport 20000 -m mark --mark 10000 -j ACCEPT


Como tu disse que o tráfego é local, eu não vi necessidade de fazer um
NAT, por isso usei o bom e velho filter, talvez seria melhor fazer
isso no chain mangle?


PS, Não testei, só tive a idéia e digitei direto no gmail, afinal, a
lista é para isso, trocarmos idéias e não pra que eu trabalhe pelos
outros. :P

--~--~---------~--~----~------------~-------~--~----~
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br

Antes de perguntar:
http://www.istf.com.br/perguntas/

Para sair da lista envie um e-mail para:
[email protected]
-~----------~----~----~----~------~----~------~--~---

Responder a