I got this thing working. So people who are looking for a solution to a similar problem might find this request. For my feeling it's pretty fair to leave a note about the solution here.
At the right moment I found some help. A person very deep into this matter had a look at my setup and a bunch of great ideas where to start solving the problem. That kind of help really kicked me forward!
Please be aware that working with iptables might lock you out of your server. Whatever you do, being able to physically work in front of the server is needed! Whatever you change with iptables will work immediately.
Also check out the names of your network devices, ip addresses, ports, etc. Don't use mine, they likely will not work at your configuration.
Here comes the solution:
1. Use iptables. If you do, do it proper and don't use ufw at the same time. You will not need it.
$sudo apt purge ufw
2. Don't limit anything at start. That means:
.conf for tun0 => "client-to-client"
.conf for tun1 => "client-to-client"
/etc/sysctl.conf => "net.ipv4.ip_forward=1"
3. Now take 2 or 3 hours to get the basics of iptables. It's not too hard, but needed!
Install "iptables-persistent" and learn how to save the configuration of iptables.
4. Make iptables securing your installation:
#ip6tables -P INPUT DROP
#ip6tables -P FORWARD DROP
#ip6tables -P OUTPUT DROP
#iptables -P INPUT DROP
#iptables -P FORWARD DROP
Now you locket yourself out 😉
5. Make yourself able to connect to your server via SSH on eth0:
#iptables -A INPUT -i eth0 -p tcp -m tcp --dport 12345 -j ACCEPT
6. Make your two instances of OpenVPN to let the clients connect via eth0:
#iptables -A INPUT -i eth0 -p udp -m udp --dport 23456 -j ACCEPT
#iptables -A INPUT -i eth0 -p udp -m udp --dport 34567 -j ACCEPT
7. Make yourself able to ping all (server and clients) from your server:
#iptables -I INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
8. Make all clients able to ping each other:
#iptables -A INPUT -d 10.11.12.0/32 -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -d 10.20.30.0/32 -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
9. Let the network of those who should see all being able to see the network of those who only should see themselves:
#iptables -A FORWARD -s 10.20.30.0/24 -o tun0 -j ACCEPT
10. Let the clients who already are connected be able to forward to each other. This leads to the point where those who should not see each other forward to those who should see all:
#iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
11. Isolate those, who should only see themselves:
.conf for tun0 => ";client-to-client"
If you usually work on Windows feel free to make a reboot. When you saved the rules, this will not change a thing 😉
Done!