iptable não abre porta pra vpn gre e 1723

Iniciado por jrjorro, 20 de Maio de 2010, 08:49

tópico anterior - próximo tópico

jrjorro

VPN não funciona

Pessoal, estou querendo acessar a vpn de um cliente e tou tentando liberar a porta 1723 e protocolo 47 (gre)...

mas as regras aparecem no chain INPUT mas eu não consigo listar as portas com o netstat -a -n e nem a vpn conecta. Alguém pode me ajudar? ja busquei as soluções aqui, mas não funcionaram.

segue meu firewall pra alguém achar um vacilo:

# FIREWALL PARA FUNCIONAMENTO DE PROXY

iptables -F
iptables -X
iptables -Z
iptables -t nat -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# ==========================================================
# DEFINIÇÃO DE REDES
# ==========================================================

EXTERNAL_INT="eth0" # Interface Externa
INTERNAL_INT="eth1" # Interface Interna Desktops
INTERNAL_INT_SERVERS="eth2" # Interface Interna Servidores

LAN_ADDRESS="192.168.2.0/24" # Rede Interna Desktops
LAN_ADDRESS_SERVERS="192.168.1.0/24" # Rede Interna Servers

INTERNAL_IP="192.168.2.1" # IP Interno rede Desktops
INTERNAL_IP_SERVERS="192.168.1.1" # IP Interno rede Servidores
EXTERNAL_IP="189.55.55.4" # IP Externo

DNS_EXTERNO="200.55.55.4" # DNS Externo do ISP
DNS_EXTERNO2="200.55.55.20" # DNS Externo secundario ISP

WEB_SERVER_IP="192.168.1.2" # IP do webserver
SFTP_IP="192.168.2.2" # IP do SFTP


# ROUTING PARA PROXY

# Tudo desde a Rede Interna, fazer NAT (incluindo o web server)
iptables -t nat -A POSTROUTING -s $LAN_ADDRESS -o $EXTERNAL_INT -j MASQUERADE
iptables -t nat -A POSTROUTING -s $LAN_ADDRESS_SERVERS -o $EXTERNAL_INT -j MASQUERADE

# Tudo o que chegar ao porto 80 desde a rede interna e tiver como destino outra rede,
# redirigir ao porto 3128 (Proxy Transparente)
iptables -t nat -A PREROUTING -s $LAN_ADDRESS -d ! $LAN_ADDRESS -p tcp --dport 80 -j REDIRECT --to-port 3128

# Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos al Web Server
iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 80 -j DNAT --to 192.168.1.2:80

# Todo lo que venga por el exterior y vaya al puerto 443 lo redirigimos al Web Server
iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 443 -j DNAT --to 192.168.1.2:443

# Todo lo que venga por el exterior y vaya al puerto 22 lo redirigimos al Web Server
iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 22 -j DNAT --to 192.168.1.2:22

# Todo lo que venga por el exterior y vaya al puerto 21 lo redirigimos al Web Server
iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 3306 -j DNAT --to 192.168.1.2:3306

# Faltam regras para impedir serviços desde fora da LAN

# Todo lo que venga por el exterior y vaya al puerto 22 lo redirigimos al Web Server
iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 2222 -j DNAT --to $SFTP_IP:2222


# INPUT
# Permitimos tudo o que chegar no Firewall e tem como destino final o Firewall
# desde a rede interna

#/sbin/iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s $LAN_ADDRESS -i $INTERNAL_INT -j ACCEPT

# FORWARD

# Forward do trafego para web server (HTTP)
iptables -A FORWARD -p tcp -i $INTERNAL_INT_SERVERS -d 192.168.1.2 --dport 80 -j ACCEPT

# Forward do trafego para web server (HTTPS)
iptables -A FORWARD -p tcp -i $INTERNAL_INT_SERVERS -d 192.168.1.2 --dport 443 -j ACCEPT


--state ESTABLISHED,RELATED -j ACCEPT


#POP 110 e SMTP 25
iptables -A FORWARD -p UDP -s 192.168.2.0/24 -d 200.55.55.4 --dport 53 -j ACCEEPT
iptables -A FORWARD -p UDP -s 200.55.55.4 --sport 53 -d 192.168.2.0/24 -j ACCeEPT

iptables -A FORWARD -p TCP -s 192.168.2.0/24 --dport 110 -j ACCEPT
iptables -A FORWARD -p TCP -s 192.168.2.0/24 --dport 25 -j ACCEPT
iptables -A FORWARD -p TCP --sport 110 -j ACCEPT
iptables -A FORWARD -p TCP --sport 25 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE

# Regras de Forward para os que trabalham nos Desktops
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 993 -j ACCEPT
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 110 -j ACCEPT
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 465 -j ACCEPT
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p udp --dport 53 -j ACCEPT
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 23 -j ACCEPT
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p udp --dport 23 -j ACCEPT
#iptables -A FORWARD -s $LAN_ADDRESS -i $INTERNAL_INT -p tcp --dport 1863 -j REJECT


# Todo lo que venga por el exterior y vaya al puerto 21 lo redirigimos al Web Server
#iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 21 -j DNAT --to 192.168.1.2:21
#iptables -t nat -A PREROUTING -i $EXTERNAL_INT -p tcp -d 189.55.55.4 --dport 20 -j DNAT --to 192.168.1.2:20
#iptables -t nat -A POSTROUTING -p tcp --dport 20 -j DNAT --to 192.168.1.1:20

#HABILITAR VPN
iptables -A INPUT -p udp --sport 500 --dport 500 -j ACCEPT
iptables -A OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT
iptables -A INPUT -p 50 -j ACCEPT
iptables -A OUTPUT -p 50 -j ACCEPT
iptables -A INPUT -p 51 -j ACCEPT
iptables -A OUTPUT -p 51 -j ACCEPT
iptables -A INPUT -p tcp --sport 2020 --dport 2020 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 2020 --dport 2020 -j ACCEPT

iptables -I INPUT -s $LAN_ADDRESS -d 200.55.55.12 -j ACCEPT
iptables -I INPUT -i eth1 -p 47 -j ACCEPT
iptables -I INPUT -i eth1 --dport 1723 -j ACCEPT
iptables -I FORWARD -i eth1 -p 47 -j ACCEPT
iptables -I FORWARD -i eth1 -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p 47 -j DNAT --to 200.55.55.12
iptables -t nat -A PREROUTING -i eth1 --dport 1723 -j DNAT --to 200.55.55.12

#Enrotamento
echo 1> /proc/sys/net/ipv4/ip_forward
iptables -L -n

zekkerj

Citariptables -I INPUT -s $LAN_ADDRESS -d 200.55.55.12 -j ACCEPT
iptables -I INPUT -i eth1 -p 47 -j ACCEPT
iptables -I INPUT -i eth1 --dport 1723 -j ACCEPT
iptables -I FORWARD -i eth1 -p 47 -j ACCEPT
iptables -I FORWARD -i eth1 -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p 47 -j DNAT --to 200.55.55.12
iptables -t nat -A PREROUTING -i eth1 --dport 1723 -j DNAT --to 200.55.55.12

Dica: não use "-I" no script do firewall. "-I" é pra ser usado na linha de comando, pra vc colocar uma regra antes das outras. No script, use sempre "-A", pois vai colocar as regras na ordem natural.

Se eu entendi direito, vc tem o servidor da VPN PPTP dentro de sua rede local, certo? Nesse caso vc tem que direcionar o que vem de fora (acredito que "-i eth0", ou melhor ainda, "-i $EXTERNAL_INT"), para o endereço do servidor PPTP na rede interna, e não na ponta remota do túnel (no endereço válido que vc passou).

Outra coisa, teu firewall não é efetivo. A única coisa que ele pensa em bloquear é o MSN, mesmo assim a regra tá desabilitada... ou seja, ele não bloqueia nada. Pra que ter firewall, então???
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

jrjorro

Olá zekkerj,

Ok. Obrigado pela diga do -I.

Veja só, eu quero acessar um servidor de vpn... eu sou o cliente. Só quero liberar as portas de saída. Você acha que essas regras deviam funcionar ?

zekkerj

Da forma como seu firewall foi estruturado (com o "-P OUTPUT ACCEPT") lá em cima, você não deveria precisar de nenhuma regra de firewall pra poder conectar.

No máximo, você teria que rever alguma coisa dos redirecionamentos. Mas essas regras na cadeia OUTPUT, INPUT e FORWARD são totalmente desnecessárias.
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