PĂ„ grund av covid-19-pandemin och den allmĂ€nna nedstĂ€ngningen i mĂ„nga lĂ€nder har den enda utvĂ€gen för mĂ„nga företag för att fortsĂ€tta sin verksamhet blivit fjĂ€rrĂ„tkomst 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 alla anvĂ€ndare för att koppla upp sig till kontoret utan krav pĂ„ ytterligare instĂ€llningar, förklaringar, trĂ„kiga rĂ„d eller lĂ„nga instruktioner. En sĂ„dan metod Ă€r RDP (Remote Desktop Protocol), som mĂ„nga administratörer föredrar. Att koppla upp sig direkt till arbetsplatsen via RDP löser vĂ„r uppgift perfekt, förutom en stor nackdel â 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.
Eftersom jag ofta stöter pÄ smÄ organisationer som anvÀnder Mikrotik-enheter för internetÄtkomst, kommer jag nedan att visa hur detta kan genomföras pÄ en Mikrotik, men metoden för Port Knocking Àr lÀtt att implementera Àven pÄ andra enheter av högre kvalitet med liknande instÀllningar för ingÄngsrutt och brandvÀgg.
Kort om Port KnockingDen ideala externa skyddet av ett nĂ€tverk kopplat till internet Ă€r nĂ€r alla resurser och portar Ă€r stĂ€ngda frĂ„n utsidan av en brandvĂ€gg. Ăven om routern med en sĂ„dan konfigurerad brandvĂ€gg inte reagerar pĂ„ inkommande paket utifrĂ„n, lyssnar den pĂ„ dem. DĂ€rför kan routern konfigureras sĂ„ att nĂ€r den tar emot en viss (kodad) sekvens av nĂ€tverks paket pĂ„ olika portar, öppnar den (routern) tillgĂ„ngen för IP-adressen som paketen kom ifrĂ„n till vissa resurser (portar, protokoll osv.).
LÄt oss nu gÄ till saken. Jag kommer inte att ge en detaljerad beskrivning av brandvÀggskonfigurationen pÄ Mikrotik, eftersom det finns mÄnga kvalitativa kÀllor för detta pÄ internet. Idealiskt blockerar brandvÀggen alla inkommande paket, men
/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,relatedTillÄter inkommande trafik frÄn redan etablerade (established, related) anslutningar.
Nu konfigurerar vi 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 mer i detalj:
de första tvÄ 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=RemoteRulesblockerar inkommande paket frÄn IP-adresser som hamnat pÄ blacklist vid portskanning;
Den 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-adressen i listan över vÀrdar som har gjort rÀtt första knackning pÄ den angivna porten (19000);
Följande fyra 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=RemoteRulesskapar fÀllportar för dem som vill skanna dina portar, och vid upptÀckte försök lÀggs deras IP i svarta listan i 60 minuter, under vilken tid de tvÄ första reglerna inte tillÄter sÄdana vÀrdar att knacka pÄ de riktiga portarna;
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=RemoteRuleslÀgger 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Ä rÀtt port (16000);
NĂ€sta kommando:
move [\/ip firewall filter find comment=RemoteRules] 1flyttar vĂ„ra regler uppĂ„t i brandvĂ€gskedjan, dĂ„ vi troligen redan har olika blockerande regler instĂ€llda, som inte lĂ„ter vĂ„ra nyss skapade regler trĂ€da i kraft. Den första regeln i MikroTik börjar med noll, men pĂ„ min enhet var noll redan upptagen av en inbyggd regel och det gick inte att flytta â sĂ„ jag flyttade till 1. DĂ€rför kollar vi utifrĂ„n vĂ„ra instĂ€llningar â vart vi kan flytta och anger det önskade numret.
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översÀtter en godtyckligt vald port 33890 till den vanliga RDP-porten 3389 och IP för den dator eller terminalserver vi behöver. SÄdana regler skapar vi för alla nödvÀndiga interna resurser, helst med olika (och icke-standardiserade) externa portar. SjÀlvklart bör IP-adresserna för interna resurser vara antingen statiska eller bundna via DHCP. servern.
Nu Àr vÄr MikroTik konfigurerad och vi behöver en anvÀndarvÀnlig procedur för att ansluta till vÄr interna RDP. Eftersom vi frÀmst har Windows-anvÀndare, skapar vi en enkel bat-fil och kallar den StartRDP.bat:
1.htm
1.rdpinnehÄller följande kod:
<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
klicka på uppdatera sidan för att återansluta via RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">HĂ€r finns tvĂ„ lĂ€nkar till fiktiva bilder som ligger pĂ„ adressen my_router.sn.mynetname.net â den hĂ€r adressen hĂ€mtar vi frĂ„n DDNS-systemet pĂ„ MikroTik, efter att vi aktiverat detta i vĂ„r MikroTik: gĂ„ till menyn IP->Cloud â markera DDNS Enabled, klicka pĂ„ Apply och kopiera dns-namnet pĂ„ vĂ„r router. Detta Ă€r nödvĂ€ndigt endast nĂ€r routerns externa IP Ă€r dynamisk eller nĂ€r en konfiguration med flera internetleverantörer anvĂ€nds.
Porten i den första lĂ€nken :19000 motsvarar den första porten vi behöver ansluta till, medan den andra motsvarar den andra. Mellan lĂ€nkarna finns en kort instruktion som visar vad du ska göra om vĂ„r anslutning plötsligt avbryts pĂ„ grund av kortvariga problem i nĂ€tverket â vi uppdaterar sidan, RDP-porten öppnas igen i 1 minut och vĂ„r session Ă„terstĂ€lls. Texten mellan img-taggarna skapar ocksĂ„ en mikrofördröjning för webblĂ€saren, vilket minskar sannolikheten för att den första paketet levereras till den andra porten (16000) â hittills under tvĂ„ veckors anvĂ€ndning (30 personer) har sĂ„dana fall inte intrĂ€ffat.
DĂ€refter kommer filen 1.rdp, som vi kan konfigurera antingen gemensamt för alla eller separat för varje anvĂ€ndare (jag gjorde det sĂ„ â det Ă€r lĂ€ttare att lĂ€gga till 15 minuter Ă€n att spendera flera timmar pĂ„ rĂ„dgivning med dem som inte kunde lista ut 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:mydomainEn intressant instĂ€llning hĂ€r Ă€r use multimon:i:1 â detta aktiverar anvĂ€ndningen av flera skĂ€rmar â vissa behöver detta, men kan sjĂ€lva inte tĂ€nka pĂ„ att aktivera det.
connection type:i:6 och networkautodetect:i:0 â dĂ„ internetet för de flesta Ă€r över 10 Mbit, sĂ„ aktiverar vi anslutningstyp 6 (lokalt nĂ€tverk 10Mbit och över) och stĂ€nger av networkautodetect, eftersom om det Ă€r som standard (auto), sĂ„ sĂ€nker Ă€ven en sĂ€llsynt liten fördröjning i nĂ€tverket automatiskt hastigheten lĂ€nge för vĂ„r session, vilket kan skapa mĂ€rkbara fördröjningar i arbetet, sĂ€rskilt i grafiska program.
disable wallpaper:i:1 â vi stĂ€nger av skrivbordets bakgrundsbild
username:s:myuserlogin â vi anger anvĂ€ndarens inloggning, eftersom en betydande del av vĂ„ra anvĂ€ndare inte kĂ€nner till sin inloggning
domain:s:mydomain â vi anger domĂ€n eller datornamn
Men om vi vill förenkla uppgiften med 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:33890Lite om RDP-klienten i Windows: Microsoft har genomgĂ„tt en lĂ„ng resa för att optimera protokollet och dess server- och klientsida, och implementerat mĂ„nga anvĂ€ndbara funktioner â sĂ„som hantering av hĂ„rdvaru-3D, optimering av skĂ€rmens upplösning för din monitor, multipla skĂ€rmar och mer. Men naturligtvis har allt implementerats med bakĂ„tkompatibilitet, och om klienten Ă€r Windows 7 och den fjĂ€rranslutna datorn Windows 10, sĂ„ kommer RDP att fungera med protokollversion 7.0. Men lyckligtvis kan man uppdatera RDP-versioner till mer aktuella versioner â exempelvis kan man höja protokollversionen frĂ„n 7.0 (Windows 7) till 8.1. DĂ€rför Ă€r det viktigt för klienternas bekvĂ€mlighet att maximera versionerna av serversidan och ocksĂ„ ge lĂ€nkar för uppdatering till de nya versionerna av RDP-klienten.
Resultatet Ă€r en enkel och relativt sĂ€ker teknik för fjĂ€rranslutning till en arbetsdator eller terminalserver. Men för en sĂ€krare anslutning kan vĂ„r metod Port Knocking kompliceras för att öka sĂ€kerheten genom att lĂ€gga till fler portar för verifiering â enligt samma logik kan man lĂ€gga till 3, 4, 5, 6⊠portar och i sĂ„ fall blir ett direkt intrĂ„ng i ditt nĂ€tverk nĂ€stan omöjligt.
.
KĂ€lla: habr.com
