Wir haben es Ihnen gezeigt So lösen Sie WOL aus der Ferne durch „Port Knocking“ auf Ihrem Router . In diesem Artikel wird gezeigt, wie Sie damit einen VPN-Dienst schützen.
Bild von Aviad Raviv & bfick .
Vorwort
Wenn Sie verwendet haben
Integrierte DD-WRT-Funktionalität
für VPN oder haben
ein anderer VPN-Server
In Ihrem Netzwerk können Sie die Fähigkeit schätzen, es vor Brute-Force-Angriffen zu schützen, indem Sie es hinter einer Klopfsequenz verstecken. Auf diese Weise filtern Sie die Skriptkinder heraus, die versuchen, Zugriff auf Ihr Netzwerk zu erhalten. Wie im vorherigen Artikel erwähnt, ist das Klopfen von Ports kein Ersatz für ein gutes Kennwort und / oder eine gute Sicherheitsrichtlinie. Denken Sie daran, dass ein Angreifer mit genügend Geduld die Sequenz erkennen und einen Wiederholungsangriff ausführen kann.
Beachten Sie auch, dass der Nachteil bei der Implementierung darin besteht, dass VPN-Clients, die eine Verbindung herstellen möchten, die Klopfsequenz auslösen müssen
vorweg
und dass sie, wenn sie die Sequenz aus irgendeinem Grund nicht abschließen können, überhaupt kein VPN können.
Überblick
Um * den VPN-Dienst zu schützen, deaktivieren wir zunächst die gesamte mögliche Kommunikation mit ihm, indem wir den Instanziierungsport von 1723 blockieren. Um dieses Ziel zu erreichen, verwenden wir iptables. Dies liegt daran, dass auf diese Weise die Kommunikation auf den meisten modernen Linux / GNU-Distributionen im Allgemeinen und auf DD-WRT im Besonderen gefiltert wird. Wenn Sie weitere Informationen zu iptables wünschen, lesen Sie die Informationen Wiki-Eintrag und schauen Sie sich an unser vorheriger Artikel zum Thema. Sobald der Dienst geschützt ist, erstellen wir eine Klopfsequenz, die den VPN-Instanziierungsport vorübergehend öffnet und ihn nach einer konfigurierten Zeit automatisch schließt, während die bereits eingerichtete VPN-Sitzung verbunden bleibt.
Hinweis: In diesem Handbuch wird der PPTP-VPN-Dienst als Beispiel verwendet. Vor diesem Hintergrund kann dieselbe Methode auch für andere VPN-Typen verwendet werden. Sie müssen lediglich den blockierten Port und / oder den Kommunikationstyp ändern.
Voraussetzungen, Annahmen und Empfehlungen
- Es wird davon ausgegangen, dass Sie eine haben Opkg-fähiger DD-WRT-Router .
- Es wird davon ausgegangen / verlangt, dass Sie die Schritte im Abschnitt „ So klopfen Sie in Ihr Netzwerk (DD-WRT) " leiten.
- Einige Netzwerkkenntnisse werden vorausgesetzt.
Lass uns knacken.
Standard Regel "Neue VPNs blockieren" in DD-WRT
Während der folgende Ausschnitt von „Code“ wahrscheinlich auf jeder selbst respektierenden iptables-Linux / GNU-Distribution funktioniert, da es so viele Varianten gibt, werden wir nur zeigen, wie man ihn auf DD-WRT verwendet. Nichts hindert Sie, wenn Sie möchten, daran, es direkt auf der VPN-Box zu implementieren. Die Vorgehensweise würde jedoch den Rahmen dieses Handbuchs sprengen.
Da wir die Firewall des Routers erweitern möchten, ist es nur logisch, dass wir das Skript "Firewall" ergänzen. Dies würde dazu führen, dass der Befehl iptables jedes Mal ausgeführt wird, wenn die Firewall aktualisiert wird, und somit unsere Erweiterung für Keeps beibehalten wird.
Von der DD-WRT-Web-GUI:
-
Gehen Sie zu "Administration" -> "Befehle".
-
Geben Sie den folgenden "Code" in das Textfeld ein:
inline = "$ (iptables -L INPUT -n | grep -n" state RELATED, ESTABLISHED "| awk -F: {'print $1'})"; Inline = $ (($ Inline-2 + 1)); iptables -I EINGABE "$ inline" -p tcp --dport 1723 -j DROP - Klicken Sie auf "Firewall speichern".
- Erledigt.
Was ist dieser "Voodoo" -Befehl?
Der obige Befehl "Voodoo-Magie" führt Folgendes aus:
- Findet, wo sich die iptable-Leitung befindet, über die bereits eingerichtete Kommunikation geleitet werden kann. Wir tun dies, weil A. Wenn auf DD-WRT-Routern der VPN-Dienst aktiviert ist, befindet er sich direkt unter dieser Linie und B. Es ist wichtig für unser Ziel, weiterhin eingerichtete VPN-Sitzungen nach dem zuzulassen Klopfereignis.
- Zieht zwei (2) von der Ausgabe des Listenbefehls ab, um den Versatz zu berücksichtigen, der durch die Kopfzeilen der Informationsspalten verursacht wird. Fügen Sie anschließend eine (1) zur obigen Zahl hinzu, sodass die Regel, die wir einfügen, unmittelbar nach der Regel steht, die bereits etablierte Kommunikation ermöglicht. Ich habe dieses sehr einfache "mathematische Problem" hier gelassen, nur um die Logik zu verdeutlichen, "warum man eines von der Stelle der Regel reduzieren muss, anstatt eins hinzuzufügen".
KnockD-Konfiguration
Wir müssen eine neue Auslösesequenz erstellen, mit der neue VPN-Verbindungen erstellt werden können. Bearbeiten Sie dazu die Datei knockd.conf, indem Sie sie in einem Terminal ausgeben:
vi /opt/etc/knockd.conf
An die vorhandene Konfiguration anhängen:
[enable-VPN]
Sequenz = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I EINGABE 1 -s% IP% -p tcp --dport 1723 -j AKZEPTIEREN
cmd_timeout = 20
stop_command = iptables -D EINGABE -s% IP% -p tcp --dport 1723 -j AKZEPTIEREN
Diese Konfiguration wird:
- Stellen Sie das Zeitfenster zum Abschließen der Sequenz auf 60 Sekunden ein. (Es wird empfohlen, dies so kurz wie möglich zu halten.)
- Hören Sie sich eine Folge von drei Klopfen an den Ports 2, 1 und 2010 an (diese Reihenfolge ist beabsichtigt, um die Ports-Scanner aus der Spur zu werfen).
- Sobald die Sequenz erkannt wurde, führen Sie den Befehl "start_command" aus. Mit diesem Befehl "iptables" wird oben in den Firewall-Regeln ein "Accept Traffic" für Port 1723 platziert, von dem die Klopfen stammen. (Die% IP% -Richtlinie wird speziell von KnockD behandelt und durch die IP des Klopfursprungs ersetzt.)
- Warten Sie 20 Sekunden, bevor Sie den Befehl "stop_command" ausgeben.
- Führen Sie den Befehl "stop_command" aus. Wenn dieser Befehl "iptables" das Gegenteil bewirkt und die Regel löscht, die die Kommunikation ermöglicht.
Autor Tipps
Während Sie fertig sein sollten, gibt es ein paar Punkte, die ich erwähnen muss.
- Fehlerbehebung. Denken Sie daran, dass bei Problemen das Segment "Fehlerbehebung" am Ende von angezeigt wird der erste Artikel sollte deine erste Station sein.
- Wenn Sie möchten, können Sie die Anweisungen "Start / Stopp" mehrere Befehle ausführen lassen, indem Sie sie mit einem Semi-Colen (;) oder sogar einem Skript trennen. Auf diese Weise können Sie einige raffinierte Dinge erledigen. Zum Beispiel habe ich mir eine * E-Mail gesendet, in der mir mitgeteilt wird, dass eine Sequenz ausgelöst wurde und von wo.
- Vergiss das nicht " Dafür gibt es eine App ”Und obwohl es in diesem Artikel nicht erwähnt wird, werden Sie ermutigt, zu greifen StavFX Android Klopferprogramm .
- Vergessen Sie beim Thema Android nicht, dass normalerweise ein PPTP-VPN-Client vom Hersteller in das Betriebssystem integriert ist.
- Die Methode, zunächst etwas zu blockieren und dann weiterhin bereits etablierte Kommunikation zuzulassen, kann bei praktisch jeder TCP-basierten Kommunikation angewendet werden. In der Tat in der Auf DD-WRT 1 ~ 6 geklopft Filme, die ich vor langer Zeit gemacht habe, als ich das Remote Desktop Protocol (RDP) verwendet habe, das als Beispiel Port 3389 verwendet.