Wollten Sie schon immer einmal das besondere „Wohnheimklopfen“ bei Ihrem Router haben, damit dieser erst „die Tür öffnet“, wenn das heimliche Klopfen erkannt wurde? How-To Geek erklärt, wie man den Knock-Daemon auf DD-WRT installiert.
Bild von Bfick und Aviad Raviv
Wenn Sie es noch nicht getan haben, lesen Sie die vorherigen Artikel der Serie:
Vorausgesetzt, Sie sind mit diesen Themen vertraut, lesen Sie weiter. Denken Sie daran, dass diese Anleitung etwas technischer ist und Anfänger beim Modifizieren ihres Routers vorsichtig sein sollten.
Überblick
Um mit einem Gerät/Dienst kommunizieren zu können, müsste man traditionell eine Netzwerkverbindung damit initiieren. Dabei wird jedoch, was im Sicherheitszeitalter so genannt wird, eine Angriffsfläche freigelegt. Der Knock-Daemon ist eine Art Netzwerk-Sniffer, der reagieren kann, wenn eine vorkonfigurierte Sequenz beobachtet wird. Als ein Verbindung muss nicht hergestellt werden Damit der Knock-Daemon einen konfigurierten Ablauf erkennt, wird die Angriffsfläche unter Beibehaltung der gewünschten Funktionalität reduziert. In gewisser Weise werden wir den Router mit einem „zwei Bits“ Antwort (im Gegensatz zum armen Roger…).
In diesem Artikel werden wir:
- Zeigen Sie, wie Sie Knockd verwenden, um den Router mit Wake-On-Lan zu einem Computer in Ihrem lokalen Netzwerk zu machen.
- Zeigen Sie, wie Sie die Knock-Sequenz aus einem auslösen Android-Anwendung, sowie ein Computer.
Hinweis: Während die Installationsanweisungen nicht mehr relevant sind, können Sie sich die Filmreihe ansehen Ich habe «Weg zurück wann» erstellt, um den gesamten Überblick zu sehen des Konfigurierens zum Klopfen. (Entschuldigen Sie einfach die grobe Darstellung).
Auswirkungen auf die Sicherheit
Die Diskussion um „wie sicher ist Knockd?», ist lang und Termine viele Jahrtausende zurück (in Internet-Jahren), aber das Endergebnis ist folgendes:
Knock ist eine Sicherheitsebene im Verborgenen, die nur für andere Mittel wie Verschlüsselung verwendet werden sollte und nicht allein als Abschluss aller Sicherheitsmaßnahmen verwendet werden sollte.
Voraussetzungen, Annahmen & Empfehlungen
- Es wird davon ausgegangen, dass Sie einen Opkg-fähigen DD-WRT-Router haben.
- Etwas Geduld, da die Einrichtung „eine Weile“ dauern kann.
- Es wird dringend empfohlen, ein DDNS-Konto für Ihre externe (normalerweise dynamische) IP einzurichten.
Lass uns krachen
Installation & Grundkonfiguration
Installieren Sie den Knock-Daemon, indem Sie ein Terminal für den Router öffnen und Folgendes ausgeben:
opkg update ; opkg install knockd
Nachdem Knockd jetzt installiert ist, müssen wir die auslösenden Sequenzen und Befehle konfigurieren, die ausgeführt werden, sobald sie ausgelöst werden. Öffnen Sie dazu die Datei „knockd.conf“ in einem Texteditor. Auf dem Router wäre dies:
vi /opt/etc/knockd.conf
Gestalten Sie den Inhalt wie folgt:
[options]
logfile = /var/log/knockd.log
UseSyslog
[wakelaptop]
sequence = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
command = /usr/sbin/wol aa:bb:cc:dd:ee:22 -i $( nvram get lan_ipaddr | cut -d . -f 1,2,3 ).255
tcpflags = sync
Lassen Sie uns das obige erklären:
- Das Segment „Optionen“ ermöglicht die Konfiguration globaler Parameter für den Daemon. In diesem Beispiel haben wir den Daemon angewiesen, ein Protokoll sowohl im Syslog als auch in einer Datei zu führen. Es schadet zwar nicht, beide Optionen zusammen zu verwenden, aber Sie sollten in Betracht ziehen, nur eine davon zu behalten.
- Das Segment „wakelaptop“ ist ein Beispiel für eine Sequenz, die den WOL-Befehl an Ihr LAN für einen Computer mit der MAC-Adresse aa:bb:cc:dd:ee:22 auslöst.
Um weitere Sequenzen hinzuzufügen, kopieren Sie einfach das „wakelaptop“-Segment und fügen Sie es mit neuen Parametern und / oder Befehlen ein, die vom Router ausgeführt werden sollen.
Anlaufen
Damit der Router den Daemon beim Start aufruft, fügen Sie Folgendes an das Skript „geek-init“ aus dem OPKG-Handbuch an:
knockd -d -c /opt/etc/knockd.conf -i "$( nvram get wan_ifname )"
Dadurch wird der Knock-Daemon auf der „WAN“-Schnittstelle Ihres Routers gestartet, sodass er auf Pakete aus dem Internet lauscht.
Klopfen von Android
Im Zeitalter der Portabilität ist es fast unerlässlich, „dafür eine App zu haben“… also StavFX erstellt für die Aufgabe 🙂
Diese App führt die Klopfsequenzen direkt von Ihrem Android-Gerät aus und unterstützt das Erstellen von Widgets auf Ihren Startbildschirmen.
- Installiere das Klopfer-Anwendung aus dem Android Market (bitte auch freundlich sein und eine gute Bewertung geben).
- Starten Sie es nach der Installation auf Ihrem Gerät. Sie sollten von etwas begrüßt werden wie:
- Sie können das Beispielsymbol lange drücken, um es zu bearbeiten, oder auf „Menü“ klicken, um einen neuen Eintrag hinzuzufügen. Ein neuer Eintrag würde so aussehen:
- Fügen Sie Zeilen hinzu und geben Sie die für Ihr Klopfen erforderlichen Informationen ein. Für die Beispiel-WOL-Konfiguration von oben wäre dies:
- Ändern Sie optional das Symbol, indem Sie lange auf das Symbol neben dem Knock-Namen drücken.
- Speichern Sie das Klopfen.
- Tippen Sie einmal auf den neuen Knock im Hauptbildschirm, um ihn zu aktivieren.
- Erstellen Sie optional ein Widget dafür auf einem Startbildschirm.
Denken Sie daran, dass, obwohl wir die Beispielkonfigurationsdatei mit Gruppen von 3 für jeden Port konfiguriert haben (aufgrund des Telnet-Abschnitts unten), bei dieser Anwendung keine Beschränkung der Anzahl der Wiederholungen (wenn überhaupt) für einen Port besteht.
Viel Spaß mit der App, die StavFX hat gespendet 🙂
Klopfen von Windows/Linux
Während es möglich ist, das Knocking mit dem einfachsten Netzwerk-Dienstprogramm, auch bekannt als „Telnet“, durchzuführen, hat Microsoft entschieden, dass Telnet ein „Sicherheitsrisiko“ darstellt und installiert es daher nicht mehr standardmäßig auf modernen Windows. Wenn Sie mich fragen: „Diejenigen, die wesentliche Freiheiten aufgeben können, um ein wenig vorübergehende Sicherheit zu erlangen, verdienen weder Freiheit noch Sicherheit. ~Benjamin Franklin“, aber ich schweife ab.
Der Grund, warum wir die Beispielsequenz für jeden Port auf 3er-Gruppen gesetzt haben, ist, dass Telnet, wenn keine Verbindung zum gewünschten Port hergestellt werden kann, es automatisch noch zweimal versucht. Dies bedeutet, dass Telnet tatsächlich dreimal klopft, bevor es aufgibt. Wir müssen also nur einmal den telnet-Befehl für jeden Port in der Portgruppe ausführen. Dies ist auch der Grund, warum ein Timeout-Intervall von 30 Sekunden gewählt wurde, da wir für jeden Port auf den Timeout von Telnet warten müssen, bis wir die nächste Port-Gruppe ausführen. Es wird empfohlen, diesen Vorgang nach Abschluss der Testphase mit einem einfachen Batch-/Bash-Skript zu automatisieren.
Mit unserer Beispielsequenz würde dies so aussehen:
- Wenn Sie Windows verwenden, befolgen Sie die MS-Anweisung zur Installation von Telnet.
- Gehen Sie zu einer Befehlszeile und geben Sie Folgendes aus:
telnet geek.dyndns-at-home.com 56
telnet geek.dyndns-at-home.com 43
telnet geek.dyndns-at-home.com 1443
Wenn alles gut gelaufen ist, sollte es das sein.
Fehlerbehebung
Wenn Ihr Router nicht auf Sequenzen reagiert, können Sie die folgenden Schritte zur Fehlerbehebung ausführen:
- Protokoll anzeigen – Knockd führt ein Protokoll, das Sie in Echtzeit anzeigen können, um zu sehen, ob die Klopfsequenzen beim Daemon angekommen sind und ob der Befehl korrekt ausgeführt wurde.
Angenommen, Sie verwenden zumindest die Protokolldatei wie im obigen Beispiel, um sie in Echtzeit anzuzeigen, geben Sie in einem Terminal ein:
tail -f /var/log/knockd.log
- Achten Sie auf Firewalls – Manchmal nimmt sich Ihr ISP, Arbeitsplatz oder Internetcafé die Freiheit, die Kommunikation für Sie zu blockieren. In einem solchen Fall, während Ihr Router lauscht, erreichen die Klopfe auf Ports, die von irgendeinem Teil der Kette blockiert werden, den Router nicht und es wird schwierig, darauf zu reagieren. Aus diesem Grund wird empfohlen, Kombinationen auszuprobieren, die die bekannten Ports wie 80, 443, 3389 usw. verwenden, bevor Sie mehr zufällige ausprobieren. Auch hier können Sie das Protokoll anzeigen, um zu sehen, welche Ports die WAN-Schnittstelle des Routers erreichen.
- Probieren Sie die Sequenzen intern aus – Bevor Sie die oben genannte Komplexität, die andere Teile der Kette mit sich bringen können, involvieren, wird empfohlen, dass Sie versuchen, die Sequenzen intern auszuführen, um zu sehen, dass sie A. den Router so treffen, wie Sie es für richtig halten B. den Befehl ausführen/ s wie erwartet. Um dies zu erreichen, können Sie Knockd starten, während Sie an Ihre LAN-Schnittstelle gebunden sind mit:
knockd -d -i "$( nvram get lan_ifnameq )" -c /opt/etc/knockd.conf
Sobald das obige ausgeführt wurde, können Sie den Knocking-Client auf die interne IP des Routers anstatt auf seine externe leiten.
Tipp: Da Knockd auf der „Schnittstellen“-Ebene und nicht auf der IP-Ebene lauscht, möchten Sie möglicherweise, dass eine Instanz von KnockD die ganze Zeit auf der LAN-Schnittstelle ausgeführt wird. Wie «Klopfer“ wurde aktualisiert, um zwei Hosts für das Klopfen zu unterstützen, um Ihre Klopfprofile zu vereinfachen und zu konsolidieren.
- Denken Sie daran, auf welcher Seite Sie stehen – In der obigen Konfiguration ist es nicht möglich, die WAN-Schnittstelle von der LAN-Schnittstelle zu klopfen. Wenn Sie in der Lage sein möchten, unabhängig von „auf welcher Seite Sie stehen“ zu klopfen, können Sie den Dämon einfach zweimal ausführen, einmal an das WAN gebunden wie im Artikel und einmal an das LAN gebunden wie im Debugging-Schritt von oben. Es ist kein Problem, beide zusammen auszuführen, indem Sie einfach den Befehl von oben an dasselbe geek-init-Skript anhängen.
Bemerkungen
Obwohl das obige Beispiel mit verschiedenen anderen Methoden erreicht werden könnte, hoffen wir, dass Sie es verwenden können, um zu lernen, wie Sie fortgeschrittenere Dinge erreichen können.
Ein zweiter Teil dieses Artikels, der den VPN-Dienst hinter einem Klopfen verbirgt, kommt bald, also bleiben Sie dran.
Durch Knocking können Sie: Ports dynamisch öffnen, Dienste deaktivieren/aktivieren, WOL-Computer aus der Ferne und mehr…