Redirecionar solicitações locais, não internas, usando SuSEfirewall2 ou uma regra iptables

2

Eu tenho um servidor que está executando um aplicativo da web implantado no Tomcat e está em uma rede de teste. Estamos executando o SuSE 11 sp1 e temos algumas regras de redirecionamento para solicitações recebidas. Por exemplo, não ligamos a porta 80 no arquivo server.xml do Tomcat, em vez disso ouvimos na porta 9600 e temos uma linha de configuração no SuSEfirewall2 para redirecionar a porta 80 para 9640. Isso ocorre porque o Tomcat não é executado como root e não pode abra a porta 80.

Meu aplicativo da web precisa ser capaz de fazer solicitações para a porta 80, já que essa é a porta que será usada quando implantada. Qual regra posso adicionar para que as solicitações locais sejam redirecionadas pelo iptables?

Eu tentei olhar para esta questão:

Eu tentei rodar o tcpdump no eth0 e depois conectar no meu endereço IP local (não no 127.0.0.1, mas no endereço atual), mas não vi nenhuma atividade. Eu vi a atividade se eu conectei de uma máquina externa. Então eu corri o tcmpdump no lo, tentei conectar novamente e desta vez eu vi a atividade. Então, isso me leva a acreditar que quaisquer solicitações feitas ao meu próprio endereço IP localmente não estão sendo tratadas pelo iptables.

Apenas para referência, ele é o que minha tabela NAT parece agora:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:http redir ports 9640
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:xfer redir ports 9640
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:https redir ports 8443

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
    
por James 16.03.2012 / 22:34

1 resposta

0

Antes de mais nada, quero dizer que não acredito que o Tomcat que atua como usuário sem permissão não possa vincular a porta 80. É possível que você tenha direitos inadequados para esse usuário. E quanto ao redirecionamento: a saída da sua tabela está incompleta. Você pode por favor fornecer iptables -nvL -t saída de nat? Quero dizer, aqui você pode rejeitar regras por interface e sua saída não mostra isso. E quanto aos pedidos do terminal local: Basta pensar que a escolha sobre o roteamento depende da tabela de roteamento e qual interface enviará o pacote também depende da tabela de roteamento. Então, se seu aplicativo vincular apenas a interface, você obterá tráfego interno de 'lo' para 'lo'

    
por 19.03.2012 / 09:18