Redirecionar ip/porta

Iniciado por lightboy, 13 de Junho de 2011, 10:16

tópico anterior - próximo tópico

lightboy

Pessoal, tenho uma intranet funcionando num servidor interno no ip 192.186.254.60 e quero que ela fique acessível para quem acessar outro servidor no ip 192.186.254.10 ou em seu ip na web, na porta 880. Teoricamente o script do iptables deveria fazer o redirecionamento, mas estou recebendo no navegador a mensagem "O servidor 192.168.254.10 demorou muito para responder".

Peço a ajuda de vocês. Segue o script do iptables.



LAN='eth1'
REDE='192.168.254.10/24'
WAN='eth0'

# Limpeza de regras anteriores
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# Habilita-se IP Forwarding
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack
echo 1 > /proc/sys/net/ipv4/ip_forward

#Redefinindo politica de acesso
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#iptables -t nat -P PREROUTING ACCEPT

# Interface de loopback deve estar habilitada
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Listagem de regras basicas que garantem navegacao na LAN
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i $LAN -j ACCEPT


###### Regras de Entrada
# INTRANET
iptables -A INPUT -p tcp --dport 880 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 880 -j DNAT --to 192.168.254.60:80

#SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT

########## Regra do SQUID
## Regra que habilita redirecionamento ao Proxy apenas para porta 80
iptables -t nat -A PREROUTING -i $LAN -p tcp -s $REDE --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $LAN -p udp -s $REDE --dport 80 -j REDIRECT --to-port 3128

##### Liberação de portas

iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 880 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 880 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 443 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 443 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 122 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 122 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 22 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 22 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 110 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 110 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 25 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 25 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 21 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 21 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 20 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 20 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 809 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 809 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 7003 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 7003 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 1494 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 1494 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 5017 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 5017 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 7777 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 7777 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 995 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 995 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 993 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 993 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 587 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 587 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 465 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 465 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 143 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 143 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p tcp --dport 82 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -o $WAN -p udp --dport 82 -j MASQUERADE

echo Script de Firewall Carregado . . .
echo

#Fim do arquivo
Linux user #491316 | Ubuntu user #27683

zekkerj

Vc não precisa de regra de iptables pra fazer sua máquina responder em dois endereços. Aliás, a regra que vc usou está errada, conceitualmente errada.

Pra sua máquina responder em dois endereços, basta adicionar a ela os endereços, supondo que são endereços livres. Há várias formas de fazer isso, esta é uma delas:

sudo ip addr add 192.168.254.10/24 dev eth1

Observe que aqui eu adicionei o "/24" para indicar que esse endereço adicional deve usar máscara de sub-rede "255.255.255.0". É diferente de quando você usa essa mesma especificação numa regra de iptables, o que faz com que ele passe a redirecionar qualquer endereço na rede "192.168.254.0/24" (o que com certeza não é o que vc queria).

Reavalie também se você precisa mesmo daquele enxame de regras de MASQUERADE ao final do seu script. No iptables, você precisa manter as regras sempre ao mínimo, lembre-se de que essas regras são executadas para qualquer pacote que passa em sua máquina.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

lightboy

Vou explicar melhor amigo. Tenho um servidor A que está conectado à web e distribui a conexão para a rede e outro servidor B que está rodando esta intranet. Quero que ao acessar http://ip_do_servidor_A:880 seja redirecionado à intranet do servidor B.

Vou avaliar as regras das portas no fim do script. Essas regras estavam criadas pelo antigo administrador do servidor.
Linux user #491316 | Ubuntu user #27683

lightboy

Estou investigando e conclui que todo redirecionamento que faço para outro ip está estourando o tempo de conexão e não consegue resposta (testei com acesso a apache e ssh). Alguma ajuda, pessoal?
Linux user #491316 | Ubuntu user #27683

zekkerj

Se os acessos estão partindo da rede interna, o redirecionamento deve ser total --- ip de origem e de destino --- pq senão a máquina tenta responder diretamente para o IP de origem, fazendo com que a máquina de origem "estranhe" o acesso e o descarte.

Nesse caso, sim, a regra de MASQUERADE ajuda, mas não essas que vc está usando.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D