Atualmente, tenho uma caixa NAS em execução na porta 80. Para acessar o NAS de fora, mapeei a porta 8080 para a porta 80 no NAS da seguinte maneira:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80
Isso está funcionando como um encanto. No entanto, isso só funcionará se eu estiver acessando o site de fora da rede (no trabalho, em uma casa diferente, etc.). Então, quando digito mywebsite.com:8080
, o IPTables faz o trabalho corretamente e tudo está funcionando bem.
Agora, o problema que tenho é: como redirecionar essa porta de dentro da rede? Meu nome de domínio mywebsite.com
aponta para o meu roteador (meu servidor linux) por dentro (10.32.25.1), mas quero redirecionar a porta 8080 para a porta 80 em 10.32.25.2 por dentro.
Qualquer pista?
Editar # 1
Tentando ajudar a facilitar essa pergunta, montei este diagrama. Atualize se estiver incorreto ou deturpar o que você está procurando.
iptables
| .---------------.
.-,( ),-. v port 80 |
.-( )-. port 8080________ | |
( internet )------------>[_...__...°]------------->| NAS |
'-( ).-' 10.32.25.2 ^ 10.32.25.1 | |
'-.( ).-' | | |
| '---------------'
|
|
__ _
[__]|=|
/::/|_|
10.32.25.1:8080
redirecionar para10.32.25.2:80
. Minha regra acima está funcionando de fora, mas não de dentro da minha rede. Portanto, se estou no escritório, posso acessar meu NAS em website.com:8080 e é totalmente transparente. Na minha casa, website.com:8080 aponta para 10.32.25.1 porque é meu roteador, também conhecido como servidor Linux. Quero redirecionar a porta 8080 para o NAS também na porta 80, mas novamente, de forma transparente.eth0 10.32.25.2
, para que possamos capaz de iptables escrita usar com base na interface de entradaRespostas:
Eu finalmente encontrei como fazer. Primeiro, tive que adicionar
-i eth1
à minha regra "externa" (eth1 é minha conexão WAN). Eu também precisava adicionar duas outras regras. Aqui no final o que eu vim com:fonte
Você também esqueceu de mencionar que o encaminhamento de pacote deve estar ativado para poder executar o NAT de destino. Por padrão, geralmente está desativado, portanto, as regras do iptables não funcionam. Pode ser ativado emitindo:
fonte
Primeiro, permita o encaminhamento com
Em seguida, defina as regras do iptable com
Você pode colocar essas linhas,
/etc/rc.local
por exemplo. Nota: como o Debian jessie o torna executável e habilita o serviço rc.local viafonte
Primeiro, você precisa verificar se o encaminhamento está ativado:
cat /proc/sys/net/ipv4/ip_forward
Caso contrário
1
, corraecho 1 > /proc/sys/net/ipv4/ip_forward
.Se você deseja que o tráfego que atinge 10.32.25.1 nas portas 80 e 443 seja encaminhado para a porta 80 de 10.32.25.2, use a regra abaixo:
fonte