Werken op afstand op kantoor. RDP, Port Knocking, Mikrotik: eenvoudig en veilig

Als gevolg van de covid-19-viruspandemie en de algemene quarantaine in veel landen is de enige manier voor veel bedrijven om te blijven werken toegang op afstand tot werkplekken via internet. Er zijn veel relatief veilige methoden voor werken op afstand, maar gezien de omvang van het probleem is er behoefte aan een methode die voor iedere gebruiker eenvoudig is om op afstand verbinding te maken met het kantoor, zonder de noodzaak van aanvullende instellingen, uitleg, vervelende consultaties en langdurige gesprekken. instructies. Deze methode is geliefd bij veel RDP-beheerders (Remote Desktop Protocol). Rechtstreeks verbinding maken met een werkstation via RDP lost ons probleem idealiter op, behalve één grote vlieg in de zalf: het openhouden van de RDP-poort voor internet is zeer onveilig. Daarom stel ik hieronder een eenvoudige maar betrouwbare beschermingsmethode voor.Werken op afstand op kantoor. RDP, Port Knocking, Mikrotik: eenvoudig en veilig

Omdat ik vaak kleine organisaties tegenkom waar Mikrotik-apparaten als internetverbinding worden gebruikt, zal ik hieronder laten zien hoe je dit op Mikrotik kunt implementeren, maar de Port Knocking-beveiligingsmethode kan eenvoudig worden geïmplementeerd op andere apparaten van hogere klasse met vergelijkbare invoerrouterinstellingen en firewall

Kort over Port Knocking. De ideale externe bescherming van een netwerk dat met internet is verbonden, is wanneer alle bronnen en poorten van buitenaf zijn afgesloten door een firewall. En hoewel een router met zo'n geconfigureerde firewall op geen enkele manier reageert op pakketten die van buitenaf komen, luistert hij er wel naar. Daarom kunt u de router zo configureren dat wanneer deze een bepaalde (code)reeks netwerkpakketten op verschillende poorten ontvangt, deze (de router) voor het IP-adres waar de pakketten vandaan komen, de toegang tot bepaalde bronnen (poorten, protocollen, enz.) ontzegt. .).

Nu ter zake. Ik zal geen gedetailleerde beschrijving geven van het instellen van een firewall op Mikrotik - het internet staat vol met kwaliteitsbronnen hiervoor. Idealiter blokkeert een firewall alle binnenkomende pakketten, maar

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

Staat binnenkomend verkeer toe van reeds tot stand gebrachte (gevestigde, gerelateerde) verbindingen.
Nu configureren we Port Knocking op 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

Nu in meer detail:

eerste twee regels

/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

binnenkomende pakketten verbieden van IP-adressen die op de zwarte lijst stonden tijdens het scannen van poorten;

derde 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

voegt ip toe aan de lijst met hosts die de juiste eerste keer op de gewenste poort hebben geklopt (19000);
De volgende vier regels:

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

creëer trap-poorten voor degenen die uw poorten willen scannen, en wanneer dergelijke pogingen worden gedetecteerd, zetten ze hun IP-adres gedurende 60 minuten op de zwarte lijst, gedurende welke de eerste twee regels dergelijke hosts niet de kans geven om op de juiste poorten aan te kloppen;

Volgende 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

plaatst het ip-adres gedurende 1 minuut in de lijst met toegestane adressen (genoeg om een ​​verbinding tot stand te brengen), aangezien de tweede correcte klop op de gewenste poort (16000) wordt gedaan;

Volgende opdracht:

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

verplaatst onze regels hoger in de verwerkingsketen van de firewall, omdat we hoogstwaarschijnlijk al verschillende verbodsregels hebben geconfigureerd die voorkomen dat onze nieuw gemaakte regels werken. De allereerste regel in Mikrotik begint vanaf nul, maar op mijn apparaat werd nul ingenomen door een ingebouwde regel en het was onmogelijk om deze te verplaatsen - ik heb deze naar 1 verplaatst. Daarom kijken we naar onze instellingen - waar we deze kunnen verplaatsen en geef het gewenste aantal aan.

Volgende instelling:

/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

stuurt een willekeurig geselecteerde poort 33890 door naar een gewone RDP-poort 3389 en het IP-adres van de computer of terminalserver die we nodig hebben. We creëren dergelijke regels voor alle noodzakelijke interne bronnen, waarbij we bij voorkeur niet-standaard (en verschillende) externe poorten instellen. Uiteraard moet het IP-adres van interne bronnen statisch zijn of worden toegewezen aan een DHCP-server.

Nu is onze Mikrotik geconfigureerd en hebben we een eenvoudige procedure nodig waarmee de gebruiker verbinding kan maken met onze interne RDP. Omdat we voornamelijk Windows-gebruikers hebben, maken we een eenvoudig bat-bestand en noemen dit StartRDP.bat:

1.htm
1.rdp

dienovereenkomstig bevat 1.htm de volgende code:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
нажмите обновить страницу для повторного захода по RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

hier staan ​​twee links naar denkbeeldige afbeeldingen die zich op het adres my_router.sn.mynetname.net bevinden - we nemen dit adres van het Mikrotik DDNS-systeem nadat we dit in onze Mikrotik hebben ingeschakeld: ga naar het IP->Cloud-menu - vink DDNS Enabled aan Klik op Toepassen en kopieer de DNS-naam van onze router. Maar dit is alleen nodig als het externe IP-adres van de router dynamisch is of als er gebruik wordt gemaakt van een configuratie met meerdere internetproviders.

De poort in de eerste link: 19000 komt overeen met de eerste poort waarop je moet kloppen, in de tweede komt het overeen met de tweede. Tussen de links staat een korte instructie die laat zien wat we moeten doen als onze verbinding plotseling wordt onderbroken vanwege korte netwerkproblemen - we verversen de pagina, de RDP-poort wordt voor 1 minuut heropend en onze sessie wordt hersteld. Bovendien zorgt de tekst tussen de img-tags voor een microvertraging voor de browser, waardoor de kans kleiner wordt dat het eerste pakket wordt afgeleverd op de tweede poort (16000) - tot nu toe hebben zich in de twee weken gebruik geen dergelijke gevallen voorgedaan (30 mensen).

Vervolgens komt het 1.rdp-bestand, waarvan we er één voor iedereen of afzonderlijk voor elke gebruiker kunnen configureren (dat is wat ik deed - het is gemakkelijker om 15 minuten extra te besteden dan enkele uren om degenen te raadplegen die er niet achter kwamen)

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

Een van de interessante instellingen hier is het gebruik van multimon:i:1 - dit omvat het gebruik van meerdere monitoren - sommige mensen hebben dit nodig, maar denken er niet aan om het zelf aan te zetten.

verbindingstype:i:6 en netwerkautodetect:i:0 - aangezien het grootste deel van het internet groter is dan 10 Mbit, schakel dan verbindingstype 6 in (lokaal netwerk 10 Mbit en hoger) en schakel netwerkautodetect uit, want als de standaardwaarde (auto) is, dan stelt zelfs een zeldzame kleine netwerklatentie de snelheid voor onze sessie automatisch langdurig op een lagere snelheid in, wat merkbare vertragingen in het werk kan veroorzaken, vooral in grafische programma's.

wallpaper uitschakelen:i:1 - schakel de bureaubladafbeelding uit
gebruikersnaam:s:myuserlogin - we geven de login van de gebruiker aan, aangezien een aanzienlijk deel van onze gebruikers hun login niet kent
domein:s:mijndomein - geef de domein- of computernaam aan

Maar als we de taak van het maken van een verbindingsprocedure willen vereenvoudigen, kunnen we ook PowerShell - StartRDP.ps1 gebruiken

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

Ook iets over de RDP-client in Windows: MS heeft een lange weg afgelegd in het optimaliseren van het protocol en de server- en clientonderdelen ervan, door veel nuttige functies te implementeren - zoals het werken met hardware 3D, het optimaliseren van de schermresolutie voor uw monitor, multi-scherm, enz. Maar uiteraard is alles geïmplementeerd in achterwaartse compatibiliteitsmodus en als de client Windows 7 is en de externe pc Windows 10, dan werkt RDP met protocolversie 7.0. Maar gelukkig kunt u RDP-versies bijwerken naar recentere versies - u kunt bijvoorbeeld de protocolversie upgraden van 7.0 (Windows 7) naar 8.1. Daarom is het voor het gemak van clients noodzakelijk om de versies van het servergedeelte zoveel mogelijk uit te breiden en ook links te bieden om bij te werken naar nieuwe versies van RDP-protocolclients.

Als gevolg hiervan beschikken we over een eenvoudige en relatief veilige technologie voor externe verbinding met een werk-pc of terminalserver. Maar voor een veiligere verbinding kan onze Port Knocking-methode met verschillende ordes van grootte moeilijker aan te vallen worden gemaakt, door poorten toe te voegen om te controleren - met dezelfde logica kun je 3,4,5,6... poort toevoegen en in dit geval zal directe inbraak in uw netwerk vrijwel onmogelijk zijn.

Bestandsvoorbereidingen voor het maken van een externe verbinding met RDP.

Bron: www.habr.com

Voeg een reactie