PĂ„ grund af COVID-19-pandemien og den generelle karantĂŠne i mange lande er den eneste lĂžsning for mange virksomheder for at fortsĂŠtte driften â at fĂ„ fjernadgang til arbejdspladser via internettet. Der findes mange relativt sikre metoder til fjernarbejde â men i betragtning af problemets omfang er der behov for en metode til fjernforbindelse til kontoret, der er enkel for alle brugere og uden behov for yderligere konfigurationer, forklaringer, trĂŠttende konsultationer og lange instruktioner. En sĂ„dan metode er den, mange administratorer elsker: RDP (Remote Desktop Protocol). Direkte forbindelse til arbejdspladsen via RDP lĂžser vores opgave perfekt, bortset fra Ă©n stor ulempe â at holde RDP-porten Ă„ben for internettet er meget usikker. Derfor foreslĂ„r jeg nedenfor en enkel, men pĂ„lidelig metode til beskyttelse.
Da jeg ofte stÞder pÄ smÄ organisationer, der bruger Mikrotik-enheder som internetudgang, vil jeg vise, hvordan dette kan implementeres pÄ Mikrotik, men Port Knocking-beskyttelsesmetoden kan nemt implementeres pÄ andre hÞjere klasse enheder med lignende indstillinger for indgÄende router og firewall.
Kort om Port Knocking. Den ideelle ydre beskyttelse af et netvÊrk, der er tilsluttet internettet, er, nÄr alle ressourcer og porte er lukket for omverdenen af en firewall. Selvom routeren med en sÄdan firewall ikke reagerer pÄ indkommende pakker udefra, lytter den stadig til dem. Derfor kan routeren konfigureres, sÄ nÄr den modtager en bestemt (kode) sekvens af netvÊrkspakker pÄ forskellige porte, Äbner den (routeren) adgangen til bestemte ressourcer (porte, protokoller osv.) for den IP, hvorfra pakkerne kom.
Lad os komme til sagen. Jeg vil ikke give en detaljeret beskrivelse af firewall-konfigurationen pĂ„ Mikrotik â der er masser af kvalitetskilder pĂ„ internettet 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,relatedTillader indgÄende trafik fra allerede etablerede (etablerede, relaterede) forbindelser.
Lad os nu konfigurere Port Knocking 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=3389Nu mere detaljeret:
de fĂžrste to 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=RemoteRulesforhindrer indkommende pakker fra IP-adresser, der er blevet svartelistet ved portscanning;
Den 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 har lavet det rigtige fÞrste bankslag pÄ den nÞdvendige port (19000);
De 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=RemoteRulesskaber lytteporte for dem, der Þnsker at scanne dine porte, og ved opdagelsen af sÄdanne forsÞg bliver deres ip lukket i 60 minutter, i hvilken periode de fÞrste to regler forhindrer sÄdanne vÊrter i at trÊkke pÄ de rigtige porte;
Den 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=RemoteRulessÊtter ip pÄ den godkendte liste i 1 minut (tilstrÊkkeligt til at etablere forbindelsen), da der er lavet et andet korrekt krav til den Þnskede port (16000);
Den nĂŠste kommando:
move [\/ip firewall filter find comment=RemoteRules] 1fĂžrer vores regler op i kĂŠden af firewall-behandling, da vi sandsynligvis allerede har forskellige afvisningsregler, der forhindrer vores nyligt oprettede regler i at trĂŠde i kraft. Den fĂžrste regel i Mikrotik starter fra nul, men pĂ„ min enhed var nul optaget af en indbygget regel og det var umuligt at flytte â jeg flyttede til 1. SĂ„ vi ser pĂ„ vores indstillinger â hvor vi kan bevĂŠge os hen og angiver det Ăžnskede nummer.
Den 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=3389udfÞrer en port forwarding fra den vilkÄrligt valgte port 33890 til den almindelige RDP-port 3389 og til IP-adressen pÄ den Þnskede computer eller terminalserver. SÄdanne regler opretter vi for alle nÞdvendige interne ressourcer, helst ved at sÊtte ikke-standard (og forskellige) eksterne porte. Naturligvis skal ip-adresserne pÄ de interne ressourcer enten vÊre statiske eller fastlÄste til DHCP serveren.
Nu er vores Mikrotik konfigureret, og vi har brug for en enkel procedure for brugeren til at oprette forbindelse til vores interne RDP. Da vi hovedsageligt har Windows-brugere, opretter vi en enkel bat-fil og kalder den StartRDP.bat:
1.htm
1.rdpindeholder henholdsvis 1.htm fĂžlgende kode:
<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
tryk på opdater siden for at få adgang igen via RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">Her finder du to links til fiktive billeder, der findes pĂ„ adressen my_router.sn.mynetname.net â denne adresse henter vi fra DDNS-systemet pĂ„ Mikrotik, efter vi har aktiveret det: GĂ„ ind i menuen IP->Cloud â sĂŠt flueben i DDNS Enabled, tryk pĂ„ Apply, og kopier dns-navnet pĂ„ vores router. Dette er kun nĂždvendigt, nĂ„r routerens offentlige IP er dynamisk, eller nĂ„r en konfiguration med flere internetudbydere bruges.
Porten i det fĂžrste link:19000 svarer til den fĂžrste port, som vi skal bruge, i det andet link svarer det til den anden port. Mellem linksene er der en kort instruktion, der viser, hvad man skal gĂžre, hvis vores forbindelse tilfĂŠldigvis bliver afbrudt pĂ„ grund af kortvarige netvĂŠrksproblemer â opdater siden, RDP-porten Ă„bner sig igen i 1 minut, og vores session genoprettes. Desuden danner teksten mellem img-tags en mikroforsinkelse for browseren, som reducerer sandsynligheden for, at den fĂžrste pakke nĂ„r til den anden port (16000) â indtil videre har der ikke vĂŠret sĂ„danne tilfĂŠlde over to uger (30 personer).
DernĂŠst kommer filen 1.rdp, som vi kan konfigurere Ă©n gang for alle, eller separat for hver bruger (det gjorde jeg â det er lettere at bruge 15 ekstra minutter end flere timer pĂ„ at rĂ„dgive 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:mydomainaf interessante indstillinger her er use multimon:i:1 â dette aktiverer brugen af flere skĂŠrme â nogle har brug for dette, men vil ikke selv tĂŠnke pĂ„ at aktivere det.
connection type:i:6 og networkautodetect:i:0 â da internettet for de fleste er over 10 Mbps, sĂŠtter vi forbindelsestypen til 6 (lokalt netvĂŠrk 10 Mbps og derover) og deaktiverer networkautodetect, fordi hvis den er indstillet til auto som standart, vil selv en sjĂŠlden lille forsinkelse i netvĂŠrket automatisk sĂŠtte en lavere hastighed for vores session i lang tid, hvilket kan medfĂžre mĂŠrkbare forsinkelser i arbejdet, isĂŠr i grafiske programmer.
disable wallpaper:i:1 â deaktiverer baggrundsbilledet for skrivebordet.
username:s:myuserlogin â vi angiver brugerens login, fordi en betydelig del af vores brugere ikke kender deres login.
domain:s:mydomain â vi angiver domĂŠnet eller navn pĂ„ computeren.
Men hvis vi Ăžnsker at forenkle opgaven med at oprette en forbindelse, 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:33890Lidt om RDP-klienten i Windows: Microsoft har gjort store fremskridt med at optimere protokollen samt dens server- og klientdele, og implementeret mange nyttige funktioner â sĂ„som understĂžttelse af hardware 3D, skĂŠrmoplĂžsning optimeret til din monitor, multi-skĂŠrm og mere. Men naturligvis er alt implementeret i bagudkompatibilitetstilstand, og hvis klienten er Windows 7, og den fjernstyrede PC er Windows 10, vil RDP fungere ved at bruge protokolversion 7.0. Men heldigvis kan man opdatere RDP-versioner til nyere versioner â for eksempel kan man opgradere protokollen fra 7.0 (Windows 7) til 8.1. Derfor er det vigtigt for klienternes bekvemmelighed at opgradere serverdelen mest muligt samt at give links til opdatering til nye versioner af RDP-klientprotokollen.
Resultatet er en simpel og relativt sikker teknologi til fjernforbindelse til en arbejds-PC eller terminalserver. Men for en mere sikker forbindelse kan vores metode Port Knocking gĂžres betydeligt mere kompleks ved at tilfĂžje porte til tjek â man kan fĂžlge samme logik og tilfĂžje 3, 4, 5, 6⊠porte, og derved vil direkte indtrĂŠngen i dit netvĂŠrk nĂŠsten vĂŠre umulig.
.
Kilde: habr.com
