So schlagen Sie in Ihr Netzwerk ein, Teil 2 Schützen Sie Ihr VPN (DD-WRT)
Wir haben Ihnen gezeigt, wie Sie WOL aus der Ferne durch "Port Knocking" an Ihrem Router auslösen. In diesem Artikel wird gezeigt, wie Sie einen VPN-Dienst schützen können.
Bild von Aviad Raviv & bfick.
Vorwort
Wenn Sie die integrierte Funktionalität von DD-WRT für VPN verwendet haben oder einen anderen VPN-Server in Ihrem Netzwerk installiert haben, schätzen Sie möglicherweise die Möglichkeit, ihn vor Brute-Force-Angriffen zu schützen, indem Sie ihn hinter einer Klopfsequenz verbergen. Auf diese Weise filtern Sie die Skriptkiddies heraus, die versuchen, Zugriff auf Ihr Netzwerk zu erhalten. Wie bereits im vorigen Artikel erwähnt, ist das Port-Klopfen kein Ersatz für ein gutes Passwort und / oder eine Sicherheitsrichtlinie. Denken Sie daran, dass ein Angreifer mit genug Geduld die Sequenz entdecken und einen Wiederholungsangriff durchführen kann.
Denken Sie auch daran, dass der Nachteil dieser Implementierung darin besteht, dass VPN-Clients die Klopfsequenz auslösen müssen, wenn sie eine Verbindung herstellen möchten vorher und wenn sie die Sequenz aus irgendeinem Grund nicht abschließen können, können sie überhaupt kein VPN.
Überblick
Um den VPN-Dienst zu schützen, werden wir zunächst die gesamte mögliche Kommunikation mit ihm deaktivieren, indem wir den Instantiating-Port von 1723 blockieren. Um dieses Ziel zu erreichen, verwenden wir iptables. Dies liegt daran, dass die Kommunikation auf den meisten modernen Linux / GNU-Distributionen im Allgemeinen und speziell auf DD-WRT im Besonderen gefiltert wird. Wenn Sie weitere Informationen zu iptables wünschen, sehen Sie sich den Wiki-Eintrag an und werfen Sie einen Blick auf unseren vorherigen Artikel zum Thema. Sobald der Dienst geschützt ist, erstellen wir eine Klopfsequenz, die den VPN-Instantiating-Port vorübergehend öffnet und nach einer konfigurierten Zeit automatisch schließt, während die bereits bestehende VPN-Sitzung verbunden bleibt.
Hinweis: In diesem Handbuch verwenden wir den PPTP-VPN-Dienst als Beispiel. Damit kann dieselbe Methode 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 vorausgesetzt, dass Sie einen DD-WRT-Router mit aktivierter Opkg-Funktion haben.
- Es wird vorausgesetzt / erforderlich, dass Sie die Schritte in der Anleitung „Anleitung zum Einstieg in Ihr Netzwerk (DD-WRT)“ bereits ausgeführt haben.
- Ein gewisses Netzwerkwissen wird vorausgesetzt.
Lass uns krachen.
Standard Regel "Neue VPNs blockieren" für DD-WRT
Das untenstehende Codefragment für Code funktioniert wahrscheinlich auf jeder Linux / GNU-Distribution, die sich auf die Eigenverantwortung von iptables bezieht, da es so viele Varianten gibt, werden wir nur zeigen, wie es mit DD-WRT verwendet werden kann. Wenn Sie möchten, hindert Sie nichts daran, es direkt auf der VPN-Box zu implementieren. Wie Sie dies tun, geht jedoch über den Rahmen dieses Handbuchs hinaus.
Da wir die Firewall des Routers erweitern möchten, ist es nur logisch, dass wir das "Firewall" -Skript hinzufügen. Andernfalls würde der Befehl iptables jedes Mal ausgeführt, wenn die Firewall aktualisiert wird. Dadurch bleibt unsere Augmentation für Keeps erhalten.
Über die Web-GUI von DD-WRT:
- Gehen Sie zu "Administration" -> "Befehle".
- Geben Sie den folgenden "Code" in das Textfeld ein:
inline = "$ (iptables -L INPUT -n | grep -n" zustand RELATED, ESTABLISHED "| awk -F: 'print $ 1')"; Inline = $ (($ Inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP
- Klicken Sie auf "Firewall speichern"..
- Erledigt.
Was ist dieser "Voodoo" -Befehl??
Der obige Befehl "Voodoo-Magie" bewirkt Folgendes:
- Findet, wo sich die iptable-Leitung befindet, über die die bereits bestehende Kommunikation hindurchgeleitet werden kann. Wir tun dies, weil A. Auf DD-WRT-Routern, wenn der VPN-Dienst aktiviert ist, dieser sich unterhalb dieser Linie befindet und B. Es ist für unser Ziel unerlässlich, dass bereits etablierte VPN-Sitzungen nach dem Start weiterhin aktiv sind Klopfereignis.
- Zieht zwei (2) von der Ausgabe des Listungsbefehls ab, um den Versatz zu berücksichtigen, der durch die Informationsspaltenkopfzeilen verursacht wird. Sobald dies erledigt ist, wird der obigen Zahl eine (1) hinzugefügt, so dass die Regel, die wir einfügen, gleich nach der Regel kommt, die bereits etablierte Kommunikation zulässt. Ich habe dieses sehr einfache „mathematische Problem“ hier gelassen, nur um die Logik „warum man eines von der Regel herabsetzen muss, anstatt es hinzuzufügen“ klar zu machen.
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 anfügen:
[Enable-VPN]
Sequenz = 02,02,02,01,01,01,0101,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s% IP% -p tcp --dport 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -p TCP --dport 1723 -j ACCEPT
Diese Konfiguration wird:
- Legen Sie das Zeitfenster für den Abschluss der Sequenz auf 60 Sekunden fest. (Es wird empfohlen, dies so kurz wie möglich zu halten.)
- Hören Sie eine Folge von drei Schlägen an den Ports 2, 1 und 2010 (diese Reihenfolge ist beabsichtigt, Ports-Scanner von der Spur zu werfen).
- Sobald die Sequenz erkannt wurde, führen Sie den "start_command" aus. Mit diesem Befehl "iptables" wird oben auf den Firewall-Regeln "Akzeptieren von Datenverkehr für Port 1723, von dem die Stöße kamen" gesetzt. (Die% IP% -Direktive wird speziell von KnockD behandelt und durch die IP des Klopfursprungs ersetzt.).
- Warten Sie 20 Sekunden, bevor Sie den "stop_command" ausgeben..
- Führen Sie den "stop_command" aus. Wenn dieser "iptables" -Befehl die Umkehrung der obigen Anweisungen ausführt, wird die Regel gelöscht, die die Kommunikation zulässt.
AutorTipps
Sie sollten zwar fest eingestellt sein, aber es gibt ein paar Punkte, die ich erwähnen muss.
- Fehlerbehebung. Denken Sie daran, dass bei Problemen das Segment "Fehlerbehebung" am Ende des ersten Artikels Ihre erste Station sein sollte.
- Wenn Sie möchten, können Sie die Anweisungen zum Starten und Beenden mehrerer Befehle ausführen, indem Sie sie mit einem Semikolon (;) oder sogar einem Skript voneinander trennen. Auf diese Weise können Sie einige nützliche Dinge tun. Ich habe zum Beispiel eine E-Mail geschickt, die mir mitteilt, dass eine Sequenz ausgelöst wurde und von wo aus.
- Vergessen Sie nicht, dass "Dafür gibt es eine App" und obwohl dies in diesem Artikel nicht erwähnt wird, sollten Sie sich das Android-Klopfer-Programm von StavFX aneignen.
- Wenn Sie sich mit Android beschäftigen, vergessen Sie nicht, dass in der Regel ein vom Hersteller hergestellter PPTP-VPN-Client in das Betriebssystem integriert ist.
- Die Methode, zunächst etwas zu blockieren und dann die bereits etablierte Kommunikation zuzulassen, kann auf praktisch jede TCP-basierte Kommunikation angewendet werden. In den Knockd-Filmen auf DD-WRT 1 ~ 6-Filmen habe ich schon vor einiger Zeit das Remote Desktop Protocol (RDP) verwendet, das als Beispiel den Port 3389 verwendet.
Wer stört meinen Schlaf??