eibgrad
Part of the Furniture
There are two changes in the 388.8 release that need clarification.
VPN Kill Switch
Initially (and quite some ago at this point), the OpenVPN kill switch used to be persistent. IOW, even if the OpenVPN client was disabled/off, the kill switch remained active. However, so many ppl complained about that behavior, it was changed (again, quite some time ago) so that if you purposely disabled (i.e, turned OFF) the OpenVPN client, the kill switch was disabled as well.
Well, w/ 388.8, we're back to the kill switch being persistent! And that has led to some confusion. Particularly since (apparently) we now have more users than ever enabling remote access over the WAN, either for the actual purpose of remote access, or just from the LAN side, if only to take advantage of the cert bound to the WAN's ip/domain-name and avoid any TLS/SSL errors.
As I've reported on several other threads, when remote access is enabled on the GUI, this is implemented in an unusual fashion. For security reasons, the GUI is never bound directly to the WAN. Instead, there is a DNAT rule in the firewall to *redirect* the public IP of the WAN to the LAN ip of the router in order to gain access to the GUI. As a result, if you ever bind the router's LAN ip to the OpenVPN client w/ the VPN Director, either explicitly (e.g., 192.168.1.1) or implicitly (e.g., 192.168.1.0/24), any attempt to reference the WAN ip or domain-name will have its replies sent back over the VPN, and NOT the WAN! Hence, access to the GUI will be lost!
Understand that this has *always* been the way it works. Nothing has changed in this regard w/ this or any prior release.
Also, NONE of this relevant when accessing the GUI from a client on the LAN side as long as the reference to the GUI is also on the LAN side (e.g., 192.168.1.100 to 192.168.1.1). It's ONLY an issue when you attempt remote access over the WAN, or reference the WAN ip/domain name from the LAN (i.e., NAT loopback).
In the recent past, I suspect this wasn't nearly as much of a problem since a) most users were NOT referencing the WAN ip/domain-name from inside the LAN, and b) the kill-switch wasn't active when the OpenVPN client was OFF. But now we have a situation in which remote access is more common, and the kill switch is persistent. So users are finding themselves unexpectedly locked out of the GUI, at least if they continue to reference the GUI w/ the WAN ip/domain-name, and do NOT disable the kill switch. Ironically, this failure to disable the kill switch when the OpenVPN client was disabled/OFF was why this behavior was previously changed; to satisfy complaints. With this most recent change, we're now revisiting old problems.
IMO, the safest thing to do given the current state of 388.8 is to *always* bind the router's LAN ip to the WAN w/ the VPN Director. Even if you're not otherwise using the VPN Director at this time. This should guarantee the router remains accessible at all times, irrespective of the state of the OpenVPN client, kill switch, or how you reference the GUI (WAN vs. LAN). It just keeps things simple.
OpenVPN ip rule change
Here too we have another change, where the ip rules now limit access of the OpenVPN client's routes to only those devices on the LAN (br0). Prior to 388.8, that access was unconditional. If you needed access to the OpenVPN client's routes from local OpenVPN/Wireguard servers, or even the WAN, that was possible, but no more. I have no idea why that change was made, or if it will remain a part of the on-going firmware. Presumably it was intended to fix some (as yet unknown) problem, but it is going to break any configurations that require such access (as has been shown in the release thread).
The following is a *temporary* fix.
Note: This assumes OpenVPN client #1. For other OpenVPN clients, you need to change it accordingly, including the table name (ovpnc#) and priority (1000#).
Even so, I don't know the impact of this rollback beyond the fact it fixes previously working configurations. These changes will NOT survive a restart of the OpenVPN client either. Not unless you use an openvpn-event script to apply them. That's why I only recommend this fix for those who are desperate. In most cases, I strongly suggest you revert to 388.7 (or whatever was your prior release) and await further information regarding what will be done (if anything) about the negative impact of these changes.
I'm just laying out the field here so we have a single point of reference for discussing these changes. Otherwise, it's going to be difficult to deal w/ user after user experiencing the negative impact in different ways, and just creating more and more threads.
VPN Kill Switch
Initially (and quite some ago at this point), the OpenVPN kill switch used to be persistent. IOW, even if the OpenVPN client was disabled/off, the kill switch remained active. However, so many ppl complained about that behavior, it was changed (again, quite some time ago) so that if you purposely disabled (i.e, turned OFF) the OpenVPN client, the kill switch was disabled as well.
Well, w/ 388.8, we're back to the kill switch being persistent! And that has led to some confusion. Particularly since (apparently) we now have more users than ever enabling remote access over the WAN, either for the actual purpose of remote access, or just from the LAN side, if only to take advantage of the cert bound to the WAN's ip/domain-name and avoid any TLS/SSL errors.
As I've reported on several other threads, when remote access is enabled on the GUI, this is implemented in an unusual fashion. For security reasons, the GUI is never bound directly to the WAN. Instead, there is a DNAT rule in the firewall to *redirect* the public IP of the WAN to the LAN ip of the router in order to gain access to the GUI. As a result, if you ever bind the router's LAN ip to the OpenVPN client w/ the VPN Director, either explicitly (e.g., 192.168.1.1) or implicitly (e.g., 192.168.1.0/24), any attempt to reference the WAN ip or domain-name will have its replies sent back over the VPN, and NOT the WAN! Hence, access to the GUI will be lost!
Understand that this has *always* been the way it works. Nothing has changed in this regard w/ this or any prior release.
Also, NONE of this relevant when accessing the GUI from a client on the LAN side as long as the reference to the GUI is also on the LAN side (e.g., 192.168.1.100 to 192.168.1.1). It's ONLY an issue when you attempt remote access over the WAN, or reference the WAN ip/domain name from the LAN (i.e., NAT loopback).
In the recent past, I suspect this wasn't nearly as much of a problem since a) most users were NOT referencing the WAN ip/domain-name from inside the LAN, and b) the kill-switch wasn't active when the OpenVPN client was OFF. But now we have a situation in which remote access is more common, and the kill switch is persistent. So users are finding themselves unexpectedly locked out of the GUI, at least if they continue to reference the GUI w/ the WAN ip/domain-name, and do NOT disable the kill switch. Ironically, this failure to disable the kill switch when the OpenVPN client was disabled/OFF was why this behavior was previously changed; to satisfy complaints. With this most recent change, we're now revisiting old problems.
IMO, the safest thing to do given the current state of 388.8 is to *always* bind the router's LAN ip to the WAN w/ the VPN Director. Even if you're not otherwise using the VPN Director at this time. This should guarantee the router remains accessible at all times, irrespective of the state of the OpenVPN client, kill switch, or how you reference the GUI (WAN vs. LAN). It just keeps things simple.
OpenVPN ip rule change
Here too we have another change, where the ip rules now limit access of the OpenVPN client's routes to only those devices on the LAN (br0). Prior to 388.8, that access was unconditional. If you needed access to the OpenVPN client's routes from local OpenVPN/Wireguard servers, or even the WAN, that was possible, but no more. I have no idea why that change was made, or if it will remain a part of the on-going firmware. Presumably it was intended to fix some (as yet unknown) problem, but it is going to break any configurations that require such access (as has been shown in the release thread).
The following is a *temporary* fix.
Code:
ip rule del iif br0 lookup ovpnc1 prio 10001
ip rule add lookup ovpnc1 prio 10001
Note: This assumes OpenVPN client #1. For other OpenVPN clients, you need to change it accordingly, including the table name (ovpnc#) and priority (1000#).
Even so, I don't know the impact of this rollback beyond the fact it fixes previously working configurations. These changes will NOT survive a restart of the OpenVPN client either. Not unless you use an openvpn-event script to apply them. That's why I only recommend this fix for those who are desperate. In most cases, I strongly suggest you revert to 388.7 (or whatever was your prior release) and await further information regarding what will be done (if anything) about the negative impact of these changes.
I'm just laying out the field here so we have a single point of reference for discussing these changes. Otherwise, it's going to be difficult to deal w/ user after user experiencing the negative impact in different ways, and just creating more and more threads.
Last edited: