6Aug
Wir haben Ihnen gezeigt, wie Sie WOL per "Port Knocking" auf Ihrem Router remote auslösen können. In diesem Artikel zeigen wir, wie Sie damit einen VPN-Dienst schützen können.
Bild von Aviad Raviv &bfick.
Vorwort
Wenn Sie DD-WRTs eingebaute Funktionalität für VPN verwendet haben oder einen anderen VPN-Server in Ihrem Netzwerk haben, könnten Sie die Möglichkeit schätzen, sie vor Brute-Force-Angriffen zu schützen, indem Sie sie hinter einer Klopffolge verstecken. Auf diese Weise filtern Sie die Skript-Kiddies heraus, die versuchen, auf Ihr Netzwerk zuzugreifen. Wie bereits im vorherigen Artikel erwähnt, ist Port-Klopfen kein Ersatz für ein gutes Passwort und / oder Sicherheitsrichtlinien. 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, wenn ein VPN-Client eine Verbindung herstellen möchte, er vorher die Knock-Sequenz auslösen müsste und wenn sie die Sequenz aus irgendeinem Grund nicht abschließen könntenwird überhaupt kein VPN möglich sein.
Übersicht
Um * den VPN-Dienst zu schützen, werden wir zuerst alle möglichen Kommunikation damit deaktivieren, indem Sie den instanziierenden Port von 1723 blockieren. Um dieses Ziel zu erreichen, werden wir iptables verwenden. Dies liegt daran, dass die Kommunikation auf den meisten modernen Linux / GNU-Distributionen im Allgemeinen und auf DD-WRT im Besonderen gefiltert wird. Wenn Sie mehr Informationen über iptables wünschen, lesen Sie den Wiki-Eintrag und werfen Sie einen Blick auf unseren vorherigen Artikel zu diesem 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. Wenn Sie die gleiche Methode für andere VPN-Typen verwenden, müssen Sie nur den blockierten Port und / oder den Kommunikationstyp ändern.
Voraussetzungen, Annahmen &Empfehlungen
- Es wird vorausgesetzt, dass Sie einen Opkg-fähigen DD-WRT-Router haben.
- Es wird vorausgesetzt / erforderlich, dass Sie die Schritte im Handbuch "How To Knock Into Your Network( DD-WRT)" bereits ausgeführt haben.
- Einige Netzwerkkenntnisse werden vorausgesetzt.
Lässt knacken.
Standard "Blockiere neue VPNs" -Regel auf DD-WRT
Während der folgende Ausschnitt von "Code" wahrscheinlich auf jeder, selbst-respektierenden, iptables-Verwendung, Linux / GNU-Verteilung funktionieren würde, weil es so viele Varianten gibt, werden wir es tunzeige nur, wie man es auf DD-WRT benutzt. Nichts hält Sie davon ab, es direkt auf der VPN-Box zu implementieren. Wie dies jedoch geschieht, geht über den Rahmen dieses Leitfadens hinaus.
Da wir die Firewall des Routers erweitern wollen, ist es nur logisch, dass wir das Skript "Firewall" hinzufügen würden. Dies würde dazu führen, dass der iptables-Befehl jedes Mal ausgeführt wird, wenn die Firewall aktualisiert wird, und unsere Augmentation für Aufbewahrungszwecke beibehalten wird.
Von DD-WRT's Web-GUI:
- Gehen Sie zu "Administration" - & gt;"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".
- Fertig.
Was ist das "Voodoo" -Befehl?
Der obige "voodoo magic" -Befehl geht folgendermaßen vor:
- Findet, wo die iptable-Zeile ist, die es ermöglicht, bereits aufgebaute Kommunikation zu durchlaufen. Wir tun dies, weil A. Auf DD-WRT-Routern, wenn der VPN-Dienst aktiviert ist, wird es direkt unterhalb dieser Linie und B lokalisiert. Es ist wesentlich für unser Ziel, weiterhin bereits etablierte VPN-Sitzungen nach dem zu lebenklopfendes Ereignis.
- Setzt zwei( 2) von der Ausgabe des Auflistungsbefehls ab, um den Offset zu berücksichtigen, der von den Informationsspaltenüberschriften verursacht wird. Sobald dies erledigt ist, wird eins( 1) zu der obigen Nummer hinzugefügt, so dass die Regel, die wir einfügen, direkt nach der Regel kommt, die bereits etablierte Kommunikation erlaubt. Ich habe dieses sehr einfache "Mathe-Problem" hier gelassen, nur um die Logik von "warum man einen vom Platz der Regel reduzieren muss, anstatt einen zu ihm hinzuzufügen" klarzustellen.
KnockD Konfiguration
Wir müssen eine neue Trigger-Sequenz erstellen, die das Erstellen neuer VPN-Verbindungen ermöglicht. 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]
sequence = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_befehl = iptables -I EINGANG 1 -s% IP% -p tcp --dport 1723 -j AKZEPTIEREN
cmd_timeout = 20
stop_befehl = iptables -D INPUT -s% IP% -ptcp --dport 1723 -j ACCEPT
Diese Konfiguration bewirkt Folgendes:
- Stellen Sie das Zeitfenster für die Abfolge auf 60 Sekunden ein.(Es wird empfohlen, dies so kurz wie möglich zu halten)
- Hören Sie sich eine Abfolge von drei Schlägen an den Ports 2, 1 und 2010 an( diese Reihenfolge ist beabsichtigt, um Portscanner aus der Spur zu werfen).
- Sobald die Sequenz erkannt wurde, führen Sie den Befehl "start_command" aus. Dieser "iptables" -Befehl legt einen "Empfang von Verkehr, der für Port 1723 bestimmt ist, von wo aus die Stöße kamen" oben auf die Firewall-Regeln.(Die% IP% -Richtlinie wird speziell von KnockD behandelt und durch die IP des Klopfursprungs ersetzt).
- Warten Sie 20 Sekunden, bevor Sie den "stop_command" ausführen.
- Führe den "stop_command" aus. Wobei dieser "iptables" -Befehl das Gegenteil von dem obigen ausführt und die Regel löscht, die Kommunikation erlaubt.
Author 's Tipps
Während Sie sollten alle festgelegt werden, gibt es ein paar Punkte, die ich fühle mich erwähnen müssen.
- Fehlerbehebung. Denken Sie daran, dass das Problembehebungssegment am Ende des ersten Artikels Ihre erste Anlaufstelle sein sollte, wenn Sie Probleme haben.
- Wenn Sie möchten, können Sie die "start / stop" -Direktiven mehrere Befehle ausführen lassen, indem Sie sie mit einem Semi-Colen( ;) oder sogar einem Skript trennen. Dadurch können Sie einige nette Dinge tun. Zum Beispiel habe ich geklickt, mir eine * Email zu schicken, die mir sagt, dass eine Sequenz ausgelöst wurde und von wo.
- Vergessen Sie nicht, dass "es eine App dafür gibt" und obwohl es in diesem Artikel nicht erwähnt wird, werden Sie ermutigt, das Android-Klopfer-Programm von StavFX zu greifen.
- Wenn es um Android geht, vergiss nicht, dass ein PPTP VPN Client normalerweise vom Hersteller in das Betriebssystem integriert ist.
- Die Methode, zunächst etwas zu blockieren und dann die bereits bestehende Kommunikation fortzusetzen, kann auf praktisch jeder TCP-basierten Kommunikation verwendet werden. In der Tat in den Knockd auf DD-WRT 1 ~ 6 Filme, habe ich weit zurück, wenn ich das Remote-Desktop-Protokoll( RDP) verwendet, die Port 3389 als Beispiel verwendet.
Wer stört meinen Schlummer?