Multicraft: Port Forwarding através de um túnel GRE

3

Durante a semana passada, tentei proteger um servidor de ataques DOS, utilizando um túnel GRE de um VPS para uma máquina dedicada sem muito sucesso.

Visual:

User --> VPS --> Dedicated Server

Eu segui vários guias BUYVM e Minecraft DDOS Protection e modificou-o conforme necessário.

O que eu fiz até agora:

Em ambos os computadores, os seguintes módulos do kernel são carregados

ip_gre
ip_nat_pptp
ip_conntrack_pptp

Além disso, o encaminhamento de porta ipv4 está ativado em ambas as máquinas.

Configurando o GRE na máquina dedicada:

ip tunnel add veridian mode gre remote VPS_EXTERN_IP local DEDICATED_EXTERN_IP ttl 255
ip link set veridian up
ip addr add 10.10.10.1/24 dev veridian

Isso produz a interface:

veridian  Link encap:UNSPEC  HWaddr 3F-8D-F2-FA-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.10.10.1  P-t-P:10.10.10.1  Mask:255.255.255.0
          inet6 addr: fe80::200:5efe:3f8d:f2fa/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP  MTU:1476  Metric:1
          RX packets:4016 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3970 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:338404 (338.4 KB)  TX bytes:359357 (359.3 KB)

Configurando o GRE no VPS

ip tunnel add gre1 mode gre remote DEDICATED_EXTERN_IP local VPS_EXTERN_IP ttl 255
ip link set gre1 up
ip addr add 10.10.10.2/24 dev gre1

Isso produz a interface:

gre1      Link encap:UNSPEC  HWaddr 68-83-98-C8-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.10.10.2  P-t-P:10.10.10.2  Mask:255.255.255.0
          inet6 addr: fe80::200:5efe:6883:98c8/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP  MTU:1476  Metric:1
          RX packets:3743 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3811 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:314188 (314.1 KB)  TX bytes:335587 (335.5 KB)

Adicionando o IP da interface VPS à tabela de rotas de origem no servidor dedicado:

echo '100 VERIDIAN' >> /etc/iproute2/rt_tables
ip rule add from 10.10.10.0/24 table VERIDIAN
ip route add default via 10.10.10.2 table VERIDIAN

O que funciona

A partir daqui, posso executar ping no Servidor Dedicado do VPS com êxito

ping 10.10.10.1

e vice-versa

ping 10.10.10.2

Além disso, quando configuro a entrada NAT no VPS

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source VPS_EXTERN_IP

Eu posso recuperar com sucesso o IP externo do VPS do Servidor Dedicado executando:

curl http://www.cpanel.net/showip.cgi --interface 10.10.10.1

O que não funciona - Port Forwarding

No VPS eu agora corro:

iptables -t nat -A PREROUTING -p tcp -d VPS_EXTERN_IP --dport 25565 -j DNAT --to-destination 10.10.10.1:25565

iptables -A FORWARD -p tcp -d 10.10.10.1 --dport 25565 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Eu agora tentarei me conectar ao servidor de jogos através do endereço IP externo do VPS sem sucesso.

Eu tenho lutado com isso por mais de uma semana qualquer ajuda seria muito apreciada.

Atualizar

Tudo acima está correto.

Um pouco mais de depuração e descobri que o daemon do wrapper (Multicraft) para o servidor do jogo bloqueia as conexões do host local quando o ip externo é definido para a instância do jogo.

A solução é definir o IP como 0.0.0.0 e o encaminhamento de porta funciona perfeitamente.

    
por Brian McDonald 29.01.2015 / 04:10

1 resposta

1

Como não vejo isso na documentação exibida, presumo que você tenha esquecido de ativar o encaminhamento de IP.

Execute o seguinte comando para verificar se esse é realmente o caso:

sysctl net.ipv4.ip_forward

Se o encaminhamento de IP estiver de fato desativado, você deverá ver:

net.ipv4.ip_forward = 0

Se este for o seu problema, execute:

sysctl -w net.ipv4.ip_forward=1

Possivelmente seu problema é com as portas não sendo abertas / firewalls bloqueando as portas.
Você pode facilmente testar isso do seu VPS para sua máquina dedicada usando o nmap:

nmap -A 10.10.10.2/24 -p 25565

E da sua máquina cliente para a sua máquina com acesso externo da mesma forma, mas substitua 10.10.10.2 pelo seu endereço externo VPS.

    
por 30.01.2015 / 10:56