Fernarbeit im Büro. RDP, Port Knocking, Mikrotik: einfach und sicher

Im Zusammenhang mit der Pandemie des Covid-19-Virus und der universellen Quarantäne in vielen Ländern ist der einzige Ausweg aus vielen Unternehmen, um weiter zu arbeiten, der Fernzugriff auf Arbeitsplätze über das Internet. Es gibt viele relativ sichere Methoden für die Fernarbeit. Angesichts des Ausmaßes des Problems benötigen Sie jedoch eine einfache Methode, mit der jeder Benutzer eine Remoteverbindung zum Büro herstellen kann, ohne dass zusätzliche Einstellungen, Erklärungen, langwierige Konsultationen und lange Anweisungen erforderlich sind. Diese Methode ist der Favorit vieler Admins RDP (Remote Desktop Protocol). Die direkte Verbindung zum Arbeitsplatz über RDP löst unser Problem idealerweise, bis auf eine große Fliege in der Salbe - das Offenhalten des RDP-Anschlusses für das Internet ist sehr unsicher. Daher schlage ich im Folgenden eine einfache, aber zuverlässige Schutzmethode vor.Bild

Da ich häufig auf kleine Organisationen stoße, in denen Mikrotik-Geräte als Internetzugang verwendet werden, wird im Folgenden gezeigt, wie dies auf Mikrotik implementiert wird. Die Port Knocking-Schutzmethode lässt sich jedoch problemlos auf anderen Geräten höherer Klasse mit denselben Einstellungen für den Eingaberouter und implementieren Firewall

Kurz über Port Knocking . Ein idealer externer Schutz für ein mit dem Internet verbundenes Netzwerk besteht darin, dass alle Ressourcen und Ports extern von einer Firewall geschlossen werden. Und obwohl ein Router mit einer solchen konfigurierten Firewall in keiner Weise auf Pakete von außen reagiert, wartet er auf sie. Daher können Sie den Router so konfigurieren, dass beim Empfang einer bestimmten (Code-) Sequenz von Netzwerkpaketen an verschiedenen Ports (der Router) für IP, von dem die Pakete stammen, der Zugriff auf bestimmte Ressourcen (Ports, Protokolle usw.) geöffnet wird.

Nun zum Punkt. Ich werde die Firewall-Einstellungen auf Mikrotik nicht detailliert beschreiben - das Internet ist dafür voll von hochwertigen Quellen. Im Idealfall blockiert eine Firewall jedoch alle eingehenden Pakete

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


Ermöglicht eingehenden Datenverkehr von hergestellten (verwandten) Verbindungen.
Konfigurieren Sie nun 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 mehr: die

ersten beiden 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

Verhindern Sie eingehende Pakete von IP-Adressen, die beim Scannen von Ports auf die schwarze Liste gesetzt werden.

Die 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 IP zur Liste der Hosts hinzu, die den gewünschten ersten Klopfen am gewünschten Port ausgeführt haben (19000).
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 Sie Trap-Ports für diejenigen, die Ihre Ports scannen möchten. Wenn solche Versuche erkannt werden, setzen Sie ihre IP für 60 Minuten auf die schwarze Liste. Während dieser Zeit verhindern die ersten beiden Regeln, dass solche Hosts an die richtigen Ports klopfen.

Die folgende 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

setzt ip in die Liste der zulässigen für 1 Minute (genug, um eine Verbindung herzustellen), da das zweite richtige Klopfen an den gewünschten Port (16000) erfolgt;

Nächster Befehl:

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

Verschiebt unsere Regeln in die Firewall-Verarbeitungskette, da höchstwahrscheinlich bereits andere Verbotsregeln konfiguriert sind, die verhindern, dass unsere neu erstellten funktionieren. Die allererste Regel in Mikrotik beginnt bei Null, aber auf meinem Gerät war Null von der eingebauten Regel belegt und es war unmöglich, sich zu bewegen - ich bin zu 1 übergegangen. Daher sehen wir uns unsere Einstellungen an - wo Sie sich bewegen und die gewünschte Nummer angeben können.

Die folgende 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 zufällig ausgewählten Port 33890 an einen regulären RDP-Port 3389 und die IP des von uns benötigten Computers oder Terminalservers weiter. Wir erstellen solche Regeln für alle erforderlichen internen Ressourcen und legen vorzugsweise nicht standardmäßige (und unterschiedliche) externe Ports offen. Natürlich muss die IP der internen Ressourcen entweder statisch oder auf einem DHCP-Server gesichert sein.

Jetzt ist unsere Mikrotik konfiguriert und wir benötigen ein einfaches Verfahren, damit der Benutzer eine Verbindung zu unserem internen RDP herstellen kann. Da wir hauptsächlich Windows-Benutzer haben, erstellen wir eine einfache Bat-Datei und nennen sie StartRDP.bat:

1.htm
1.rdp

Dementsprechend enthält 1.htm den folgenden Code:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
       RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

Es enthält zwei Links zu imaginären Bildern, die sich unter der Adresse my_router.sn.mynetname.net befinden. Wir übernehmen diese Adresse aus dem DDNS-System von Mikrotik, indem wir dies in unserer Mikrotik vorab aktivieren: Gehen Sie zum Menü IP-> Cloud - aktivieren Sie das Kontrollkästchen DDNS aktiviert, klicken Sie auf Übernehmen und Kopieren Sie den DNS-Namen unseres Routers. Dies ist jedoch nur erforderlich, wenn die externe IP des Routers dynamisch ist oder eine Konfiguration mit mehreren Internetanbietern verwendet wird.

Der Port in der ersten Verbindung: 19000 entspricht dem ersten Port, an den Sie klopfen müssen, in der zweiten bzw. der zweiten. Zwischen den Links befindet sich eine kurze Anweisung, die zeigt, was zu tun ist, wenn unsere Verbindung aufgrund kurzer Netzwerkprobleme plötzlich unterbrochen wird. Wir aktualisieren die Seite, der RDP-Port wird für 1 Minute erneut für uns geöffnet und unsere Sitzung wird wiederhergestellt. Außerdem bildet der Text zwischen den img-Tags eine Mikroverzögerung für den Browser, wodurch die Wahrscheinlichkeit verringert wird, dass das erste Paket an den zweiten Port (16000) geliefert wird. Bisher gab es in zwei Wochen (30 Personen) keine derartigen Fälle.

Als nächstes folgt die 1.rdp-Datei, die wir für alle oder separat für jeden Benutzer konfigurieren können (ich habe dies getan - es ist einfacher, zusätzliche 15 Minuten als mehrere Stunden zu verbringen, um diejenigen zu konsultieren, die es nicht herausfinden konnten).

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

Von den interessanten Einstellungen hier verwenden Sie multimon: i: 1 - dies schließt die Verwendung mehrerer Monitore ein - einige benötigen es, aber sie werden nicht daran denken, es selbst einzuschalten.

Verbindungstyp: i: 6 und Netzwerkautodetekt: i: 0 - Da der Großteil des Internets höher als 10 Mbit / s ist, aktivieren Sie den Verbindungstyp 6 (lokales Netzwerk 10 Mbit / s und höher) und deaktivieren Sie den Netzwerkautodetekt. Wenn dies standardmäßig (automatisch) ist, ist dies sogar selten Die Netzwerkverzögerung stellt automatisch permanent eine unterschätzte Geschwindigkeit für unsere Sitzung ein, was zu merklichen Verzögerungen bei der Arbeit führen kann, insbesondere bei Grafikprogrammen.

Hintergrundbild deaktivieren: i: 1 -
Benutzername des Desktop-Images deaktivieren : s: myuserlogin - Geben Sie den Benutzernamen an, da ein erheblicher Teil unserer Benutzer ihren Benutzernamen nicht kennt
domain: s: mydomain - Geben Sie den Domänen- oder Computernamen an.

Wenn Sie jedoch das Erstellen einer Verbindungsprozedur vereinfachen möchten, können Sie auch PowerShell - StartRDP.ps1 verwenden

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

Auch ein wenig über den RDP-Client in Windows: MS hat einen langen Weg zur Optimierung des Protokolls und seiner Server- und Clientseite zurückgelegt und viele nützliche Funktionen implementiert - z. B. Arbeiten mit Hardware-3D, Optimieren der Bildschirmauflösung für Ihren Monitor, Multi-Screen und mehr. Aber natürlich ist alles im Abwärtskompatibilitätsmodus implementiert. Wenn der Client Windows 7 und der Remote-PC Windows 10 ist, funktioniert RDP mit der Protokollversion 7.0. Der Vorteil ist jedoch, dass Sie RDP-Versionen auf neuere Versionen aktualisieren können. Beispielsweise können Sie die Protokollversion von 7.0 (Windows 7) auf 8.1 aktualisieren. Aus Gründen der Benutzerfreundlichkeit von Clients ist es daher erforderlich, die Version der Serverseite zu maximieren und Links zu entfernen, um auf neue Versionen von RDP-Protokollclients zu aktualisieren.

Als Ergebnis verfügen wir über eine einfache und relativ sichere Technologie für die Remoteverbindung mit einem funktionierenden PC oder Terminalserver. Für eine sicherere Verbindung kann unsere Port Knocking-Methode für Angriffe um mehrere Größenordnungen kompliziert sein, indem Ports zur Überprüfung hinzugefügt werden. Sie können 3,4,5,6 hinzufügen ... dieselbe Logik, und in diesem Fall ist ein direktes Eindringen in Ihr Netzwerk fast unmöglich .

Dateibräume zum Erstellen einer Remoteverbindung zu RDP .

All Articles