Проблема:

Подключение к маршрутизатору через OpenVPN извне его сети и настройка всего трафика через VPN позволяет получить доступ к:

  • Сам роутер
  • Локальные хосты позади маршрутизатора

    Что не работает:

  • Доступ к сети за пределами локальной сети

  • Разрешение DNS (хотя DNS проталкивается через VPN)

Проверка связи с внешним IP-адресом сообщает "Порт назначения недоступен".

Для любого запроса tcpdump заполняется

12:03:22.070072 IP 10.8.4.2 > 10.8.4.1: ICMP 10.8.4.2 udp port 49763 unreachable, length 93

Где 10.8.4.2 - это IP-адрес клиента, а 10.8.4.1 - сервер (порт меняется).

Настроить:

  • Маршрутизатор OpenWRT (Turris Omnia) с внутренней сетью 192.168.10.0/24
  • Прослушивание OpenVPN через порт 1196 (открыт и доступен)
  • Порт 443 перенаправлен на 1196 на маршрутизаторе (для сетей, которые блокируют 1196)
  • В брандмауэре определены три зоны: vpn , lan , wan .
  • Клиент: Android 8 клиент с OpenVPN для Android (Nexus 5X)

Конфигурация openvpn:

port 1196
proto tcp
dev tun2
ca /etc/openvpn/ca.crt
cert /etc/openvpn/mycrt.crt
key /etc/openvpn/mycrt.key  # This file should be kept secret
dh /etc/openvpn/dh2048.pem
server 10.8.4.0 255.255.255.0
ifconfig-pool-persist /tmp/openvpn/clients/ipp-local.txt
client-config-dir ccd
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0 
comp-lzo no
persist-key
persist-tun
status /tmp/log/openvpn-status.log
verb 3
mute 20
push "route 192.168.10.0 255.255.255.0"
push "route 192.168.20.0 255.255.255.0"
mssfix
cipher AES-256-CBC
auth SHA512
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
status /var/log/openvpn-server-status.log
topology subnet

Перенаправление выполняется в ccd/myclient:

push "redirect-gateway local def1"
push "dhcp-option DNS 192.168.10.1"

Теперь конфигурация на стороне openWRT:

/ И т.д. / конфигурации / OpenVPN

config openvpn 'local_service'
        option config '/etc/openvpn/server-local.conf'
        option enabled '1'

/ И т.д. / конфигурации / сети

config interface 'vpn2'
        option ifname 'tun2'
        option proto 'none'
        option auto '1'

/ И т.д. / конфигурации / брандмауэр

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

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

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

config forwarding
        option dest 'wan'
        option src 'vpn'

config redirect
        option target 'DNAT'
        option src 'wan'
        option dest 'lan'
        option proto 'tcp'
        option src_dport '443'
        option dest_ip '192.168.10.1'
        option dest_port '1196'
        option name 'openvpn https'

Конфигурация клиента:

# Enables connection to GUI
management /data/user/0/de.blinkt.openvpn/cache/mgmtsocket unix
management-client
management-query-passwords
management-hold

setenv IV_GUI_VER "de.blinkt.openvpn 0.6.73" 
setenv IV_PLAT_VER "27 8.1.0 arm64-v8a google bullhead Nexus 5X"
machine-readable-output
allow-recursive-routing
ifconfig-nowarn
client
verb 4
connect-retry 2 300
resolv-retry 60
dev tun
remote my-remote-gateway.example.com 443 tcp-client
<ca>
REDACTED
</ca>
<key>
REDACTED
</key>
<cert>
REDACTED
</cert>
comp-lzo
<tls-auth>
REDACTED
</tls-auth>
key-direction 1
route 0.0.0.0 0.0.0.0 vpn_gateway
verify-x509-name seldon name
remote-cert-tls server
cipher AES-256-CBC
auth SHA512
# Use system proxy setting
management-query-proxy

1 ответ1

0

Задача решена. На самом деле были две проблемы:

  1. Переадресация с VPN на сервер не разрешена брандмауэром;
  2. У указанного IP-адреса DNS была подсеть, отличная от IP-адреса, назначенного через VPN, и он не работал

Разрешение пересылки в openWRT между wan и vpn и установка правильного адреса для DNS решило проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .