Temat: [SOLVED] OpenVPN - klient w sieci lokalnej, konfiguracja SNAT
Witam.
Szanowni wiem, że temat OpenVPN był poruszany już milion razy ale takiego cuda jeszcze chyba nie było.
Konfiguracja:
- Serwer VPN na publicznym IP, Debian 9.5, konfiguracja TUN, subnet, sieć 192.168.26.0/24, ip von 192.168.26.1 (plik konfiguracyjny później).
- Klient OpenWRT (sieć lokalna: 192.168.24.0/24, ip vpn: 192.168.26.10)
- Klient Windows (sieć lokalna: 192.168.22.0/24 ip vpn: 192.168.26.12)
- Klient OpenWRT nie jest bramą domyślną w sieci lokalnej i nie będzie raczej (co rzutuje na przedstawiany problem)
Scenariusz:
Klient Windows z sieci 192.168.22.0/24 ma mieć dostęp do sieci lokalnej klienta OpenWRT tj. 192.168.24.0/24 (ku pamięci OpenWRT nie jest bramą domyślną dla 24.0). Wniosek, że klient OpenWRT musi robić SNAT z sieci vpn 26.0 na swój adres IP (192.168.24.31) do swojej sieci lokalnej 24.0.
Stan obecny:
Ruch/pingi między klientami działają, między serwerem OpenVPN a klientami działają. Ruch pingi do dowolnego hosta w sieci 24.0 idzie ale klient OpenWRT zwraca REJECT a konkretnie "destination host unreachable". Pakiety na kliencie OpenWRT trafiają do destination REJECT (widać do po rosnącym liczniku pakietów REJECT w iptables).
No i nie wiem dlaczego ten SNAT mi nie dzieła i dlaczego któraś reguła wymusza skierowanie do REJECT. Z góry dodam (czego nie widać w konfigu), że dodaję oczywiście trasę do sieci 24.0 (robiłem to na dwa sposoby: przez ip klienta OpenWRT jako "gw" do sieci 24.0 oraz inaczej routing do sieci 24.0 po prostu przez interfejs tun0 bez podawania "gw"). Z resztą routing działa bo można pingać 192.168.24.31.
Konfiguracja:
Serwer OpenVPN (server.conf)
port 443
proto udp
dev tun
ca /etc/openvpn/certs/keys/ca.crt
cert /etc/openvpn/certs/keys/server.crt
key /etc/openvpn/certs/keys/server.key
dh dh4096.pem
topology subnet
server 192.168.26.0 255.255.255.0
client-to-client
keepalive 5 30
tls-auth /etc/openvpn/certs/keys/ta.key 0
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
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
OpenWRT (client.conf):
config openvpn 'sample_client'
option client '1'
option dev 'tun'
option proto 'udp'
option resolv_retry 'infinite'
option nobind '1'
option persist_key '1'
option persist_tun '1'
option user 'nobody'
option comp_lzo 'yes'
option verb '3'
option pull '1'
option remote_random '0'
option cert '/etc/luci-uploads/cbid.openvpn.sample_client.cert'
option key '/etc/luci-uploads/cbid.openvpn.sample_client.key'
option ca '/etc/luci-uploads/cbid.openvpn.sample_client.ca'
list remote 'moj.vpn.pl 443'
option tls_auth '/etc/openvpn/ta.key 1'
option cipher 'AES-256-CBC'
option auth 'SHA512'
option keepalive '5 30'
option enabled '1'
option keysize '256'
OpenWRT (firewall)
config zone
option input 'ACCEPT'
option output 'ACCEPT'
option name 'vpn'
option forward 'ACCEPT'
option network 'vpn'
config redirect
option target 'SNAT'
option src 'vpn'
option dest 'lan'
option name 'vpn-lan'
option src_dip '192.168.24.31'
option enabled '1'
option src_ip '192.168.26.0/24'
option dest_ip '192.168.24.0/24'
option proto 'all'
config forwarding
option dest 'lan'
option src 'vpn'
config forwarding
option dest 'wan'
option src 'vpn'
config forwarding
option dest 'vpn'
option src 'lan'
Z góry dzięki za pomoc w rozwiązaniu tej zagadki !!!
Pozdrawiam
MvincM