OpenVPN direciona o tráfego remoto dependendo da sub-rede

1

Consegui configurar um OpenVPN para rotear todo o tráfego através de um servidor openvpn remoto.

O servidor OpenVPN tem duas interfaces: eth0 - > Acesso à internet eth1 - > Rede privada: 192.168.1.0/24

Agora, todo o tráfego é feito com Eth0.

server.conf

# SERVER UDP/9494
mode server
proto udp
port 9494
dev tun
tcp-queue-limit 128
tun-mtu 1500
mssfix 1300
tun-mtu-extra 32
txqueuelen 15000
# KEYS
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
# NETWORK
server 192.168.2.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 4.4.4.4"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
# SECURITY
user nobody
group nogroup
chroot /etc/openvpn/jail
persist-key
persist-tun
comp-lzo
# LOGS
verb 3
mute 20
status openvpn-status.log
; log-append /var/log/openvpn.log

Iptables:

iptables -A INPUT -p udp --dport 9494 -d $SERVER_IP --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT 
iptables -I FORWARD -o tun0 -j ACCEPT 
iptables -I OUTPUT -o tun0 -j ACCEPT 
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE  

Eu quero fazer o mesmo, exceto pelo intervalo 192.168.1.0/24 que deve ser aplicado à Eth1

Como posso fazer isso com o iptables?

Obrigado por conselhos

    
por hotips 09.10.2014 / 17:41

2 respostas

1

Eu acho que você deve adicionar as regras para a rede privada no POSTROUTING e no FORWARD também, mas deve defini-las antes das demais regras do POSTROUTING.

Além disso, se eu vir corretamente, a primeira regra POSTROUTING sem qualquer especificação de rede de origem corresponderá a todos os seus pacotes, para que a próxima linha nunca seja igual - remova isso.

Então eu acho que suas regras do iptables devem ser assim:

iptables -A INPUT -p udp --dport 9494 -d $SERVER_IP --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -I OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 192.168.1.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

Talvez você deva colocar alguns registros para verificar se você precisa de reconfiguração ou se perdeu alguma coisa.

Após as regras acima, adicione:

iptables -A FORWARD -j LOG --log-prefix 'iptables-forward: '
iptables -t nat -A POSTROUTING -j LOG --log-prefix 'iptables-postrouting: '
    
por 19.10.2014 / 23:09
0

Se você quiser apenas adicionar rotas para que seus clientes OpenVPN possam se comunicar com o restante da rede, faça o seguinte:

push "route 192.168.1.0 255.255.255.0"

push "route 192.168.2.0 255.255.255.0"

    
por 09.10.2014 / 19:05