Fjernarbejde på kontoret. RDP, Port Knocking, Mikrotik: enkelt og sikkert

På grund af covid-19-viruspandemien og generel karantæne i mange lande er den eneste måde for mange virksomheder at fortsætte med at arbejde på fjernadgang til arbejdspladser via internettet. Der er mange relativt sikre metoder til fjernarbejde – men i betragtning af problemets omfang er det nødvendigt med en simpel metode for enhver bruger til at fjernoprette forbindelse til kontoret og uden behov for yderligere indstillinger, forklaringer, kedelige konsultationer og lange instruktioner. Denne metode er elsket af mange administratorer RDP (Remote Desktop Protocol). At forbinde direkte til arbejdspladsen via RDP løser ideelt set vores problem, bortset fra en stor flue i salven - at holde RDP-porten åben for internettet er meget usikkert. Derfor foreslår jeg nedenfor en enkel, men pålidelig metode til beskyttelse.Fjernarbejde på kontoret. RDP, Port Knocking, Mikrotik: enkelt og sikkert

Da jeg ofte støder på små organisationer, hvor Mikrotik-enheder bruges som internetadgang, vil det nedenfor blive vist, hvordan man implementerer dette på Mikrotik, men Port Knocking-beskyttelsesmetoden implementeres let på andre enheder af højere klasse med lignende input-routerindstillinger og firewall .

Kort om Port Knocking. Den ideelle eksterne beskyttelse af et netværk forbundet til internettet er, når alle ressourcer og porte er lukket udefra af en firewall. Og selvom en router med sådan en konfigureret firewall ikke reagerer på nogen måde på pakker, der kommer udefra, så lytter den til dem. Derfor kan du konfigurere routeren, så når en bestemt (kode) sekvens af netværkspakker modtages på forskellige porte, afbryder den (routeren) for IP'en, hvorfra pakkerne kom fra, adgangen til visse ressourcer (porte, protokoller, etc.).

Nu til forretning. Jeg vil ikke lave en detaljeret beskrivelse af firewall-indstillingerne på Mikrotik - internettet er fyldt med højkvalitetskilder til dette. Ideelt set blokerer firewallen alle indgående pakker, men

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

Tillader indgående trafik fra etablerede, relaterede forbindelser.
Nu sætter vi Port Knocking op på 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 mere detaljeret:

to første regler

/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

forbyde indgående pakker fra IP-adresser, der er sortlistet under portscanning;

Tredje 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

tilføjer ip til listen over værter, der lavede det korrekte første banke på den korrekte port (19000);
Følgende fire regler:

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

opret trap-porte for dem, der ønsker at scanne dine porte, og hvis sådanne forsøg opdages, sortliste deres ip i 60 minutter, hvor de to første regler ikke tillader sådanne værter at banke på de korrekte porte;

Næste 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

sætter ip i den tilladte liste i 1 minut (nok til at etablere en forbindelse), da den anden korrekte bank blev foretaget på den ønskede port (16000);

Næste kommando:

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

flytter vores regler op i firewall-behandlingskæden, da vi højst sandsynligt allerede har konfigureret forskellige afvisningsregler, som forhindrer vores nyoprettede i at fungere. Den allerførste regel i Mikrotik starter fra nul, men på min enhed var nul optaget af en indbygget regel, og det var umuligt at flytte den - jeg flyttede den til 1. Derfor kigger vi på vores indstillinger - hvor du kan flytte den og angiv det ønskede nummer.

Næste indstilling:

/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

videresender en vilkårligt valgt port 33890 til den sædvanlige RDP-port 3389 og ip'en på den computer eller terminalserver, vi har brug for. Vi opretter sådanne regler for alle nødvendige interne ressourcer, fortrinsvis ved at sætte ikke-standardiserede (og forskellige) eksterne porte. Naturligvis skal ip'en for interne ressourcer enten være statisk eller fast på DHCP-serveren.

Nu er vores Mikrotik konfigureret, og vi har brug for en simpel procedure for, at brugeren kan oprette forbindelse til vores interne RDP. Da vi hovedsageligt har Windows-brugere, opretter vi en simpel bat-fil og kalder den StartRDP.bat:

1.htm
1.rdp

henholdsvis 1.htm indeholder følgende kode:

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

den indeholder to links til imaginære billeder, der er placeret på my_router.sn.mynetname.net - vi tager denne adresse fra Mikrotik DDNS-systemet efter at have aktiveret det i vores Mikrotik: gå til IP-> Cloud-menuen - marker afkrydsningsfeltet DDNS Enabled, klik på Anvend og kopier dns-navnet på vores router. Men dette er kun nødvendigt, når routerens eksterne ip er dynamisk, eller der bruges en konfiguration med flere internetudbydere.

Porten i det første link: 19000 svarer til den første port, som du skal banke på, henholdsvis i den anden til den anden. Mellem linkene er der en kort instruktion, der viser, hvad vi skal gøre, hvis vores forbindelse pludselig afbrydes på grund af korte netværksproblemer - vi opdaterer siden, RDP-porten genåbner for os i 1 minut, og vores session gendannes. Desuden danner teksten mellem img-tags en mikroforsinkelse for browseren, hvilket reducerer sandsynligheden for, at den første pakke bliver leveret til den anden port (16000) - indtil videre har der ikke været sådanne tilfælde i to ugers brug (30 mennesker).

Dernæst kommer 1.rdp-filen, som vi kan konfigurere en for alle eller separat for hver bruger (jeg gjorde dette - det er nemmere at bruge 15 minutter ekstra end et par timer på at konsultere dem, der ikke kunne finde ud af det)

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

af de interessante indstillinger her er brug multimon: i: 1 - dette inkluderer brugen af ​​flere skærme - nogle har brug for dette, men de vil ikke selv finde på at tænde det.

forbindelsestype: i: 6 og netværksautodetektion: i: 0 - da størstedelen af ​​internettet er over 10 Mbps, så slå forbindelsestype 6 til (lokalt netværk 10 Mbps og derover) og deaktiver netværksautodetektion, fordi hvis som standard (auto) , så sætter selv en sjælden lille netværksforsinkelse automatisk vores session til en langsom hastighed i lang tid, hvilket kan skabe mærkbare forsinkelser i arbejdet, især i grafikprogrammer.

deaktiver tapet: i: 1 - deaktiver skrivebordsbilledet
brugernavn:s:myuserlogin - vi angiver brugerlogin, da en betydelig del af vores brugere ikke kender deres login
domæne:s:mitdomæne - angiv domæne- eller computernavnet

Men hvis vi ønsker at forenkle vores opgave med at oprette en forbindelsesprocedure, så kan vi også bruge PowerShell - 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

Også lidt om RDP-klienten i Windows: MS er nået langt med at optimere protokollen og dens server- og klientdele, har implementeret mange nyttige funktioner - såsom at arbejde med hardware 3D, optimere skærmopløsningen til din skærm, multiskærm, og så videre. Men selvfølgelig er alt implementeret i bagudkompatibilitetstilstand, og hvis klienten er Windows 7, og fjern-pc'en er Windows 10, så vil RDP arbejde med protokolversion 7.0. Men fordelen er, at du kan opdatere RDP-versioner til nyere versioner – for eksempel kan du opgradere protokolversionen fra 7.0 (Windows 7) til 8.1. Af hensyn til klienternes bekvemmelighed er det derfor nødvendigt at øge versionerne af serverdelen så meget som muligt, samt at droppe links for at opgradere til nye versioner af RDP-protokolklienter.

Som følge heraf har vi en enkel og relativt sikker teknologi til fjernforbindelse til en fungerende pc eller terminalserver. Men for en mere sikker forbindelse kan vores Port Knocking-metode gøres sværere at angribe i flere størrelsesordener, ved at tilføje porte for at kontrollere - du kan tilføje 3,4,5,6 ... en port ifølge samme logik og i dette tilfælde vil en direkte indtrængen i dit netværk være næsten umulig.

Tomme filer til oprettelse af en fjernforbindelse til RDP.

Kilde: www.habr.com

Tilføj en kommentar