Distansarbete på kontoret. RDP, Port Knocking, Mikrotik: enkelt och säkert

På grund av covid-19-viruspandemin och allmän karantän i många länder är det enda sättet för många företag att fortsätta arbeta på distans till arbetsplatser via Internet. Det finns många relativt säkra metoder för distansarbete – men med tanke på problemets omfattning behövs en enkel metod för vilken användare som helst att fjärransluta till kontoret och utan behov av ytterligare inställningar, förklaringar, tråkiga konsultationer och långa instruktioner. Denna metod är älskad av många administratörer RDP (Remote Desktop Protocol). Att ansluta direkt till arbetsplatsen via RDP löser idealiskt vårt problem, med undantag för en enda stor fluga - att hålla RDP-porten öppen för Internet är mycket osäkert. Därför föreslår jag nedan en enkel men pålitlig metod för skydd.Distansarbete på kontoret. RDP, Port Knocking, Mikrotik: enkelt och säkert

Eftersom jag ofta stöter på små organisationer där Mikrotik-enheter används som internetåtkomst kommer det nedan att visas hur man implementerar detta på Mikrotik, men Port Knocking-skyddsmetoden implementeras enkelt på andra högre klassenheter med liknande ingångsrouterinställningar och brandvägg .

Kort om Port Knocking. Det ideala externa skyddet för ett nätverk anslutet till Internet är när alla resurser och portar stängs från utsidan av en brandvägg. Och även om en router med en sådan konfigurerad brandvägg inte reagerar på något sätt på paket som kommer utifrån, lyssnar den på dem. Därför kan du konfigurera routern så att när en viss (kod)sekvens av nätverkspaket tas emot på olika portar, stänger den (routern) för IP:n varifrån paketen kom från åtkomsten till vissa resurser (portar, protokoll, etc.).

Nu till affärer. Jag kommer inte att göra en detaljerad beskrivning av brandväggsinställningarna på Mikrotik - Internet är fullt av högkvalitativa källor för detta. Helst blockerar brandväggen alla inkommande paket, men

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

Tillåter inkommande trafik från etablerade, relaterade anslutningar.
Nu ställer vi in ​​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=3389

Nu mer i detalj:

två första reglerna

/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

förbjuda inkommande paket från IP-adresser som är svartlistade under portskanning;

Tredje regeln:

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

lägger till ip till listan över värdar som gjorde rätt första knackning på rätt port (19000);
De följande fyra reglerna är:

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

skapa trapportar för dem som vill skanna dina portar, och om sådana försök upptäcks, svartlista deras ip i 60 minuter, under vilka de två första reglerna inte ger sådana värdar möjlighet att knacka på rätt portar;

Nästa 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 tillåtna listan i 1 minut (tillräckligt för att upprätta en anslutning), eftersom den andra korrekta knackningen gjordes på den önskade porten (16000);

Nästa kommando:

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

flyttar våra regler uppåt i brandväggens bearbetningskedja, eftersom vi med största sannolikhet redan kommer att ha olika avvisningsregler konfigurerade som kommer att hindra våra nyskapade från att fungera. Den allra första regeln i Mikrotik börjar från noll, men på min enhet var noll upptagen av en inbyggd regel och det var omöjligt att flytta den - jag flyttade den till 1. Därför tittar vi på våra inställningar - var du kan flytta den och ange önskat nummer.

Nästa inställning:

/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

vidarebefordrar en godtyckligt vald port 33890 till den vanliga RDP-porten 3389 och ip:n för datorn eller terminalservern vi behöver. Vi skapar sådana regler för alla nödvändiga interna resurser, helst genom att sätta icke-standardiserade (och olika) externa portar. Naturligtvis måste de interna resursernas ip vara antingen statisk eller fixerad på DHCP-servern.

Nu är vår Mikrotik konfigurerad och vi behöver en enkel procedur för att användaren ska kunna ansluta till vår interna RDP. Eftersom vi huvudsakligen har Windows-användare skapar vi en enkel bat-fil och döper den till StartRDP.bat:

1.htm
1.rdp

respektive 1.htm innehåller följande kod:

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

den innehåller två länkar till imaginära bilder som finns på my_router.sn.mynetname.net - vi tar denna adress från Mikrotik DDNS-systemet efter att ha aktiverat den i vår Mikrotik: gå till IP-> Molnmenyn - kryssa i kryssrutan DDNS Enabled, klicka på Apply och kopiera dns-namnet på vår router. Men detta är bara nödvändigt när routerns externa ip är dynamisk eller en konfiguration med flera internetleverantörer används.

Porten i den första länken: 19000 motsvarar den första porten som du måste knacka på, i den andra respektive den andra. Mellan länkarna finns en kort instruktion som visar vad vi ska göra om vår anslutning plötsligt avbryts på grund av korta nätverksproblem - vi uppdaterar sidan, RDP-porten öppnas igen för oss i 1 minut och vår session återställs. Dessutom bildar texten mellan img-taggarna en mikrofördröjning för webbläsaren, vilket minskar sannolikheten för att det första paketet levereras till den andra porten (16000) - hittills har det inte förekommit några sådana fall under två veckors användning (30 människor).

Därefter kommer 1.rdp-filen, som vi kan konfigurera en för alla eller separat för varje användare (jag gjorde det här - det är lättare att spendera 15 minuter extra än några timmar på att konsultera dem som inte kunde ta reda på 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

av de intressanta inställningarna här är använd multimon: i: 1 - detta inkluderar användningen av flera skärmar - vissa behöver detta, men de själva kommer inte att tänka på att slå på det.

anslutningstyp: i: 6 och nätverksautodetektering: i: 0 - eftersom majoriteten av Internet är över 10 Mbps, slå sedan på anslutningstyp 6 (lokalt nätverk 10 Mbps och högre) och stäng av nätverkets autodetect, eftersom om som standard (auto) , då även en sällsynt liten nätverkslatens automatiskt ställer in vår session på en långsam hastighet under lång tid, vilket kan skapa märkbara förseningar i arbetet, särskilt i grafikprogram.

inaktivera bakgrundsbild: i: 1 - inaktivera skrivbordsbilden
användarnamn:s:myuserlogin - vi anger användarinloggningen, eftersom en betydande del av våra användare inte känner till deras inloggning
domän:s:mindomän - ange domänen eller datornamnet

Men om vi vill förenkla vår uppgift att skapa en anslutningsprocedur kan vi också använda 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

Också lite om RDP-klienten i Windows: MS har kommit långt med att optimera protokollet och dess server- och klientdelar, har implementerat många användbara funktioner - som att arbeta med hårdvara 3D, optimera skärmupplösningen för din bildskärm, multiscreen, och så vidare. Men naturligtvis är allt implementerat i bakåtkompatibilitetsläge, och om klienten är Windows 7 och fjärrdatorn är Windows 10, kommer RDP att fungera med protokollversion 7.0. Men fördelen är att du kan uppdatera RDP-versioner till nyare versioner – till exempel kan du uppgradera protokollversionen från 7.0 (Windows 7) till 8.1. Därför, för att underlätta för klienter, är det nödvändigt att öka versionerna av serverdelen så mycket som möjligt, samt släppa länkar för att uppgradera till nya versioner av RDP-protokollklienter.

Som ett resultat har vi en enkel och relativt säker teknik för fjärranslutning till en fungerande PC eller terminalserver. Men för en säkrare anslutning kan vår Port Knocking-metod göras svårare att attackera med flera storleksordningar, genom att lägga till portar för att kontrollera - du kan lägga till 3,4,5,6 ... en port enligt samma logik , och i det här fallet kommer ett direkt intrång i ditt nätverk att vara nästan omöjligt.

Tomma filer för att skapa en fjärranslutning till RDP.

Källa: will.com

Lägg en kommentar