Nuotolinis darbas biure. KPP, Port Knocking, Mikrotik: paprasta ir saugi

Dėl COVID-19 viruso pandemijos ir visuotinio karantino daugelyje šalių daugeliui įmonių vienintelis būdas tęsti darbą yra nuotolinė prieiga prie darbo vietų internetu. Yra daug gana saugių nuotolinio darbo metodų, tačiau, atsižvelgiant į problemos mastą, reikia tokio metodo, kuriuo bet kuris vartotojas galėtų lengvai prisijungti prie biuro nuotoliniu būdu ir be papildomų nustatymų, paaiškinimų, varginančių konsultacijų ir ilgų nurodymus. Šį metodą mėgsta daugelis administratorių RDP (Remote Desktop Protocol). Tiesioginis prisijungimas prie darbo stoties per RDP idealiai išsprendžia mūsų problemą, išskyrus vieną didelį sėkmę – išlaikyti atvirą KPP prievadą internetui yra labai nesaugu. Todėl žemiau siūlau paprastą, bet patikimą apsaugos būdą.Nuotolinis darbas biure. KPP, Port Knocking, Mikrotik: paprasta ir saugi

Kadangi dažnai susiduriu su mažomis organizacijomis, kuriose Mikrotik įrenginiai naudojami kaip interneto ryšys, toliau parodysiu, kaip tai įdiegti Mikrotik, tačiau apsaugos prie „Port Knocking“ metodą galima nesunkiai įdiegti ir kituose aukštesnės klasės įrenginiuose su panašiais įvesties maršrutizatoriaus nustatymais ir ugniasienė

Trumpai apie Port Knocking. Ideali išorinė tinklo, prijungto prie interneto, apsauga yra tada, kai visi ištekliai ir prievadai iš išorės yra uždaryti užkarda. Ir nors maršrutizatorius su tokia sukonfigūruota užkarda niekaip nereaguoja į paketus, ateinančius iš išorės, jis jų klauso. Todėl galite sukonfigūruoti maršrutizatorių taip, kad gavęs tam tikrą (kodą) tinklo paketų seką skirtinguose prievaduose, jis (maršrutizatorius) IP, iš kurio atkeliavo paketai, uždraustų prieigą prie tam tikrų išteklių (prievadų, protokolų ir kt.). .).

Dabar prie esmės. Aš nepateiksiu išsamaus „Mikrotik“ ugniasienės nustatymo aprašymo - internetas yra pilnas kokybiškų šaltinių. Idealiu atveju ugniasienė blokuoja visus gaunamus paketus, bet

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

Leidžia įeinantį srautą iš jau užmegztų (užmegztų, susijusių) ryšių.
Dabar „Mikrotik“ sukonfigūruojame „Port Knocking“:

/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

Dabar išsamiau:

pirmosios dvi taisyklės

/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

uždrausti įeinančius paketus iš IP adresų, kurie buvo įtraukti į juodąjį sąrašą prievado nuskaitymo metu;

Trečioji taisyklė:

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

prideda ip į prieglobų sąrašą, kuris pirmą kartą teisingai paspaudė į norimą prievadą (19000);
Šios keturios taisyklės:

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

sukurti trap prievadus tiems, kurie nori nuskaityti jūsų prievadus, o kai tokie bandymai yra aptikti, jie įtraukia savo IP į juodąjį sąrašą 60 minučių, per kurį pirmosios dvi taisyklės nesuteiks tokiems hostams galimybės pasibelsti į teisingus prievadus;

Kita taisyklė:

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

įtraukia IP į leistinų sąrašą 1 minutei (užtenka ryšiui užmegzti), nes antras teisingas beldimas atliekamas į norimą prievadą (16000);

Kita komanda:

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

perkelia mūsų taisykles ugniasienės apdorojimo grandinėje, nes greičiausiai jau turėsime sukonfigūruotas įvairias draudžiančias taisykles, kurios neleis veikti naujai sukurtoms. Pati pirmoji taisyklė Mikrotik prasideda nuo nulio, bet mano įrenginyje nulį užėmė įmontuota taisyklė ir jos perkelti buvo neįmanoma – perkėliau į 1. Todėl žiūrime į savo nustatymus – kur galime perkelti ir nurodykite norimą numerį.

Kitas nustatymas:

/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

persiunčia atsitiktinai pasirinktą prievadą 33890 į įprastą RDP prievadą 3389 ir mums reikalingo kompiuterio ar terminalo serverio IP. Tokias taisykles kuriame visiems reikiamiems vidiniams ištekliams, pageidautina nustatyti nestandartinius (ir skirtingus) išorinius prievadus. Natūralu, kad vidinių išteklių IP turi būti statinis arba priskirtas DHCP serveriui.

Dabar mūsų Mikrotik yra sukonfigūruotas ir mums reikia paprastos procedūros, kad vartotojas galėtų prisijungti prie mūsų vidinio KPP. Kadangi dažniausiai turime Windows vartotojų, sukuriame paprastą bat failą ir vadiname jį StartRDP.bat:

1.htm
1.rdp

atitinkamai 1.htm yra toks kodas:

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

čia yra dvi nuorodos į įsivaizduojamas nuotraukas, esančias adresu my_router.sn.mynetname.net - mes paimame šį adresą iš Mikrotik DDNS sistemos, kai tai įjungiame savo Mikrotik: eikite į IP->Debesis meniu - patikrinkite DDNS Enabled spustelėkite Taikyti ir nukopijuokite mūsų maršrutizatoriaus DNS pavadinimą. Bet tai būtina tik tada, kai išorinis maršrutizatoriaus IP yra dinamiškas arba naudojama kelių interneto tiekėjų konfigūracija.

Pirmoje nuorodoje esantis prievadas: 19000 atitinka pirmąjį prievadą, į kurį reikia belstis, antroje - antrąjį. Tarp nuorodų yra trumpa instrukcija, parodanti, ką daryti, jei staiga mūsų ryšys nutrūktų dėl trumpų tinklo problemų – atnaujiname puslapį, 1 minutei mums vėl atidaromas KPP prievadas ir mūsų seansas atkuriamas. Taip pat tekstas tarp img žymų sukuria naršyklei mikro vėlavimą, o tai sumažina tikimybę, kad pirmasis paketas bus pristatytas į antrąjį prievadą (16000) – iki šiol tokių atvejų per dvi naudojimo savaites nebuvo (30). žmonės).

Toliau pateikiamas 1.rdp failas, kurį galime sukonfigūruoti kiekvienam arba atskirai kiekvienam vartotojui (taip ir padariau – lengviau praleisti papildomas 15 minučių nei kelias valandas konsultuojantis su tais, kurie to nesuprato)

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

Vienas iš įdomių nustatymų yra naudoti multimon:i:1 – tai apima kelių monitorių naudojimą – kai kuriems žmonėms to reikia, bet jie negalvoja patys to įjungti.

ryšio tipas:i:6 ir networkautodetect:i:0 – kadangi didžioji interneto dalis yra didesnė nei 10 Mbit, tada įjunkite 6 ryšio tipą (vietinis tinklas 10 Mbit ir daugiau) ir išjunkite tinklo automatinį aptikimą, nes jei numatytasis nustatymas yra (automatinis), tada net retas mažas tinklo delsimas automatiškai ilgam laikui nustato mūsų seanso greitį mažesniu greičiu, o tai gali sukelti pastebimų vėlavimų darbe, ypač grafikos programose.

išjungti ekrano užsklandą:i:1 – išjungti darbalaukio paveikslėlį
vartotojo vardas:s:myuserlogin - nurodome vartotojo prisijungimą, nes nemaža dalis mūsų vartotojų nežino savo prisijungimo
domain:s:mydomain – nurodykite domeną arba kompiuterio pavadinimą

Bet jei norime supaprastinti prisijungimo procedūros kūrimo užduotį, taip pat galime naudoti 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

Taip pat šiek tiek apie KPP klientą sistemoje Windows: MS nuėjo ilgą kelią optimizuodama protokolą ir jo serverio bei kliento dalis, įdiegdama daug naudingų funkcijų – tokių kaip darbas su aparatine 3D įranga, monitoriaus ekrano skyros optimizavimas, kelių ekranų, ir tt Bet, žinoma, viskas įgyvendinama atgalinio suderinamumo režimu ir jei klientas yra „Windows 7“, o nuotolinis kompiuteris yra „Windows 10“, tada RDP veiks naudojant 7.0 protokolo versiją. Tačiau, laimei, galite atnaujinti RDP versijas į naujesnę versiją – pavyzdžiui, galite atnaujinti protokolo versiją iš 7.0 (Windows 7) į 8.1. Todėl klientų patogumui reikia maksimaliai padidinti serverio dalies versijas, taip pat pateikti nuorodas į naujas KPP protokolo klientų versijas.

Dėl to turime paprastą ir gana saugią nuotolinio prisijungimo prie darbo kompiuterio ar terminalo serverio technologiją. Tačiau norint užtikrinti saugesnį ryšį, mūsų Port Knocking metodą galima apsunkinti keliais dydžiais, pridedant prievadus, kad būtų galima patikrinti – naudodami tą pačią logiką, galite pridėti 3,4,5,6... prievadą ir Šiuo atveju tiesioginis įsibrovimas į jūsų tinklą bus beveik neįmanomas.

Failų paruošimas nuotoliniam ryšiui su RDP sukurti.

Šaltinis: www.habr.com

Добавить комментарий