Encaminhamento IP sobre OpenVPN (tun0) com portas externas encaminhadas

0

Estou tentando configurar uma configuração de roteamento muito básica com o Ubuntu Server 15.04.

Eu tenho uma interface interna p4p1 (IP 192.168.0.23) e uma conexão OpenVPN trabalhando usando tun0.

Eu quero encaminhar todo o tráfego do p4p1 para o tun0 e a internet para que toda a minha rede receba os benefícios da conexão do OpenVPN - nada de novo eu sei.

Obviamente, isso é uma coisa comum e existem guias na net, segui este guia: link . Especificamente "4.5. Ativar encaminhamento de IP e mascaramento" e tudo funciona como esperado - exceto minhas portas encaminhadas externamente não funcionam mais. A partir desse artigo, este é o script que estou usando:

echo -e "\n\nLoading simple rc.firewall-iptables version $FWVER..\n"
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe

EXTIF="tun0"
INTIF="p4p1"

echo "   External Interface:  $EXTIF"
echo "   Internal Interface:  $INTIF"

#======================================================================
#== No editing beyond this line is required for initial MASQ testing == 
echo -en "   loading modules: "
echo "  - Verifying that all kernel modules are ok"
$DEPMOD -a
echo "----------------------------------------------------------------------"
echo -en "ip_tables, "
$MODPROBE ip_tables
echo -en "nf_conntrack, " 
$MODPROBE nf_conntrack
echo -en "nf_conntrack_ftp, " 
$MODPROBE nf_conntrack_ftp
echo -en "nf_conntrack_irc, " 
$MODPROBE nf_conntrack_irc
echo -en "iptable_nat, "
$MODPROBE iptable_nat
echo -en "nf_nat_ftp, "
$MODPROBE nf_nat_ftp
echo "----------------------------------------------------------------------"
echo -e "   Done loading modules.\n"
echo "   Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "   Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr 
echo "   Clearing any existing rules and setting default policy.."

iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF

echo -e "\nrc.firewall-iptables v$FWVER done.\n"

Via meu provedor de VPN Eu tenho duas portas encaminhadas para que eu possa acessar vários serviços no meu servidor Ubuntu através da conexão VPN. Quando não tenho o encaminhamento de IP e o Masquerading ativado (através do script nesse artigo), tudo funciona como esperado, mas assim que eu uso esse script, as portas encaminhadas não funcionam.

Eu obviamente perdi alguma coisa e não sei o suficiente sobre o iptables para descobrir como eu ainda posso encaminhar o tráfego de p4p1 para tun0 e ainda permitir acesso externo através das portas encaminhadas.

Qualquer ajuda seria muito apreciada - se você estiver disposto a fornecer uma explicação da solução que você fornecer, eu adoraria entender o que está acontecendo.

Obrigado!

    
por Leon Revill 07.01.2016 / 20:14

1 resposta

0

Seu problema provavelmente está ocorrendo devido à seguinte regra:

-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 

Isso é somente aceitando RELATED ou ESTABLISHED conexões passando para a interface tun0 (externa) e fora da interface p4p1 (interna), portanto, quando conexões externas tentam conectar-se ao seu serviço encaminhado pela porta, a conexão é descartada porque é NEW . Você deve modificar essa regra para excluir completamente o módulo conntrack ou incluir o parâmetro NEW .

Qualquer uma das duas regras abaixo deve resolver o seu problema:

-A FORWARD -i "$EXTIF" -o "$INTIF" -j ACCEPT
-A FORWARD -i $EXTIF -o $INTIF -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT

Espero que isso ajude

    
por maff1989 22.01.2016 / 21:04