Rad na daljinu u kancelariji. RDP, Port Knocking, Mikrotik: jednostavno i sigurno

Zbog pandemije virusa covid-19 i opšte karantene u mnogim zemljama, jedini način da mnoge kompanije nastave sa radom je daljinski pristup radnim mestima putem interneta. Postoji mnogo relativno sigurnih metoda za daljinski rad – ali s obzirom na razmjere problema, potrebna je jednostavna metoda za bilo kojeg korisnika za daljinsko povezivanje s uredom i bez potrebe za dodatnim podešavanjima, objašnjenjima, zamornim konsultacijama i dugim uputama. Ovu metodu vole mnogi administratori RDP (Remote Desktop Protocol). Direktno povezivanje na radno mjesto preko RDP-a idealno rješava naš problem, osim jedne velike muhe - držati RDP port otvorenim za Internet vrlo je nesigurno. Stoga u nastavku predlažem jednostavnu, ali pouzdanu metodu zaštite.Rad na daljinu u kancelariji. RDP, Port Knocking, Mikrotik: jednostavno i sigurno

S obzirom da često nailazim na male organizacije u kojima se Mikrotik uređaji koriste kao pristup Internetu, u nastavku će biti pokazano kako to implementirati na Mikrotik, ali se metoda zaštite Port Knocking lako implementira na druge uređaje više klase sa sličnim postavkama ulaznog rutera i firewall-om .

Ukratko o Port Knockingu. Idealna vanjska zaštita mreže spojene na Internet je kada su svi resursi i portovi zatvoreni izvana zaštitnim zidom. I iako ruter sa tako konfigurisanim firewall-om ni na koji način ne reaguje na pakete koji dolaze izvana, on ih sluša. Stoga možete konfigurirati ruter tako da kada se određeni (kod) slijed mrežnih paketa primi na različite portove, on (ruter) za IP sa kojeg su paketi došli prekinu pristup određenim resursima (portovima, protokolima, itd.).

Sada na posao. Neću davati detaljan opis postavki firewall-a na Mikrotiku - Internet je pun visokokvalitetnih izvora za to. U idealnom slučaju, zaštitni zid blokira sve dolazne pakete, ali

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

Dozvoljava dolazni promet sa uspostavljenih povezanih veza.
Sada postavljamo Port Knocking na 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

Sada detaljnije:

prva dva pravila

/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

zabraniti dolazne pakete sa IP adresa koje su na crnoj listi tokom skeniranja portova;

Treće pravilo:

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

dodaje ip na listu hostova koji su napravili ispravan prvi udarac na ispravan port (19000);
Sljedeća četiri pravila su:

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

kreirajte trap portove za one koji žele da skeniraju vaše portove, i ako se takvi pokušaji otkriju, stavite njihov IP na crnu listu na 60 minuta, tokom kojih prva dva pravila neće dati takvim domaćinima priliku da kucaju na ispravne portove;

Sljedeće pravilo:

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

stavlja ip u listu dozvoljenih na 1 minut (dovoljno za uspostavljanje veze), pošto je izvršeno drugo ispravno kucanje na željenom portu (16000);

Sljedeća naredba:

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

pomiče naša pravila naviše u lancu obrade zaštitnog zida, budući da ćemo najvjerovatnije već imati konfigurisana drugačija pravila zabrane koja će spriječiti naša novostvorena da rade. Prvo pravilo u Mikrotiku počinje od nule, ali na mom uređaju nulu je zauzelo ugrađeno pravilo i bilo ga je nemoguće pomjeriti - pomjerio sam ga na 1. Stoga gledamo naša podešavanja - gdje ga možete premjestiti i označite željeni broj.

Sljedeća postavka:

/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

prosljeđuje proizvoljno odabrani port 33890 na uobičajeni RDP port 3389 i ip računala ili terminal servera koji nam je potreban. Mi kreiramo takva pravila za sve potrebne interne resurse, po mogućnosti postavljajući nestandardne (i različite) eksterne portove. Naravno, IP internih resursa mora biti ili statičan ili fiksiran na DHCP serveru.

Sada je naš Mikrotik konfigurisan i potrebna nam je jednostavna procedura da se korisnik poveže na naš interni RDP. Pošto uglavnom imamo Windows korisnike, kreiramo jednostavnu bat datoteku i nazovemo je StartRDP.bat:

1.htm
1.rdp

odnosno 1.htm sadrži sljedeći kod:

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

sadrži dva linka ka zamišljenim slikama koje se nalaze na my_router.sn.mynetname.net - ovu adresu preuzimamo iz Mikrotik DDNS sistema nakon što smo je omogućili u našem Mikrotiku: idite na IP-> Cloud meni - potvrdite izbor u polju za potvrdu DDNS Enabled, kliknite na Apply i kopirajte dns ime našeg rutera. Ali ovo je potrebno samo kada je vanjski IP rutera dinamičan ili se koristi konfiguracija s nekoliko Internet provajdera.

Port u prvoj vezi: 19000 odgovara prvom portu na koji treba da kucate, u drugom, odnosno drugom. Između linkova nalazi se kratka instrukcija koja pokazuje šta da radimo ako se iznenada naša veza prekine zbog kratkih problema sa mrežom - osvežavamo stranicu, ponovo nam se otvara RDP port na 1 minut i naša sesija se obnavlja. Takođe, tekst između img tagova formira mikro-kašnjenje za pretraživač, što smanjuje verovatnoću da će prvi paket biti isporučen na drugi port (16000) - do sada nije bilo takvih slučajeva u dve nedelje korišćenja (30 ljudi).

Slijedi 1.rdp fajl, koji možemo konfigurirati za sve ili zasebno za svakog korisnika (ja sam ovo uradio - lakše je potrošiti dodatnih 15 minuta nego nekoliko sati konsultujući one koji to nisu mogli shvatiti)

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

od zanimljivih postavki ovdje je korištenje multimon: i: 1 - ovo uključuje korištenje više monitora - nekima je to potrebno, ali oni sami neće pomisliti da ga uključe.

vrsta veze: i: 6 i networkautodetect: i: 0 - pošto je većina interneta iznad 10 Mbps, onda uključite tip veze 6 (lokalna mreža 10 Mbps i više) i isključite autodetect mreže, jer ako je po defaultu (auto) , onda čak i rijetka mala mrežna latencija automatski postavlja našu sesiju na sporu brzinu na duže vrijeme, što može stvoriti primjetna kašnjenja u radu, posebno u grafičkim programima.

onemogući pozadinu: i: 1 - onemogući sliku radne površine
username:s:myuserlogin - navodimo korisničku prijavu, budući da značajan dio naših korisnika ne zna svoju prijavu
domain:s:mydomain - navedite ime domene ili računara

Ali ako želimo da pojednostavimo naš zadatak kreiranja procedure povezivanja, onda možemo koristiti i 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

Takođe malo o RDP klijentu u Windows-u: MS je prešao dug put u optimizaciji protokola i njegovih serverskih i klijentskih delova, implementirao je mnoge korisne funkcije - kao što je rad sa hardverskim 3D, optimizacija rezolucije ekrana za vaš monitor, multiscreen, i tako dalje. Ali naravno, sve je implementirano u režimu kompatibilnosti unazad, a ako je klijent Windows 7, a udaljeni PC Windows 10, onda će RDP raditi koristeći verziju protokola 7.0. Ali prednost je što možete ažurirati RDP verzije na novije verzije - na primjer, možete nadograditi verziju protokola sa 7.0 (Windows 7) na 8.1. Stoga je, radi pogodnosti klijenata, potrebno što više povećati verzije serverskog dijela, kao i izbaciti linkove za nadogradnju na nove verzije klijenata RDP protokola.

Kao rezultat, imamo jednostavnu i relativno sigurnu tehnologiju za daljinsko povezivanje na radni PC ili terminal server. Ali za sigurniju vezu, našu metodu Port Knockinga može se otežati napad za nekoliko redova veličine, dodavanjem portova za provjeru - možete dodati 3,4,5,6 ... port prema istoj logici , a u ovom slučaju direktan upad u vašu mrežu će biti gotovo nemoguć.

Prazne datoteke za kreiranje udaljene veze na RDP.

izvor: www.habr.com

Dodajte komentar