Kaugtöö kontoris. RDP, Port Knocking, Mikrotik: lihtne ja turvaline

Seoses COVID-19 pandeemiaga ja paljude riikide ülemaailmse karantiiniga on paljude ettevõtete ainus lahendus töö jätkamiseks kaugtöö võimaldamine interneti kaudu. On palju suhteliselt turvalisi meetodeid kaugtööks — kuid arvestades probleemi ulatust, vajame lihtsat meetodit, mis sobib igasugustele kasutajatele, et kontorisse ühenduda ilma täiendava seadistamise, seletuste, väsitavate konsultatsioonide ja pikkade juhenditeta. Selliseks meetodiks on paljude administraatorite lemmik RDP (Remote Desktop Protocol). Otsene ühendus töökoha kaudu RDP-ga lahendab meie ülesande ideaalselt, välja arvatud üks suur probleem — RDP pordi avamine internetile on väga ebaeetiline. Seetõttu pakun allpool välja lihtsa, kuid usaldusväärse kaitsemeetodi.Kaugtöö kontoris. RDP, Port Knocking, Mikrotik: lihtne ja turvaline

Kuna kohtan sageli väikeseid organisatsioone, kus Interneti sissepääsuks kasutatakse Mikrotiki seadmeid, siis näitan allpool, kuidas seda Mikrotikis rakendada, kuid Port Knocking'i kaitsemeetod on kergesti rakendatav ka muudes kõrgema klassi seadmetes sarnaste sisendruuteri ja tulemüüri seadistuste korral.

Lühidalt Port Knocking'ist. Ideaalne väline kaitse internetiga ühendatud võrgule on see, kui kõik ressursid ja pordid on väljastpoolt tulemüüriga suletud. Kuigi taolise seadistusega ruuter ei reageeri sisenevatele pakettidele, kuulab ta neid. Seetõttu saab ruuteri seadistada nii, et teatud (koodiliste) võrgupakettide saamisel erinevatele portidele avab ta (ruuter) konkreetsete ressursside (portide, protokollide jne) ligipääsu IP-le, kust paketid tulid.

Nüüd asja juurde. Detailset tulemüüri seadistuse kirjeldust Mikrotikes ma ei tee - internetis on sellele hulk kvaliteetseid allikaid. Ideaalis peab tulemüür blokeerima kõik sissetulevad paketid, kuid

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

Lubab sissetulevat liiklust juba loodud (established, related) ühendustelt.
Nüüd seadistame Port Knocking'u Mikrotikes:

/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

Nüüd lähemalt:

esimesed kaks reeglit

/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

keelavad sissetulevad paketid IP-aadressidelt, mis on portide skaneerimise käigus musta nimekirja sattunud;

Kolmas reegel:

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

lisab IP aadressi nendest hostidest, mis tegid õige esimese koputuse vajalikule pordile (19000);
Järgmised neli reeglit:

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

loovad petturlikke portide püüniseid, et skannida teie porte, ja kui selliseid katseid avastatakse, pannakse nende IP 60 minutiks musta nimekirja, mille jooksul kaks esimest reeglit ei võimalda sellistel hostidel õigetele portidele koputada;

Järgmine reegel:

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

paneb IP 1 minutiks lubatute nimekirja (piisab ühenduse loomiseks), kuna on tehtud teine õige koputus õigele portile (16000);

Järgmine käsk:

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

liikme meie reeglid üles tulevad tulemuste töötlemise tulemuste üles, kuna tõenäoliselt on meil juba seadistatud erinevad keelu reeglid, mis ei luba meie uutest loodud reeglid töötada. Esimene reegel Mikrotikis algab nullist, kuid minu seadmes oli null juba sisseehitatud reeglite poolt kinni ja ei saanud üles liigutada — liikusin 1. Seega vaatame meie seadistused ja vaatame, kuhu saame liikuda ning märkime vajalikku numbrit.

Järgmine seadistus:

/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

suunab valitud porti 33890 tavalisele RDP porti 3389 ning soovitud arvuti või terminaliserveri IP-aadressile. Selliseid reegleid loome kõigi vajalike sisemiste ressursside jaoks, soovitavalt seatud ebatavalistele (ja erinevatele) väliste portidele. Loomulikult peavad sisemiste ressursside IP-d olema kas staatilised või DHCP-s fikseeritud. serveril.

Nüüd on meie Mikrotik seadistatud ja meil on vajalik lihtne kasutajaliidese protseduur ühendamiseks meie sisemisse RDP. Kuna meil on peamiselt Windowsi kasutajad, siis loome lihtsa bat-faili ja nimetame selle StartRDP.bat:

1.htm
1.rdp

vastavalt 1.htm sisaldab järgmist koodi:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
klõpsake lehe värskendamiseks, et RDP-ga uuesti siseneda
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

Siit leiate kaks linki simuleeritud piltidele, mis asuvad aadressil my_router.sn.mynetname.net — seda aadressi võtame MikroTik DDNS-süsteemist, lülitades selle esmalt sisse: minge menüüsse IP->Cloud, märkige ruut DDNS Enabled, klõpsake nuppu Apply ja kopeerige oma ruuteri DNS-nimi. See on kohustuslik ainult siis, kui ruuteri väline IP on dünaamiline või kui kasutatakse mitme Interneti-teenuse pakkuja seadistust.

Esimeses lingis olev port :19000 vastab esimesele portile, millele tuleb ühendust võtta, ning teises vastavalt teisele. Linkide vahel on lühike juhend, mis näitab, mida teha, kui meie ühendus äkitselt katkeb lühiajaliste võrguhäirete tõttu — uuendame lehte, RDP port avaneb taas üheks minutiks ja meie seanss taastatakse. Samuti tekitab tekst img-sildide vahel brauseris mikroviivituse, mis vähendab tõenäosust, et esimene pakett jõuab teisele portile (16000) — kahe nädala jooksul kasutamise ajal (30 inimest) selliseid juhtumeid ei ole olnud.

Järgmine on fail 1.rdp, mida saame seadistada üheks kõigile või eraldi igale kasutajale (ma tegin nii — lihtsam on kulutada veel 15 minutit, kui veeta mitu tundi konsultatsioonidel, et need, kes ei saanud aru, selgitada).

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

Huvitavatest seadistustest on siin use multimon:i:1 — see lubab kasutada mitut monitori — mõnedel on see vajalik, aga nad ei oska ise seda seada.

connection type:i:6 ja networkautodetect:i:0 — kuna enamikul on internet üle 10 Mbit, siis seab ühenduse tüübiks 6 (kohalik võrguhaldus 10 Mbit ja üle selle) ja keelame networkautodetect, kuna kui see on vaikimisi (auto), siis isegi haruldane viivitus võrgus seab automaatselt madalad kiirused meie sessiooni jaoks, mis võib põhjustada märgatavat viivitust, eriti graafilistes programmides.

disable wallpaper:i:1 — keelame töölaua taustapildi.
username:s:myuserlogin — määrame kasutaja logi, kuna suur osa meie kasutajatest ei tea oma logi.
domain:s:mydomain — määrame domeeni või arvuti nime.

Kuid kui soovime endale ühendamisprotseduuri loomist lihtsustada, võime kasutada ka PowerShelli — 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

Natuke ka RDP kliendi kohta Windowsis: Microsoft on teinud pika tee protokolli, selle serveri ja kliendi osa optimeerimisel ning rakendanud palju kasulikke funktsioone — näiteks riistvara 3D töötlemine, ekraani resolutsiooni optimeerimine vastavalt sinu monitorile, mitme ekraani tugi ja muu. Loomulikult on kõik rakendatud tagasiühilduvuse režiimis, ja kui Windows 7 klient, aga kaug-PC on Windows 10, siis RDP töötab, kasutades protokolli versiooni 7.0. Õnneks on võimalik RDP versioone värskendada ning näiteks tõsta protokolli versioon 7.0 (Windows 7) versioonile 8.1. Seega, et klientidele mugavust pakkuda, on vaja serveri osa versioonid maksimaalselt uuendada ning ka jagada lingid RDP protokolli klientide uuendamiseks värsketele versioonidele.

Kokkuvõttes on meil lihtne ja suhteliselt turvaline tehnoloogia kaugtöölaua või terminaliserveriga ühenduse loomiseks. Kuid turvalisema ühenduse tagamiseks saab meie Port Knocking meetodit keerulisemaks muuta, lisades kontrollimiseks sadamaid — sama loogika alusel saab lisada 3, 4, 5, 6… sadamat, mistõttu otsene sissetung teie võrku oleks peaaegu saavutamatu.

Failikavad, et luua RDP kaugtööd.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster