openVPN - Firewallregel alles blokieren, ausser bestimmter Server/Port

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    mein erster Post, deswegen erstmal Hallo an alle :)

    Ich komm auch gleich zu meiner Frage: Ich habe mir gestern auf meinen Raspi 3 das openVPN (PiVPN) installiert.

    In meiner Unifi-USG habe ich auch das Portforwarding eingerichtet.

    Ich kann nun ohne Probleme von meinem MacOS/Windows-Rechner einen openVPN-Tunnel aufmachen, und bin auch sofort verbunden. Das klappt schon mal wunderbar.

    mein eigentlichtliches Problem ist aber folgendes: Ich kann, wenn ich mit dem Tunnel verbunden bin, auf mein komplettes Netzwerk zugreifen.

    Das will ich aber verhindern.

    Ich will eigentlich nur folgendes:

    - Mein eigentliches Netz ist die 10.10.10.0/24

    - Ich bekomme nach einem connect die folgende IP-Adresse: 10.8.0.2 (fest zugewiesen in der openVPN-Config)

    - Wenn ich verbunden bin, will ich auf folgende Sachen zugreifen:

    - IP: 10.10.10.49 (Synology-NAS)

    - mit dem Port 5001 (zum anmelden)

    - Zugriff auf IP: 10.10.10.2 (RaspberryPi mit Pi-Hole)

    - mit dem Port 53 (für DNS)

    Der ganze andere Traffic soll komplett aus dem 10.8.0.0-er (openVPN)-Netz blockiert werden.

    Wie realisiere ich das auf meinem openVPN-Raspi? Könnt ihr mir hier helfen? Kann ich hier mit den IPTables was machen? (da kenne ich mich nur nicht aus)

    Vielen Dank an alle schon mal im vorraus.

  • openVPN - Firewallregel alles blokieren, ausser bestimmter Server/Port? Schau mal ob du hier fündig wirst!

  • Aus der Hüfte, ohne Gewähr.

    Code
    iptables -A INPUT -i tun0 -p tcp -d 10.10.10.49 --destination-port 5001 -j accept
    iptables -A INPUT -i tun0 -p udp -d 10.10.10.2 --destination-port 53 -j accept
    iptables -A INPUT -i tun0 -j drop

    Offizieller Schmier und Schmutzfink des Forum.

  • Wie realisiere ich das auf meinem openVPN-Raspi? Könnt ihr mir hier helfen? Kann ich hier mit den IPTables was machen? (da kenne ich mich nur nicht aus)

    Versuch mal auch mit der FORWARD chain:

    Code
    sudo iptables -I FORWARD 1 -i tun0 -p tcp -d 10.10.10.49 --dport 5001 -j ACCEPT
    sudo iptables -I FORWARD 2 -i tun0 -p udp -d 10.10.10.2 --dport 53 -j ACCEPT
    sudo iptables -I FORWARD 3 -i tun0 -p tcp -d 10.10.10.2 --dport 53 -j ACCEPT
    sudo iptables -I FORWARD 4 -i tun0 -p icmp -j ACCEPT
    sudo iptables -I FORWARD 5 -i tun0 -s 10.8.0.0/8 ! -d <IP-Adresse-PI-im-10.10.10.0/24er-Netz> -j REJECT

    Das source-net "10..8.0.0/8" musst Du evtl. anpassen. Die 4. Regel ist zum testen per Ping (icmp).

  • Noch besser wäre PREROUTING, dann kommt das erst gar nicht in den Routing Prozess.

    Der TE will ja filtern. Kennt die PREROUTING chain auch die "table filter"?

    EDIT:

    Man könnte mit der PREROUTING chain, z. B. nat ins Nirwana machen.

    EDIT 2:

    OK, die PREROUTING chain kennt die table raw und mit dieser kann man das target DROP benutzen (, wenn m. E. an dieser Stelle der Inhalt des VPN-Tunnels bekannt ist. Das kann man aber testen.).

    EDIT 3:

    Ich habe es getestet: Wenn man mit der raw table und PREROUTING chain als input-Interface das tun-Interface benutzt, kann man damit auch filtern. Z. B. in meinem VPN:

    Code
    sudo iptables -t raw -I PREROUTING 1 -i tun0 -p icmp -d 192.168.178.43 -j DROP
    Code
    :~$ sudo iptables -nvx -L -t raw
    Chain PREROUTING (policy ACCEPT 54 packets, 6351 bytes)
        pkts      bytes target     prot opt in     out     source               destination         
           1       84 DROP       icmp --  tun0   *       0.0.0.0/0            192.168.178.43      

    Wi-Fi_Signal_Strength  txpower
    iptables chains order scheme iptables-diagram
    nftables-diagram

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.6 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p10 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server, botamusique, ample

    Edited 3 times, last by rpi444 (May 3, 2019 at 1:28 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!