Pré-requisitos

  • iptables instalado no seu VPS (já incluído na maioria dos casos)
  • iproute2 (incluído em praticamente todas as distribuições recentes do Linux)
  • Um kernel com suporte GRE (o Linux inclui isso por padrão - módulo do kernel ip_gre)
  • Uma lista de portas que você precisa encaminhar para o seu destino
  • Um VPS em nossa localização na Romênia para ter proteção DDOS

Configuração do túnel

Primeiro, precisamos configurar nosso túnel.

No seu Impreza VPS, execute os seguintes comandos:

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
iptunnel add gre1 mode gre local YOUR_FILTERED_IP remote DESTINATION_SERVER_IP ttl 255
ip addr add 192.168.168.1/30 dev gre1
ip link set gre1 up

No servidor remoto que você deseja proteger, execute o seguinte:

iptunnel add gre1 mode gre local DESTINATION_SERVER_IP remote YOUR_FILTERED_IP ttl 255
ip addr add 192.168.168.2/30 dev gre1
ip link set gre1 up

Observe a primeira linha de cada alteração para marcar qual IP usar localmente e remotamente. A 2ª linha documenta cada ponto final. Em um /30, 2 IP's são utilizáveis: .1 e .2.

Teste seu novo túnel GRE com Ping

No seu Impreza VPS, agora você deve conseguir fazer ping 192.168.168.2.

Por uma questão de integridade, teste o ping 192.168.168.1 de seu servidor de destino.

Configurar Tabelas de Rotas de Origem

Source route entries are required to make sure data that came in via the GRE tunnel is sent back out the GRE tunnel.

As entradas de rota de origem são necessárias para garantir que os dados recebidos por meio do túnel GRE sejam enviados de volta para o túnel GRE.

Execute os seguintes comandos no servidor de destino.

echo '100 BUYVM' >> /etc/iproute2/rt_tables
ip rule add from 192.168.168.0/30 table BUYVM
ip route add default via 192.168.168.1 table BUYVM

Observe que o comando echo só precisa ser executado uma vez. A entrada será salva em /etc/iproute2/rt_tables até que você a remova manualmente.

Entradas NAT iniciais para mover dados pelo túnel GRE

O NAT é usado para passar dados por nosso GRE e sair do outro lado.

No seu Impreza VPS, execute o seguinte comando:
iptables -t nat -A POSTROUTING -s 192.168.168.0/30 ! -o gre+ -j SNAT --to-source YOUR_FILTERED_IP

Testar conexões de saída

Em seu servidor de destino, você pode executar qualquer um dos seguintes comandos para verificar se o túnel está passando o tráfego corretamente:

curl http://www.cpanel.net/showip.cgi --interface 192.168.168.2
wget http://www.cpanel.net/showip.cgi --bind-address=192.168.168.2 -q -O -

O IP despejado deve ser o IP filtrado do seu VPS.

Encaminhando portas pelo seu túnel GRE

Para facilitar as coisas, encaminharemos todas as portas para o servidor de back-end.

Execute os seguintes comandos no seu Impreza VPS:
iptables -t nat -A PREROUTING -d YOUR_FILTERED_IP -j DNAT --to-destination 192.168.168.2
iptables -A FORWARD -d 192.168.168.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Se você deseja ser mais específico, pode adicionar:

-p tcp --dport 25565
Se você quiser apenas proteger um servidor minecraft, por exemplo.

A primeira regra configura o encaminhamento de porta real e a segunda regra garante que as conexões recebam NAT e correspondam corretamente.

Neste ponto, você deve ser capaz de se conectar a YOUR_FILTERED_IP e a porta de destino com seu aplicativo e passar pelo túnel GRE sem problemas.


Reiniciando seu túnel GRE após a reinicialização

Você pode editar /etc/rc.local com o editor de sua preferência (ou mesmo WINSCP) e coloque todos os comandos que acabamos de executar antes do exit 0 na parte inferior.

Sua distribuição de escolha (como o Debian) pode ter ganchos em /etc/network/interfaces para ativar seus túneis GRE no momento da inicialização, mas isso está fora do escopo deste guia.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)