Configure o servidor para rotear todo o tráfego através do OpenVPN

3

Eu tenho uma configuração openvpn que está funcionando muito bem. Existem cerca de 50 clientes conectados e tudo é muito prático. Eu preciso de um desses clientes para rotear todo o tráfego através da vpn. Eu configurei um ccd para esse cliente em particular e adicionei o push "redirect-gateway def1" a ele. A tabela de roteamento parece estar atualizada no cliente. Eu posso acessar todos os hosts no vpn, mas não consigo acessar qualquer outra coisa fora do vpn. Quando tracerouting do cliente, tudo vai para o gateway vpn, mas depois disso não mais. Eu acredito que o culpado é a configuração do iptables no servidor.

Esta é a configuração

  • Eu tenho um openvpn usando a sub-rede 10.170.x.x com o gateway vpn em 10.170.0.1 (VPNGATEWAY)
  • Eu tenho uma sub-rede diferente, 10.171.x.x, que obtém seu ip atribuído por meio de registros ccd (essa é a rede administrativa e tem 3 clientes)
  • O cliente que eu quero ter todo o seu tráfego através da vpn é 10.171.0.1 (CLIENTE)

A partir de 10.171.0.1 (CLIENTE) Eu posso pingar 10.170.0.1 (VPNGATEWAY). Na verdade eu posso pingar todos os hosts em 10.170.x.xe 10.171.x.x. Mas não pode pingar 8.8.8.8.

Este é o conf iptables

Existem algumas regras e eu tirei para simplificar.

*filter
:INPUT DROP [1000:900000]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -s 127.0.0.1 -j ACCEPT 

# here were some rules accepting certain ports  22, 80, etc

-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 13 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 30 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 

# this is the client that needs internet thru the gateway
# i've tried to make as permissive as possible but still to no avail
-A INPUT -s 10.171.0.1 -j ACCEPT
-A FORWARD -s 10.171.0.1 -j ACCEPT

-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
COMMIT

Eu também tentei adicionar

iptables -t nat -A POSTROUTING -s 10.171.0.1 -o eth0 -j MASQUERADE

Mas ainda não há trabalho. Alguma idéia?

    
por Ricardo Marimon 29.03.2012 / 18:12

1 resposta

1

Você tem essas duas regras que permitem seu tráfego. Mas essas regras provavelmente não são o que você quer.
ou pelo menos não só o que você quer.

-A INPUT -s 10.171.0.1 -j ACCEPT
-A FORWARD -s 10.171.0.1 -j ACCEPT

Seu conjunto de regras de firewall parece ser projetado para ser stateful, mas essas duas regras são sem estado. Você precisa adicionar duas regras para lidar com o tráfego na outra direção ou adicionar alguma correspondência de estado.

    
por 30.03.2012 / 09:27