Temat: Dostęp do sieci za klientem OpenVPN
Najpierw witam wszystkich jako że to mój pierwszy post.
Problem mam następujący:
- używam Domoticza zainstalowanego na VPS - Ubuntu 18.04 - oraz serwer OpenVPN-a
- do tego podpinam klienta OpenVPNa na TP Linku z OpenWRT 19.07
- klient łączy się bez problemu i mogę przekierować cały ruch przez tunel jednak nie do końca... otóż nie mogę pingować czy też dostać się do komponentów za klientem z serwera.
Podejrzewam że to dlatego iż np PC za klientem czy też sam router w adresacji LAN odpowiadają na ping ale nie przez tun0 a przez WAN.
Ręce mi już opadają i nie wiem jak to ugryźć. Pokusiłem się nawet o reset do 0 i konf od zera ale nie pomogło.
Konfiguracja serwera OpenVPN-a:
local X.X.X.X
port 11194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
route 192.168.7.0 255.255.255.0
route 192.168.5.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
client-config-dir ccd
client-to-client
topology subnet
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
explicit-exit-notify
comp-lzo
max-clients 10
Serwer prawidłowo dodaje routy:
default via X.X.X.X dev enp1s0 proto dhcp src X.X.X.X metric 100
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
X.X.X.X/20 dev enp1s0 proto dhcp scope link src X.X.X.X metric 100
X.X.X.X/20 dev enp1s0 proto kernel scope link src X.X.X.X
X.X.X.X/20 dev enp1s0 proto dhcp scope link src X.X.X.X metric 100
169.254.169.254 via X.X.X.X dev enp1s0 proto dhcp src X.X.X.X metric 100
192.168.5.0/24 via 10.8.0.2 dev tun0
192.168.7.0/24 via 10.8.0.2 dev tun0
Konfiguracja klienta:
client
dev tun
proto udp
remote X.X.X.X 11194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
comp-lzo
verb 3
routy na kliencie:
root@OpenWrt:/etc/openvpn# ip ro
0.0.0.0/1 via 10.8.0.1 dev tun0
default via 192.168.3.1 dev eth0.2 src 192.168.3.20
10.8.0.0/24 dev tun0 scope link src 10.8.0.2
X.X.X.X via 192.168.3.1 dev eth0.2 i właśnie to mi się nie podoba
128.0.0.0/1 via 10.8.0.1 dev tun0
192.168.3.0/24 dev eth0.2 scope link src 192.168.3.20
192.168.7.0/24 dev br-lan scope link src 192.168.7.1
Firewall na kliencie:
config zone
option name 'tun0'
option input 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option output 'ACCEPT'
option network 'tun0 lan'
option mtu_fix '1'
config forwarding
option dest 'lan'
option src 'tun0'
config forwarding
option dest 'tun0'
option src 'lan'
plus oczywiście domyślne po instalacji.
network na kliencie:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fde6:53be:4959::/48'
config interface 'lan'
option type 'bridge'
option ifname 'eth0.1'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.7.1'
config interface 'wan'
option ifname 'eth0.2'
option proto 'dhcp'
config interface 'wan6'
option ifname 'eth0.2'
option proto 'dhcpv6'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '1 2 3 4 5t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0 5t'
config interface 'tun0'
option proto 'none'
option ifname 'tun0'
Chodzi o to że Domoticz z adresu X.X.X.X ma się komunikować z ESP8266 w sieci za klientem OpenVPN-a - ESP mają adresy w sieci 192.168.7.x
Tcpdump na kliencie - interface tun0 pokazuje przychodzące pingi:
00:20:12.362540 IP X.X.X.X> 192.168.7.50: ICMP echo request, id 2520, seq 3, length 64
00:20:13.375724 IP X.X.X.X > 192.168.7.50: ICMP echo request, id 2520, seq 4, length 64
ale odpowiedzi idą przez eth0.2
tcpdump -i eth0.2
00:22:00.442903 IP 192.168.7.50 > X.X.X.X: ICMP echo reply, id 2529, seq 13, length 64
Zupełnie nie wiem gdzie jest błąd..... dodam że pingi przychodzą z VPS z nazwą hosta a nie adresem ale to chyba nie problem.... chociaż odpowiedź idzie zgodnie z routingiem na kliencie X.X.X.X via 192.168.3.1 dev eth0.2 i właśnie to mi się nie podoba bo przychodzi przez tunel a odpowiada WANem i w życiu się to nie zgra.