Remote-Arbeit im BĂŒro. RDP, Port Knocking, Mikrotik: einfach und sicher

Im Zuge der COVID-19-Pandemie und dem allgemeinen Lockdown in vielen LĂ€ndern war der einzige Weg fĂŒr viele Unternehmen, weiterhin zu operieren, der remote Zugriff auf ArbeitsplĂ€tze ĂŒber das Internet. Es gibt viele relativ sichere Methoden fĂŒr die Remote-Arbeit, aber angesichts des Ausmaßes des Problems ist eine einfache Verbindungsmethode erforderlich, die fĂŒr alle Benutzer zugĂ€nglich ist, ohne dass zusĂ€tzliche Einstellungen, ErklĂ€rungen, mĂŒhsame Beratungen oder lange Anleitungen notwendig sind. Eine beliebte Methode, die viele Administratoren bevorzugen, ist RDP (Remote Desktop Protocol). Der direkte Zugriff auf den Arbeitsplatz ĂŒber RDP löst unser Problem optimal, bis auf einen großen Wermutstropfen: Das Offenhalten des RDP-Ports fĂŒr das Internet ist Ă€ußerst unsicher. Daher schlage ich im Folgenden eine einfache, aber zuverlĂ€ssige Methode zur Absicherung vor.Remote-Arbeit im BĂŒro. RDP, Port Knocking, Mikrotik: einfach und sicher

Da ich oft auf kleine Organisationen stoße, die zur Internetanbindung Mikrotik-GerĂ€te verwenden, werde ich im Folgenden zeigen, wie dies auf Mikrotik realisiert wird. Die Port-Knocking-Schutzmethode ist jedoch auch auf anderen höherwertigen GerĂ€ten mit Ă€hnlichen Einstellungen fĂŒr den Eingangsrouting und die Firewall problemlos umsetzbar.

Kurz ĂŒber Port Knocking. Der ideale extern Schutz eines mit dem Internet verbundenen Netzwerks besteht darin, dass alle Ressourcen und Ports durch eine Firewall von außen geschlossen sind. Auch wenn der Router mit einer entsprechend konfigurierten Firewall auf eingehende Pakete von außen nicht reagiert, lauscht er ihnen. Daher kann der Router so eingestellt werden, dass er bestimmten (Code-)Sequenzen von Netzwerpaketen an verschiedene Ports beim Erhalt diese Pakete von der IP, von der sie stammen, den Zugriff auf bestimmte Ressourcen (Ports, Protokolle usw.) öffnet.

Kommen wir nun zur Sache. Eine detaillierte Beschreibung der Firewall-Einstellungen auf MikroTik werde ich nicht geben – dafĂŒr gibt es im Internet ausreichend hochwertige Quellen. Idealerweise blockiert die Firewall alle eingehenden Pakete, aber

/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,related

erlaubt eingehenden Verkehr von bereits etablierten (established, related) Verbindungen.
Jetzt konfigurieren wir Port Knocking auf MikroTik:

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
move [/ip firewall filter find comment=RemoteRules] 1
/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

Jetzt im Detail:

Die ersten zwei Regeln

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules

verbieten eingehende Pakete von IP-Adressen, die wÀhrend des Port-Scans auf die schwarze Liste gesetzt wurden;

Dritte Regel:

add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules

fĂŒgt die IP-Adresse der Liste der Hosts hinzu, die den richtigen ersten Klopf an den benötigten Port (19000) gemacht haben;
Die folgenden vier Regeln:

add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

erstellen Fangports fĂŒr diejenigen, die versuchen, Ihre Ports zu scannen. Wird ein solcher Versuch erkannt, wird die IP-Adresse fĂŒr 60 Minuten auf die schwarze Liste gesetzt, in der die ersten beiden Regeln verhindern, dass solche Hosts auf die korrekten Ports zugreifen können;

Die nÀchste Regel:

add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

stellt die IP-Adresse fĂŒr eine Minute auf die erlaubte Liste (ausreichend fĂŒr die Verbindungsherstellung), da der zweite korrekte Zugriff auf den benötigten Port (16000) erfolgt ist;

Der nÀchste Befehl:

move [/ip firewall filter find comment=RemoteRules] 1

Das verschiebt unsere Regeln nach oben in der Firewall-Verarbeitungskette. Wahrscheinlich haben wir bereits verschiedene gesperrte Regeln eingerichtet, die das Auslösen unserer neu erstellten Regeln verhindern. Die erste Regel im MikroTik beginnt bei null, aber auf meinem GerĂ€t war die null durch eine interne Regel belegt, und ich konnte sie nicht verschieben – also habe ich sie auf 1 verschoben. Daher schauen wir uns unsere Einstellungen an – wohin wir verschieben können und geben die benötigte Nummer an.

Die nÀchste Einstellung:

/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp_to_33" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

leitet den willkĂŒrlich gewĂ€hlten Port 33890 auf den standardmĂ€ĂŸigen RDP-Port 3389 und die IP-Adresse des benötigten Computers oder Terminalservers weiter. Solche Regeln erstellen wir fĂŒr alle notwendigen internen Ressourcen, wobei es wĂŒnschenswert ist, unterschiedliche externe Ports zu verwenden. NatĂŒrlich mĂŒssen die IP-Adressen interner Ressourcen entweder statisch oder im DHCP reserviert sein. Server.

Jetzt ist unser MikroTik konfiguriert, und wir benötigen ein benutzerfreundliches Verfahren zur Verbindung mit unserem internen RDP. Da wir hauptsÀchlich Windows-Nutzer haben, erstellen wir eine einfache .bat-Datei und benennen sie StartRDP.bat:

1.htm
1.rdp

entsprechend enthÀlt 1.htm den folgenden Code:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
Bitte aktualisieren Sie die Seite, um erneut per RDP zuzugreifen.
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

Hier finden Sie zwei Links zu virtuellen Bildern, die unter der Adresse my_router.sn.mynetname.net gespeichert sind – diese Adresse erhalten wir aus dem DDNS-System von MikroTik, indem wir dies in unserem MikroTik aktivieren: Gehen Sie zum MenĂŒ IP -> Cloud, aktivieren Sie das KontrollkĂ€stchen DDNS Enabled, klicken Sie auf Anwenden und kopieren Sie den DNS-Namen unseres Routers. Dies ist jedoch nur erforderlich, wenn die externe IP-Adresse des Routers dynamisch ist oder eine Konfiguration mit mehreren Internetanbietern verwendet wird.

Der Port in der ersten URL :19000 entspricht dem ersten Port, den Sie ansprechen mĂŒssen, in der zweiten URL entsprechend dem zweiten. Zwischen den Links gibt es eine kurze Anleitung, die zeigt, was zu tun ist, wenn unsere Verbindung aufgrund kurzer Netzwerkprobleme unterbrochen wird – wir aktualisieren die Seite, der RDP-Port öffnet sich fĂŒr uns erneut fĂŒr 1 Minute und unsere Sitzung wird wiederhergestellt. Außerdem verursacht der Text zwischen den img-Tags im Browser eine Mikroverzögerung, die die Wahrscheinlichkeit reduziert, dass das erste Paket den zweiten Port (16000) erreicht – bis jetzt gab es in den letzten zwei Wochen (30 Nutzer) keine derartigen FĂ€lle.

Hier ist die Datei 1.rdp, die wir entweder fĂŒr alle Benutzer gemeinsam oder individuell fĂŒr jeden Benutzer konfigurieren können (so habe ich es gemacht – es ist einfacher, einmal 15 Minuten zu investieren, als mehrere Stunden mit denen zu verbringen, die nicht weiterkommen).

screen mode id:i:2
use multimon:i:1
.....
connection type:i:6
networkautodetect:i:0
.....
disable wallpaper:i:1
.....
full address:s:my_router.sn.mynetname.net:33890
.....
username:s:myuserlogin
domain:s:mydomain

Eine interessante Einstellung hier ist use multimon:i:1 – das aktiviert die Nutzung mehrerer Monitore – einige benötigen dies, kommen aber selbst nicht darauf.

connection type:i:6 und networkautodetect:i:0 – angesichts dessen, dass die meisten mit ĂŒber 10 Mbit/s ins Internet gehen, stellen wir den Verbindungstyp 6 (lokales Netzwerk 10 Mbit und mehr) ein und schalten die Netzwerkerkennung aus, da diese im Standardmodus (auto) selbst bei seltenen, kleinen Verzögerungen im Netzwerk ĂŒber lĂ€ngere Zeit eine reduzierte Geschwindigkeit fĂŒr unsere Sitzung festlegt, was in der Arbeit, insbesondere bei grafischen Programmen, merkliche Verzögerungen verursachen kann.

disable wallpaper:i:1 – wir deaktivieren das Hintergrundbild.
username:s:myuserlogin – den Benutzernamen geben wir an, da ein erheblicher Teil unserer Nutzer ihren Benutzernamen nicht kennt.
domain:s:mydomain – wir geben die Domain oder den Computernamen an.

Um den Prozess der Verbindungsherstellung zu erleichtern, können wir auch PowerShell verwenden — StartRDP.ps1

Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 19000
Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 16000
mstsc /v:my_router.sn.mynetname.net:33890

Ein bisschen ĂŒber den RDP-Client in Windows: Microsoft hat viel Zeit in die Optimierung des Protokolls sowie seiner Server- und Client-Komponenten investiert und viele nĂŒtzliche Funktionen implementiert — dazu gehört die UnterstĂŒtzung von Hardware-3D, die Anpassung der Bildschirmauflösung an Ihren Monitor, Multiscreen und mehr. Allerdings wird alles in einem Modus der AbwĂ€rtskompatibilitĂ€t realisiert. Wenn der Windows-Client 7 ist und der Remote-PC Windows 10, funktioniert RDP unter Verwendung des Protokolls der Version 7.0. GlĂŒcklicherweise können die RDP-Versionen auf neuere aktualisiert werden — zum Beispiel kann das Protokoll von 7.0 (Windows 7) auf 8.1 erhöht werden. Daher ist es wichtig, die Serverkomponenten auf die höchstmöglichen Versionen zu aktualisieren und Links zum Upgrade der RDP-Client-Protokolle bereitzustellen.

Letztendlich haben wir eine einfache und relativ sichere Technologie fĂŒr den Remote-Zugriff auf den PC oder den Terminalserver. FĂŒr eine noch sicherere Verbindung kann unsere Methode des Port Knockings so angepasst werden, dass sie auf mehrere Ebenen erschwert wird, indem zusĂ€tzliche Ports zur ÜberprĂŒfung hinzugefĂŒgt werden – man könnte nach demselben Prinzip 3, 4, 5, 6
 Ports hinzufĂŒgen, sodass ein direkter Zugriff auf Ihr Netzwerk nahezu unmöglich wird.

Vorlagen fĂŒr die Erstellung einer Remote-Verbindung zu RDP.

Quelle: habr.com

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster