Hi @egc, sure. Sorry for the scattered information.
So, here is /etc/openvpn/my_client.ovpn
:
client
dev tun
remote <VPN_SERVER_IP> 1194 tcp
tun-mtu 1500
tls-client
nobind
user nobody
group nogroup
ping 15
ping-restart 45
persist-tun
persist-key
mute-replay-warnings
verb 5
cipher AES-128-CBC
auth SHA1
pull
auth-user-pass /etc/openvpn/my_client.auth
connect-retry 1
reneg-sec 3600
remote-cert-tls server
redirect-gateway def1
<ca>
</ca>
ubus call system board
{
"kernel": "5.15.147",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 4",
"model": "Zyxel EX5601-T0 ubootmod",
"board_name": "zyxel,ex5601-t0-ubootmod",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "SNAPSHOT",
"revision": "r24936-60ffcfdabc",
"target": "mediatek/filogic",
"description": "OpenWrt SNAPSHOT r24936-60ffcfdabc"
}
}
/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 '...'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
config interface 'wan6'
option device 'eth1'
option proto 'dhcpv6'
config device 'guest_dev'
option type 'bridge'
option name 'br-guest'
config interface 'guest'
option proto 'static'
option device 'br-guest'
list ipaddr '192.168.2.1/24'
/etc/config/firewall
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
option flow_offloading_hw '1'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
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 'Guest'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'guest'
config forwarding
option src 'Guest'
option dest 'wan'
config forwarding
option src 'lan'
option dest 'Guest'
config rule 'guest_dns'
option name 'Allow-DNS-Guest'
option src 'guest'
option dest_port '53'
option proto 'tcp udp'
option target 'ACCEPT'
config rule 'guest_dhcp'
option name 'Allow-DHCP-Guest'
option src 'guest'
option dest_port '67'
option proto 'udp'
option family 'ipv4'
option target 'ACCEPT'
Here is a complete log (verbosity 5) for a VPN connection attempt:
daemon.warn openvpn(my_client)[9376]: DEPRECATED OPTION: --cipher set to 'AES-128-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). OpenVPN ignores --cipher for cipher negotiations.
daemon.notice openvpn(my_client)[9376]: OpenVPN 2.6.8 aarch64-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD]
daemon.notice openvpn(my_client)[9376]: library versions: OpenSSL 3.0.12 24 Oct 2023, LZO 2.10
daemon.warn openvpn(my_client)[9376]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
daemon.notice openvpn(my_client)[9376]: Control Channel MTU parms [ mss_fix:0 max_frag:0 tun_mtu:1250 tun_max_mtu:0 headroom:126 payload:1600 tailroom:126 ET:0 ]
daemon.notice openvpn(my_client)[9376]: Data Channel MTU parms [ mss_fix:0 max_frag:0 tun_mtu:1500 tun_max_mtu:1600 headroom:136 payload:1768 tailroom:562 ET:0 ]
daemon.notice openvpn(my_client)[9376]: TCP/UDP: Preserving recently used remote address: [AF_INET]<VPN_SERVER_IP>:1194
daemon.notice openvpn(my_client)[9376]: Socket Buffers: R=[131072->131072] S=[16384->16384]
daemon.notice openvpn(my_client)[9376]: Attempting to establish TCP connection with [AF_INET]<VPN_SERVER_IP>:1194
daemon.notice openvpn(my_client)[9376]: TCP connection established with [AF_INET]<VPN_SERVER_IP>:1194
daemon.notice openvpn(my_client)[9376]: TCPv4_CLIENT link local: (not bound)
daemon.notice openvpn(my_client)[9376]: TCPv4_CLIENT link remote: [AF_INET]<VPN_SERVER_IP>:1194
daemon.notice openvpn(my_client)[9376]: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
daemon.notice openvpn(my_client)[9376]: TLS: Initial packet from [AF_INET]<VPN_SERVER_IP>:1194, sid=b15c0e49 36125f1d
daemon.warn openvpn(my_client)[9376]: WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
daemon.notice openvpn(my_client)[9376]: VERIFY OK: depth=1, CN=myCa
daemon.notice openvpn(my_client)[9376]: VERIFY KU OK
daemon.notice openvpn(my_client)[9376]: Validating certificate extended key usage
daemon.notice openvpn(my_client)[9376]: ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
daemon.notice openvpn(my_client)[9376]: VERIFY EKU OK
daemon.notice openvpn(my_client)[9376]: VERIFY OK: depth=0, CN=server
daemon.err openvpn(my_client)[9376]: Connection reset, restarting [0]
ifconfig
and ip route show
don't show anything interesting, since the VPN client can't connect anymore.