Acesso LAN OpenWRT OpenVPN

Acesso LAN OpenWRT OpenVPN

Meu objetivo é conectar um PC da Internet a uma VPN local em minha casa e depois acessar meus computadores na LAN local.

Explicação:

******             **************        ******************         *********
* PC * ----------> * ISP-ROUTER * -----> * OPENWRT ROUTER * ------> * My PC *
******  INTERNET   **************  DMZ   ******************  WLAN   *********

O roteador OpenWRT é conectado através da porta LAN e não da porta WAN, pois o roteador ISP já fornece LAN.

O roteador OpenWRT possui OpenVPN em execução. Posso me conectar com o "PC global" à minha VPN, mas não consigo executar ping em "Meu PC".

Tentei todas as coisas que encontrei na internet, mas sempre obtenho o mesmo resultado. O roteador OpenWRT é um Netgear WDNR3700 executando OpenWRT 12.04.

Aqui está minha configuração que tentei, mas não obtive resultado positivo:

/etc/config/openvpn

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
push "route 10.0.0.0 255.255.255.0"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /tmp/openvpn-status.log
verb 3

/etc/config/rede

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config interface 'lan'
    option type 'bridge'
    option proto 'static'
    option netmask '255.255.255.0'
    option ipaddr '10.0.0.5'
    option gateway '10.0.0.4'
    option broadcast '10.0.0.255'
    option dns '8.8.8.8'
    option ifname 'eth0.1 wlan0 radio1.network1'
    option bridge 'true'

config interface 'wan'
    option ifname 'eth1'
    option proto 'dhcp'

config switch
    option name 'rtl8366s'
    option reset '1'
    option enable_vlan '1'
    option blinkrate '2'

config switch_vlan
    option device 'rtl8366s'
    option vlan '1'
    option ports '0 1 2 3 5t'

config switch_port
    option device 'rtl8366s'
    option port '1'
    option led '6'

config switch_port
    option device 'rtl8366s'
    option port '2'
    option led '9'

config switch_port
    option device 'rtl8366s'
    option port '5'
    option led '2'

config interface 'vpn'
    option proto 'none'
    option ifname 'tun0-00'`

/etc/config/firewall

config defaults
    option syn_flood '1'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'lan'
    option network 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'wan'
    option network 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'

config zone
    option name 'vpn'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'
    option masq '1'
    option network 'vpn'

config forwarding
    option src 'lan'
    option dest 'wan'

config forwarding
    option src 'vpn'
    option dest 'lan'

config forwarding
    option src 'lan'
    option dest 'vpn'

config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-DHCPv6'
    option src 'wan'
    option proto 'udp'
    option src_ip 'fe80::/10'
    option src_port '547'
    option dest_ip 'fe80::/10'
    option dest_port '546'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-ICMPv6-Input'
    option src 'wan'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    list icmp_type 'router-solicitation'
    list icmp_type 'neighbour-solicitation'
    list icmp_type 'router-advertisement'
    list icmp_type 'neighbour-advertisement'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-ICMPv6-Forward'
    option src 'wan'
    option dest '*'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

config include
    option path '/etc/firewall.user'

config rule
    option src 'vpn'
    option target 'ACCEPT'
    option name 'VPN'
    option dest_port '1194'
    option proto 'tcpudp'
    option family 'ipv4'

config rule
    option target 'ACCEPT'
    option proto 'tcp'
    option dest_port '9100'
    option name 'Printer 0'
    option src 'lan'

Tudo o que tentei sempre me levou ao mesmo resultado: conectar-se à VPN sem problemas, o ping do PC local não funciona. Não consigo nem executar ping no IP interno do roteador.

Espero que você possa me ajudar. Desde já, obrigado.

Responder1

De acordo com este post encontrei o problema: Como conectar várias redes pela Internet de maneira barata

Na minha configuração, enviei as informações da rota para o cliente, mas não para o servidor em si. Então adicionei esta linha: route 10.0.0.0 255.255.255.0e tudo funciona bem.

Novo arquivo de configuração:

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
route 10.0.0.0 255.255.255.0
push "route 10.0.0.0 255.255.255.0"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /tmp/openvpn-status.log
verb 3

informação relacionada