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

Zbog pandemije virusa covid-19 i opće karantene u mnogim zemljama, jedini način da mnoge tvrtke nastave s radom je daljinski pristup radnom mjestu putem interneta. Postoje mnoge relativno sigurne metode za rad na daljinu - ali s obzirom na razmjere problema, potrebna je jednostavna metoda za daljinsko povezivanje svakog korisnika s uredom i bez potrebe za dodatnim postavkama, objašnjenjima, zamornim konzultacijama i dugim uputama. Ovu metodu vole mnogi administratori RDP (Remote Desktop Protocol). Izravno povezivanje s radnim mjestom putem RDP-a idealno rješava naš problem, osim jedne velike mušice - 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 uredu. RDP, Port Knocking, Mikrotik: jednostavno i sigurno

Budući da često nailazim na male organizacije gdje se Mikrotik uređaji koriste kao pristup Internetu, u nastavku će biti prikazano kako to implementirati na Mikrotik, ali Port Knocking zaštita se lako implementira i na druge uređaje više klase sa sličnim postavkama ulaznog usmjerivača i vatrozidom .

Ukratko o Port Knockingu. Idealna vanjska zaštita mreže spojene na Internet je kada su svi resursi i portovi izvana zatvoreni vatrozidom. I premda usmjerivač s ovako konfiguriranim vatrozidom ni na koji način ne reagira na pakete koji dolaze izvana, on ih sluša. Stoga možete konfigurirati usmjerivač tako da kada se određeni (kod) niz mrežnih paketa primi na različite priključke, on (usmjerivač) za IP s kojeg su paketi došli prekine pristup određenim resursima (priključcima, protokolima, itd.).

Sada na posao. Neću detaljno opisivati ​​postavke vatrozida na Mikrotiku - internet je prepun kvalitetnih izvora za to. U idealnom slučaju vatrozid blokira sve dolazne pakete, ali

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

Omogućuje dolazni promet iz uspostavljenih povezanih veza.
Sada postavljamo Port Knocking na Mikrotiku:

/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 s IP adresa koje su na crnoj listi tijekom 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 popis hostova koji su napravili ispravno prvo kucanje na ispravnom portu (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

stvorite trap portove za one koji žele skenirati vaše portove, a ako se takvi pokušaji otkriju, stavite njihov IP na crnu listu na 60 minuta, tijekom kojih prva dva pravila neće dati takvim domaćinima priliku da pokucaju 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 na popis dopuštenih na 1 minutu (dovoljno za uspostavljanje veze), budući da je na željenom portu napravljeno drugo ispravno kucanje (16000);

Sljedeća naredba:

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

pomiče naša pravila gore u lancu obrade vatrozida, budući da ćemo najvjerojatnije već imati različita konfigurirana pravila odbijanja koja će spriječiti rad naših novostvorenih pravila. Prvo pravilo u Mikrotiku počinje od nule, ali na mom uređaju je nula bila zauzeta ugrađenim pravilom i bilo ju je nemoguće pomaknuti - pomaknuo sam je na 1. Stoga gledamo naše postavke - gdje je možete pomaknuti 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 terminalskog poslužitelja koji nam je potreban. Mi stvaramo takva pravila za sve potrebne unutarnje resurse, po mogućnosti postavljajući nestandardne (i različite) vanjske priključke. Naravno, IP internih resursa mora biti ili statičan ili fiksan na DHCP poslužitelju.

Sada je naš Mikrotik konfiguriran i potrebna nam je jednostavna procedura da se korisnik spoji na naš interni RDP. Budući da uglavnom imamo Windows korisnike, stvaramo jednostavnu bat datoteku i nazivamo 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 na imaginarne slike koje se nalaze na my_router.sn.mynetname.net - ovu adresu preuzimamo iz Mikrotik DDNS sustava nakon što je omogućimo u našem Mikrotiku: idite na IP-> Cloud izbornik - označite DDNS Enabled checkbox, kliknite Primijeni i kopirajte dns ime našeg rutera. Ali to je potrebno samo kada je vanjski IP usmjerivača dinamičan ili se koristi konfiguracija s nekoliko internetskih pružatelja usluga.

Priključak u prvoj vezi: 19000 odgovara prvom priključku na koji trebate pokucati, u drugom, odnosno drugom. Između poveznica nalazi se kratka uputa koja pokazuje što učiniti ako nam iznenada dođe do prekida veze zbog kratkih problema s mrežom - osvježimo stranicu, RDP port nam se ponovno otvori na 1 minutu i naša sesija je ponovno uspostavljena. Također, tekst između img tagova čini mikroodgodu za preglednik, što smanjuje vjerojatnost da će prvi paket biti isporučen na drugi port (16000) - do sada nije bilo takvih slučajeva u dva tjedna korištenja (30 narod).

Slijedi datoteka 1.rdp, koju možemo konfigurirati jednu za sve ili zasebno za svakog korisnika (ja sam to napravio - lakše je potrošiti dodatnih 15 minuta nego nekoliko sati savjetujući se s onima 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 use multimon: i: 1 - ovo uključuje korištenje više monitora - nekima to treba, ali oni sami neće pasti na pamet uključiti to.

tip veze: i: 6 i networkautodetect: i: 0 - budući da je većina interneta iznad 10 Mbps, tada uključite tip veze 6 (lokalna mreža 10 Mbps i više) i isključite networkautodetect, jer ako je prema zadanim postavkama (auto) , tada čak i rijetka mala mrežna latencija automatski postavlja našu sesiju na sporu brzinu na dulje 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
domena:s:mojadomena - odredite naziv domene ili računala

No, ako želimo pojednostaviti naš zadatak stvaranja postupka povezivanja, tada također možemo koristiti 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đer malo o RDP klijentu u Windowsima: MS je daleko dogurao u optimizaciji protokola i njegovih poslužiteljskih i klijentskih dijelova, implementirao je mnoge korisne značajke - kao što je rad s hardverskim 3D, optimiziranje rezolucije zaslona za vaš monitor, multiscreen, i tako dalje. Ali naravno, sve je implementirano u načinu rada kompatibilnosti s prethodnim verzijama, a ako je klijent Windows 7, a udaljeno računalo Windows 10, tada će RDP raditi koristeći verziju protokola 7.0. Ali prednost je u tome š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 za praktičnost klijenata potrebno povećati verzije poslužiteljskog dijela što je više moguće, kao i ispustiti veze za nadogradnju na nove verzije klijenata RDP protokola.

Kao rezultat, imamo jednostavnu i relativno sigurnu tehnologiju za daljinsko povezivanje s radnim računalom ili terminalskim poslužiteljem. Ali za sigurniju vezu, našu metodu Port Knockinga možemo otežati za napad za nekoliko redova veličine, dodavanjem portova za provjeru - možete dodati 3,4,5,6 ... port prema istoj logici , te će u tom slučaju izravan upad u vašu mrežu biti gotovo nemoguć.

Prazne datoteke za stvaranje daljinske veze s RDP-om.

Izvor: www.habr.com

Dodajte komentar