Puna në distancë në zyrë. RDP, Port Knocking, Mikrotik: e thjeshtë dhe e sigurt

Për shkak të pandemisë së virusit Covid-19 dhe karantinës së përgjithshme në shumë vende, mënyra e vetme që shumë kompani të vazhdojnë punën është qasja në distancë në vendet e punës nëpërmjet internetit. Ka shumë metoda relativisht të sigurta për punë në distancë - por duke pasur parasysh shkallën e problemit, ajo që nevojitet është një metodë e thjeshtë për çdo përdorues për t'u lidhur me zyrën nga distanca dhe pa pasur nevojë për cilësime shtesë, shpjegime, konsultime të lodhshme dhe të gjata. udhëzimet. Kjo metodë është e pëlqyer nga shumë administratorë RDP (Remote Desktop Protocol). Lidhja direkt me një stacion pune nëpërmjet RDP zgjidh në mënyrë ideale problemin tonë, përveç një mize të madhe në vaj - mbajtja e portës RDP të hapur për internetin është shumë e pasigurt. Prandaj, më poshtë propozoj një metodë të thjeshtë por të besueshme mbrojtjeje.Puna në distancë në zyrë. RDP, Port Knocking, Mikrotik: e thjeshtë dhe e sigurt

Meqenëse shpesh has në organizata të vogla ku pajisjet Mikrotik përdoren si lidhje interneti, më poshtë do të tregoj se si ta zbatoj këtë në Mikrotik, por metoda e mbrojtjes nga Port Knocking mund të zbatohet lehtësisht në pajisje të tjera të klasit më të lartë me cilësime të ngjashme të ruterit hyrës dhe muri i zjarrit

Shkurtimisht për Port Knocking. Mbrojtja e jashtme ideale e një rrjeti të lidhur me internetin është kur të gjitha burimet dhe portat mbyllen nga jashtë nga një mur zjarri. Dhe megjithëse një ruter me një mur zjarri të tillë të konfiguruar nuk reagon në asnjë mënyrë ndaj paketave që vijnë nga jashtë, ai i dëgjon ato. Prandaj, mund ta konfiguroni ruterin në mënyrë që kur të marrë një sekuencë të caktuar (kodi) të paketave të rrjetit në porte të ndryshme, ai (ruteri) për IP-në nga erdhën paketat, të mohojë qasjen në burime të caktuara (porte, protokolle, etj. .).

Tani tek pika. Unë nuk do të jap një përshkrim të hollësishëm të konfigurimit të një muri zjarri në Mikrotik - Interneti është plot me burime cilësore për këtë. Idealisht, një mur zjarri bllokon të gjitha paketat hyrëse, por

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

Lejon trafikun hyrës nga lidhjet e krijuara tashmë (të vendosura, të lidhura).
Tani ne konfigurojmë Port Knocking në 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

Tani më në detaje:

dy rregullat e para

/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

ndaloni paketat hyrëse nga adresat IP që ishin në listën e zezë gjatë skanimit të portit;

Rregulli i tretë:

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

shton ip në listën e hosteve që bënë goditjen e parë të saktë në portin e dëshiruar (19000);
Katër rregullat e mëposhtme:

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

krijoni porta kurthi për ata që duan të skanojnë portet tuaja, dhe kur zbulohen përpjekje të tilla, ata në listën e zezë IP-në e tyre për 60 minuta, gjatë së cilës dy rregullat e para nuk do t'u japin hosteve të tillë mundësinë për të trokitur në portat e duhura;

Rregulli tjetër:

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

vendos ip-në në listën e atyre të lejuara për 1 minutë (mjaftueshëm për të vendosur një lidhje), pasi trokitja e dytë e saktë bëhet në portin e dëshiruar (16000);

Komanda tjetër:

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

i zhvendos rregullat tona lart në zinxhirin e përpunimit të murit të zjarrit, pasi ka shumë të ngjarë që tashmë do të kemi rregulla të ndryshme ndaluese të konfiguruara që do të parandalojnë funksionimin e atyre të krijuar rishtas. Rregulli i parë në Mikrotik fillon nga zero, por në pajisjen time zero ishte e zënë nga një rregull i integruar dhe ishte e pamundur ta zhvendosja atë - e zhvendosa në 1. Prandaj, ne shikojmë cilësimet tona - ku mund ta zhvendosim dhe tregoni numrin e dëshiruar.

Cilësimi tjetër:

/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

përcjell një port 33890 të zgjedhur rastësisht në një port të rregullt RDP 3389 dhe IP-në e kompjuterit ose serverit të terminalit që na nevojitet. Ne krijojmë rregulla të tilla për të gjitha burimet e brendshme të nevojshme, mundësisht duke vendosur porte të jashtme jo standarde (dhe të ndryshme). Natyrisht, IP-ja e burimeve të brendshme duhet të jetë ose statike ose t'i caktohet një serveri DHCP.

Tani Mikrotik ynë është konfiguruar dhe na duhet një procedurë e lehtë që përdoruesi të lidhet me RDP-në tonë të brendshme. Meqenëse ne kemi kryesisht përdorues të Windows, ne krijojmë një skedar të thjeshtë bat dhe e quajmë atë StartRDP.bat:

1.htm
1.rdp

në përputhje me rrethanat 1.htm përmban kodin e mëposhtëm:

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

këtu përmban dy lidhje me fotografitë imagjinare që ndodhen në adresën my_router.sn.mynetname.net - ne e marrim këtë adresë nga sistemi Mikrotik DDNS pasi e kemi aktivizuar këtë në Mikrotik tonë: shkoni te menyja IP-> Cloud - kontrolloni DDNS të aktivizuar kuti, klikoni Apliko dhe kopjoni emrin dns të ruterit tonë. Por kjo është e nevojshme vetëm kur IP-ja e jashtme e ruterit është dinamike ose përdoret një konfigurim me disa ofrues të internetit.

Porti në lidhjen e parë: 19000 korrespondon me portin e parë në të cilin duhet të trokitni, në të dytën korrespondon me të dytën. Midis lidhjeve ka një udhëzim të shkurtër që tregon se çfarë të bëjmë nëse papritur lidhja jonë ndërpritet për shkak të problemeve të shkurtra të rrjetit - rifreskojmë faqen, porta RDP rihapet për ne për 1 minutë dhe sesioni ynë rikthehet. Gjithashtu, teksti midis etiketave img krijon një mikro-vonesë për shfletuesin, gjë që zvogëlon gjasat që paketa e parë të dërgohet në portin e dytë (16000) - deri më tani nuk ka pasur raste të tilla në dy javë përdorim (30 njerëzit).

Më pas vjen skedari 1.rdp, të cilin mund ta konfigurojmë një për të gjithë ose veçmas për secilin përdorues (kjo është ajo që bëra - është më e lehtë të shpenzosh 15 minuta shtesë sesa disa orë duke u konsultuar me ata që nuk mund ta kuptonin)

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

Një nga cilësimet interesante këtu është përdorimi i multimon:i:1 - kjo përfshin përdorimin e monitorëve të shumtë - disa njerëz kanë nevojë për këtë, por ata nuk mendojnë ta kthejnë vetë.

lloji i lidhjes:i:6 dhe networkautodetect:i:0 - meqenëse pjesa më e madhe e internetit është mbi 10 Mbit, atëherë aktivizoni llojin e lidhjes 6 (rrjet lokal 10 Mbit e lart) dhe çaktivizoni zbulimin automatik të rrjetit, pasi nëse parazgjedhja është (auto), atëherë edhe një vonesë e vogël e rrallë e rrjetit vendos automatikisht shpejtësinë për seancën tonë me një shpejtësi më të ulët për një kohë të gjatë, gjë që mund të krijojë vonesa të dukshme në punë, veçanërisht në programet grafike.

çaktivizoni sfondin:i:1 - çaktivizoni figurën e desktopit
emri i përdoruesit:s:myuserlogin - ne tregojmë hyrjen e përdoruesit, pasi një pjesë e konsiderueshme e përdoruesve tanë nuk e dinë hyrjen e tyre
domain:s:mydomain - tregoni domenin ose emrin e kompjuterit

Por nëse duam të thjeshtojmë detyrën e krijimit të një procedure lidhjeje, mund të përdorim edhe 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

Gjithashtu pak për klientin RDP në Windows: MS ka bërë një rrugë të gjatë në optimizimin e protokollit dhe pjesëve të serverit dhe klientit të tij, duke zbatuar shumë veçori të dobishme - të tilla si puna me harduer 3D, optimizimi i rezolucionit të ekranit për monitorin tuaj, shumë ekrane, etj. Por sigurisht, gjithçka zbatohet në modalitetin e përputhshmërisë së prapambetur dhe nëse klienti është Windows 7 dhe PC në distancë është Windows 10, atëherë RDP do të funksionojë duke përdorur versionin e protokollit 7.0. Por për fat të mirë, ju mund të përditësoni versionet RDP në versionet më të fundit - për shembull, mund të përmirësoni versionin e protokollit nga 7.0 (Windows 7) në 8.1. Prandaj, për lehtësinë e klientëve, duhet të maksimizoni versionet e pjesës së serverit dhe gjithashtu të siguroni lidhje për të përditësuar versionet e reja të klientëve të protokollit RDP.

Si rezultat, ne kemi një teknologji të thjeshtë dhe relativisht të sigurt për lidhje në distancë me një kompjuter pune ose server terminali. Por për një lidhje më të sigurt, metoda jonë Port Knocking mund të bëhet më e vështirë për t'u sulmuar me disa shkallë madhësie, duke shtuar porte për të kontrolluar - duke përdorur të njëjtën logjikë, mund të shtoni 3,4,5,6... port dhe në këtë rast, ndërhyrja e drejtpërdrejtë në rrjetin tuaj do të jetë pothuajse e pamundur.

Përgatitjet e skedarëve për krijimin e një lidhjeje në distancë me RDP.

Burimi: www.habr.com

Shto një koment