So erstellen Sie ein VPN Killswitch mit Iptables unter Linux

So erstellen Sie ein VPN Killswitch mit Iptables unter Linux

Zielsetzung

Verwenden Sie Iptables, um alle Internetverbindungen zu blockieren, falls Ihr VPN getrennt ist.

Verteilungen

Dies funktioniert bei jeder Linux -Verteilung.

Anforderungen

Eine funktionierende Linux -Installation mit Root -Privilegien.

Konventionen

  • # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
  • $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Einführung

Wenn Sie mit einem VPN verbunden sind, benötigen Sie einen Killswitch. Nein, es ist nicht so Metall, wie es sich anhört. Es ist nur ein Mechanismus, der Ihre Internetverbindung stoppt, wenn Sie vom VPN getrennt werden. Es schützt Sie vor versehentlichempfindlichen sensiblen Informationen ins Internet, wenn die VPN -Verbindung sinkt.

Einige VPN-Dienste bieten Kunden ein integriertes Killswitch, aber keine ist so zuverlässig wie die Verwendung von Iptables. Da Iptables unabhängig von Ihrem VPN -Dienst ist und in den Kernel selbst integriert ist, scheitert es nicht, wenn Ihr VPN dies tut. Iptables ist auch eine gut geplante Sicherheitstechnologie, die Ihren Computer sicher halten kann und wird.



Sysctl

Bevor Sie anfangen, Iptables -Regeln zu erstellen, sollten Sie einige Änderungen an der sysctl Aufbau. In einigen Verteilungen befindet es sich um /etc/sysctl.D/99-SYSCTL.Conf. Andere haben es bei /etc/sysctl.Conf. Öffnen Sie diese Datei und suchen Sie die folgende Zeile und ändern Sie sie so, dass sie dem Beispiel hier übereinstimmt.

Netz.IPv4.ip_forward = 1

Fügen Sie dann die folgenden Zeilen am Ende der Datei hinzu. Stellen Sie sicher, dass Sie die Schnittstellen so ändern, dass sie den auf Ihrer Maschine entspricht.

Netz.IPv6.Conf.alle.disable_ipv6 = 1 net.IPv6.Conf.Standard.disable_ipv6 = 1 net.IPv6.Conf.LO.disable_ipv6 = 1 net.IPv6.Conf.Eth0.disable_ipv6 = 1 

Speichern und schließen. Dann renne:

# sysctl -p 

Richten Sie das Dokument ein

Jetzt können Sie eine Datei für Ihre Regeln erstellen. Es spielt keine Rolle, wo Sie es schaffen, also machen Sie einfach einen. Es wird als bezeichnet als IPv4 für diesen Leitfaden.

Starten Sie die Datei, indem Sie die folgenden Zeilen hinzufügen. Sie werden der Anfang und das Ende der Datei sein.

*Filter Commit 

Grundregeln

Bevor Sie Iptables konfigurieren, um den Datenverkehr zu ermöglichen, den Sie für den Standard umschalten müssen, um den gesamten Datenverkehr zu verbieten. Fügen Sie diese drei Regeln hinzu, um standardmäßig den gesamten Datenverkehr abzugeben.

-P Eingangsabfall -p Vorwärtsabfall -P Ausgangsabfall 


Eingang

Es ist am sichersten, nur eingehenden Verkehr von etablierten oder verwandten Verbindungen zu ermöglichen. Richten Sie das als nächstes ein.

-Ein Eingang -m ConnTrack -Cctstate verwandt, etabliert -J Akzeptieren 

Loopback und Ping

Ermöglichen Sie als nächstes die Loopback -Schnittstelle und das Ping.

-A Output -o lo -j Akzeptieren -a -Ausgang -o Tun0 -p icmp -j Akzeptieren 

Dies setzt voraus, dass Ihre VPN -Verbindung eingeschaltet ist Tun0. Überprüfen Sie das mit ip a, Wenn Sie sich nicht sicher sind.

Lan

Es ist nicht sehr sinnvoll, Ihren LAN -Verkehr zu schalten oder zu blockieren, insbesondere in einem Heimnetzwerk. Geben Sie also auch das zu.

-Ein Ausgang -d 192.168.1.0/24 -J Akzeptieren 

DNS

Für diesen nächsten Teil müssen Sie die IP -Adresse des DNS -Servers Ihres VPN -DNS -Servers kennenlernen. Wenn Ihr VPN Zugriff hat oder Ihre Auflösung.Conf, Sie werden sie wahrscheinlich finden, ich habe da.

-Ein Ausgang -d 10.45.16.1 -j akzeptieren 

Erlauben Sie das VPN

Natürlich müssen Sie das VPN selbst zulassen. Dies gibt zwei Teile. Sie müssen sowohl den Serviceport als auch die Schnittstelle zulassen.

-A output -p udp -m udp - -dort 1194 -j ACKETPEN -a Output -o Tun0 -j Akzeptieren 

Überprüfen Sie erneut den Port und die Schnittstelle, die Ihre VPN -Verbindung verwendet.

Sie könnten hier anhalten. Dies wird gut für einen Killswitch funktionieren. Wenn Sie jedoch möchten, dass Iptables auch als reguläre Firewall fungieren und Verbindungen auch an unerwünschten Ports blockieren, können Sie das tun.

Von hier aus würden Sie die letzte Zeile löschen, die den gesamten Verkehr aufnimmt Tun0, und ersetzen Sie es durch spezifische Zulagen für die Ports, die Sie zulassen möchten.

-A Output -o TUN0 -P TCP - -dort 443 -j ACCEPTION -A -Ausgang -o Tun0 -p tcp - -dort 80 -j ACCEPTION -a OUTTION -O TUN0 -P TCP - -dort 993 -j Accept -a Ausgabe -O TUN0 -P TCP --Dport 465 -J Akzeptieren 

Sie bekommen die allgemeine Idee. Es ist länger und mühsamer, aber es gibt Ihnen mehr Kontrolle darüber, was der Verkehr durchläuft.



IPv6

IPv6 ist momentan wirklich schlecht für VPNs. Die meisten unterstützen es nicht angemessen, und Ihre Informationen können über diese Verbindung hinausgehen. Es ist am besten, es ganz abzuschalten.

Erstellen Sie eine andere Datei für IPv6 und blockieren Sie alles.

-P Eingangsabfall -p Vorwärtsabfall -P Ausgangsabfall 

Begehen

Sie müssen Ihre Dateien in Iptables importieren, damit sie wirksam werden können. Erstens, die alten Regeln auszuräumen.

# iptables -f && iptables -x 

Importieren Sie die neuen aus Ihren Dateien.

# iptables-restore < /tmp/ipv4 # ip6tables-restore < /tmp/ipv6 

Mach es dauerhaft

Iptables speichert seinen Status nach einem Neustart standardmäßig nicht. Sie müssen das selbst einrichten.

Debian/Ubuntu

Debian-basierte Systeme haben ein Programm namens namens, iptables-persistent. Es ist ein Dienst, der die Sicherung und das Laden Ihrer Konfigurationen übernimmt.

Wenn Sie es installieren, iptables-persistent Sie werden Sie fragen, ob Sie Ihre vorhandene Konfiguration speichern möchten. Sag ja.

# APT ITTABLES-PERSISTENT INSTALLIEN 

Da Debian Systems standardmäßig Dienste für das Start ausführen, müssen Sie nichts anderes tun.



Andere Systeme

Andere Systeme haben verschiedene Möglichkeiten, damit umzugehen. Das erste ist zu bearbeiten /etc/sysconfig/iptables-config. Dort wird es eine von zwei Zeilen geben. Bearbeiten Sie den, den Sie wie folgt aussehen müssen.

Iptables_save_on_stop = "yes" oder iptables_save_on_restart = "Ja" 

Die andere Möglichkeit besteht. Erstellen Sie ein Verzeichnis, in dem Sie Ihre Regeln speichern möchten.

# mkdir/etc/iptables/ # iptables-Save>/etc/iptables/iptables.Regeln # IP6Tables-Save>/etc/iptables/ip6tables.Regeln 

Erstellen Sie dann ein Skript, um diese Regel zu laden, wenn Ihr Computer startet.

#! /bin/bash iptables-restore < /etc/iptables/iptables.rules; ip6tables-restore < /etc/iptables/ip6tables.rules; 

OpenRC

OpenRC -Systeme wie Gentoo haben ihre eigene Art, die Konfigurationen zu speichern.

# RC-Service Iptables speichern # RC-Service IP6Tables Speichern # RC-Service Iptables Start # RC-Service IP6Tables Start # RC-Update Hinzufügen iptables Standard # RC-Update Fügen Sie IP6Tables Default hinzu 

Gedanken schließen

Durch die Verwendung eines Iptables-basierten Killswitch macht Ihr VPN viel sicherer. Nach und durch und durch liegende Daten besiegt den Zweck der Verwendung eines VPN. Daher sollte das Anhalten von Lecks eine oberste Priorität haben.

Vertrauen Sie den sogenannten Killswitches nicht, die in VPN-Kunden eingebacken sind. Die meisten funktionieren nicht. Der einzige Weg, um wirklich sicherzustellen, dass Ihre Daten nicht austreten, besteht darin, sie selbst mit Iptables zu machen.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Installieren Sie Arch Linux in VMware Workstation
  • Linux -Download
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Grundlegende Linux -Befehle
  • Dinge zu installieren auf Ubuntu 22.04
  • Manjaro Linux Installation