A więc tak człowiek czasem lubi komplikować proste rzeczy :-)
chciałem robić podsieci i inne cuda niepotrzebnie a chciałem tylko "wypchnąć 2" urządzenia przez OpenVPN
wystarczyło:
1. instalacja na routerze OpenWrt luci-24.10
2. wstępna konfiguracja lan i wan
3. instalacja:
- pbr 1.1.8-r10
- luci-app-pbr 1.1.8-r10
- luci-i18n-pbr-pl 25.079.59095~8ad19f5
4 uruchomienie klienta OpenVPN (ja zrobiłem to z pliku xxx.ovpn wygenerowany przez serwer)
dodałem na początku pliku wpis: pull-filter ignore "redirect-gateway" - on chyba robi czy domyślną bramą w konfiguracji pbr będzie vpn czy wan
etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd51:7df1:1e16::/48'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0.1'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.172.1'
option netmask '255.255.255.0'
option ip6assign '60'
# option gateway '192.168.1.1'
config device
option name 'eth0.2'
option macaddr '3c:84:6a:aa:22:75'
config interface 'wan'
option device 'eth0.2'
option proto 'static'
option ipaddr '192.168.1.10'
option netmask '255.255.255.0'
option gateway '192.168.1.1'
option dns '8.8.8.8 8.8.4.4'
option peerdns '0'
config interface 'wan6'
option device '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 '2 3 4 5 0t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '1 0t'
config interface 'vpn'
# option proto 'static'
option device 'tun0'
option proto 'none'
# option ipaddr '10.8.0.2'
# option netmask '255.255.255.0'
# option gateway '10.8.0.1'
" # " - te chyba robiły problemy że nie działało
etc/config/pbr
config pbr 'config'
option enabled '1'
option verbosity '2'
option strict_enforcement '1'
option resolver_set 'none'
list resolver_instance '*'
option ipv6_enabled '0'
list ignored_interface 'vpnserver'
option boot_timeout '30'
option rule_create_option 'add'
option procd_reload_delay '1'
option webui_show_ignore_target '0'
option nft_rule_counter '0'
option nft_set_auto_merge '1'
option nft_set_counter '0'
option nft_set_flags_interval '1'
option nft_set_flags_timeout '0'
option nft_set_policy 'performance'
list webui_supported_protocol 'all'
list webui_supported_protocol 'tcp'
list webui_supported_protocol 'udp'
list webui_supported_protocol 'tcp udp'
list webui_supported_protocol 'icmp'
config include
option path '/usr/share/pbr/pbr.user.aws'
option enabled '0'
config include
option path '/usr/share/pbr/pbr.user.netflix'
option enabled '0'
config dns_policy
option name 'Redirect Local IP DNS'
option src_addr '10.8.0.1'
option dest_dns 'wan'
option enabled '0'
config policy
option name 'serwer'
option src_addr '192.168.172.15'
option interface 'vpn'
config policy
option name 'dvr'
option src_addr '192.168.172.4'
option interface 'vpn'
etc/config/firewall
config defaults
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
option flow_offloading_hw '1'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'lan'
config zone
option name 'wan'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
list network 'wan'
list network 'wan6'
config forwarding
option src 'lan'
option dest 'wan'
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-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
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 rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config zone
option name 'vpn'
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option network 'vpn'
option masq '1'
config forwarding
option src 'vpn'
option dest 'wan'
config rule
option name 'OpenVPN'
option target 'ACCEPT'
option src 'wan'
option proto 'udp'
option dest_port '1194'
config forwarding
option src 'vpn'
option dest 'lan'
config forwarding
option src 'lan'
option dest 'vpn'
config include 'pbr'
option fw4_compatible '1'
option type 'script'
option path '/usr/share/pbr/firewall.include'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'serwer - poczta 25'
option src 'vpn'
option src_dport '25'
option dest_ip '192.168.172.15'
option dest_port '25'
option family 'ipv4'
list proto 'tcp'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'serwer - poczta 143'
option src 'vpn'
option src_dport '143'
option dest_ip '192.168.172.15'
option dest_port '143'
option family 'ipv4'
list proto 'tcp'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'serwer - www'
option src 'vpn'
option src_dport '80'
option dest_ip '192.168.172.15'
option dest_port '80'
list proto 'tcp'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'DVR 5000'
option src 'vpn'
option src_dport '5000'
option dest_ip '192.168.172.4'
option dest_port '5000'
option family 'ipv4'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'DVR 6000'
option src 'vpn'
option src_dport '6000'
option dest_ip '192.168.172.4'
option dest_port '6000'
option family 'ipv4'
nie wiem czy przekierowania portów się tu powinno robić przy używaniu pbr ale działa
Ostatnią rzecz którą zmieniłem to port 80 interfejsu www routera bo się wepchał na domenę
etc/config/uhttpd
config uhttpd 'main'
list listen_http '0.0.0.0:85'
list listen_http '[::]:85'
list listen_https '0.0.0.0:443'
list listen_https '[::]:443'
option redirect_https '0'
option home '/www'
option rfc1918_filter '1'
option max_requests '3'
option max_connections '100'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option cgi_prefix '/cgi-bin'
list lua_prefix '/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua'
option script_timeout '60'
option network_timeout '30'
option http_keepalive '20'
option tcp_keepalive '1'
option ubus_prefix '/ubus'
config cert 'defaults'
option days '397'
option key_type 'ec'
option bits '2048'
option ec_curve 'P-256'
option country 'ZZ'
option state 'Somewhere'
option location 'Unknown'
option commonname 'OpenWrt'
Wszystko działa prawie jakbym sobie tego życzył ale zdycha tunel po jakimś czasie... i nie wiem dlaczego (cała reszta działa) dam vpn stop / start i znowu tunel działa od bezczynności? teraz lecą pingi już ponad 2 godz. do serwera vpn i nic się nie dzieje
w logach leci cos takiego:
[32175.893986] ovpn_decrypt_one: no available key for peer 1, key-id: 1
[32176.932369] tun0: deleting peer with id 1, reason 2
Sat Mar 22 14:57:46 2025 daemon.notice openvpn(marcin_vpn)[15350]: [server_dCAyGcjtcLv9QUPp] Inactivity timeout (--ping-restart), restarting
Sat Mar 22 14:57:46 2025 daemon.notice openvpn(marcin_vpn)[15350]: dco_del_peer: netlink reports object not found, ovpn-dco unloaded?
Sat Mar 22 14:57:46 2025 daemon.notice openvpn(marcin_vpn)[15350]: dco_del_peer: failed to send netlink message: No such file or directory (-2)
Sat Mar 22 14:57:46 2025 daemon.notice openvpn(marcin_vpn)[15350]: SIGUSR1[soft,ping-restart] received, process restarting
Sat Mar 22 14:57:46 2025 daemon.notice openvpn(marcin_vpn)[15350]: Restart pause, 1 second(s)
Sat Mar 22 14:57:46 2025 kern.info kernel: [28424.000483] tun0: deleting peer with id 0, reason 2
Sat Mar 22 14:57:47 2025 daemon.warn openvpn(marcin_vpn)[15350]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: TCP/UDP: Preserving recently used remote address: [AF_INET]54.37.232.44:1194
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Socket Buffers: R=[180224->180224] S=[180224->180224]
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: UDPv4 link local: (not bound)
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: UDPv4 link remote: [AF_INET]54.37.232.44:1194
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: TLS: Initial packet from [AF_INET]54.37.232.44:1194, sid=a233901c 83c391d9
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: VERIFY OK: depth=1, CN=cn_fAm4VKAM5fFxcnlx
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Validating certificate key usage
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: VERIFY KU OK
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Validating certificate extended key usage
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: VERIFY EKU OK
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: VERIFY X509NAME OK: CN=server_dCAyGcjtcLv9QUPp
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: VERIFY OK: depth=0, CN=server_dCAyGcjtcLv9QUPp
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Control Channel: TLSv1.2, cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256, 256 bit key
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: [server_dCAyGcjtcLv9QUPp] Peer Connection Initiated with [AF_INET]54.37.232.44:1194
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: TLS: move_session: dest=TM_ACTIVE src=TM_INITIAL reinit_src=1
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: TLS: tls_multi_process: initial untrusted session promoted to trusted
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS 94.140.14.14,dhcp-option DNS 94.140.15.15,redirect-gateway def1 bypass-dhcp,tun-ipv6,route-ipv6 2000::/3,redirect-gateway ipv6,tun-ipv6,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig-ipv6 fd42:42:42:42::2/112 fd42:42:42:42::1,ifconfig 10.8.0.2 255.255.255.0,peer-id 1,cipher AES-128-GCM,protocol-flags cc-exit tls-ekm dyn-tls-crypt,tun-mtu 1500'
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Pushed option removed by filter: 'redirect-gateway def1 bypass-dhcp'
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Pushed option removed by filter: 'redirect-gateway ipv6'
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: OPTIONS IMPORT: --ifconfig/up options modified
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: OPTIONS IMPORT: route options modified
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: OPTIONS IMPORT: route-related options modified
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: OPTIONS IMPORT: tun-mtu set to 1500
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Preserving previous TUN/TAP instance: tun0
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Initialization Sequence Completed
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Data Channel: cipher 'AES-128-GCM', peer-id: 1
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Timers: ping 10, ping-restart 120
Sat Mar 22 14:57:47 2025 daemon.notice openvpn(marcin_vpn)[15350]: Protocol options: explicit-exit-notify 1, protocol-flags cc-exit tls-ekm dyn-tls-crypt
Sat Mar 22 14:57:47 2025 daemon.notice hostapd: phy1-ap0: STA a8:80:55:fb:2b:80 IEEE 802.11: did not acknowledge authentication response
Sat Mar 22 14:57:51 2025 daemon.notice hostapd: phy1-ap0: STA a8:80:55:fb:2b:80 IEEE 802.11: did not acknowledge authentication response
Sat Mar 22 14:57:55 2025 daemon.notice hostapd: phy1-ap0: STA a8:80:55:fb:2b:80 IEEE 802.11: did not acknowledge authentication response