7. That is a pretty robust setup as far as I can tell from the info provided. Good on you!
The BananaPi R3 is definitely going to be a bottleneck as far as performance goes. I recommend OPNsense installed on a dedicated firewall over just a router with OpenWRT.
OpenWRT uses the Linux kernel, is really more for WiFi and access points, laggs behind OPNsense which uses FreeBSD and is much more powerful.
But I digress, since OPNsense won't fly on a BananaPi R3.
Also, wireguard is faster and laner and definitely the way to go for most people and in most usecases, but it has a significant limitation as far as privacy and obfuscation goes...it only UDP.
Fun fact: This is why Mullvad VPN is well known for getting blocked by many sites as well as not being a good option for streaming, or circumventing geographical-blocking and censorship by oppressive governments.
Wireguard also forces you to use ChaCha20 encryption and Poly1305 which is definitely more modern, but not as battle tested as other algorithms.
OpenVPN while being code heavy and slower can also use ChaCha20 in addition to other well established encryption protocols. They also have a complete zero logs policy and do not store user IP addresses on the VPN server, whereas WireGuard requires the user’s IP address of the user to be stored on the server until the server reboots. Good on Mullvad for making theor servers RAM only!
WireGuard uses UDP and doesn't support use over TCP, it can't use TCP port 443, which makes the fact you are using a VPN trivial to detect and block. The creator of WireGuard has emphasized that the protocol does't focus on obfuscation and that deep packet inspection is a known limitation.
In contrast, OpenVPN is better out of the box at evading censorship and deep packet inspection since it can use both UDP and TCP, and also supports traffic packet obfuscation through features like Scramble.
If you're going to run Mullvad/Wireguard, check out ProxyGuard. It's a good balance between simplicity and level of obfuscation.
---
"Proxy UDP connections over HTTP(s). The main use case is to proxy WireGuard packets.
It does this by doing a HTTP upgrade request similar to how websockets work.
This means we can tunnel the protocol behind a reverse proxy."
https://www.eduvpn.org/running-wireguard-over-tcp-a-solution-for-udp-blocking-issues/
https://codeberg.org/eduVPN/proxyguard
---
A couple of other things to note:
Did you spoof its MAC address before plugging it into your ISP modem? Otherwise your ISP will have a record of that device attached to your IP/identity. This may be considered extreme for many threat models, but it's easy to do, so why not?
Also, I'm sure you know this, but it's generally better to not have remote access to your server. Opening it up to the internet/leaving SSH access on etc opens you up to being hacked, so you will need to be diligent with good OPSEC setting up and maintaining.
Also, check out wazuh if you want an awesome SIEM. Installing the agent plugin on the Protectli firewall (posted above ) running OPNsense and the manager on your server is good stuff for network security.
https://wazuh.com/
Although there is no wazuh agent that can be installed on a OpenWRT Pi, wazuh does provide agentless monitoring.
https://documentation.wazuh.com/current/user-manual/capabilities/agentless-monitoring/index.html
Hope you (and anyone else reading) finds this note useful :)
#cybersecgirl