Práca z kancelárie na diaľku. RDP, Port Knocking, Mikrotik: jednoduché a bezpečné

V súvislosti s pandémiou vírusu covid-19 a celosvetovým lockdownom v mnohých krajinách sa pre mnohé firmy stal jediný spôsob, ako pokračovať v práci — vzdialený prístup k pracovným miestam cez internet. Existuje mnoho relatívne bezpečných metód pre vzdialenú prácu, no vzhľadom na rozsah problému je potrebná jednoduchá metóda vzdialeného pripojenia do kancelárie bez nutnosti ďalších nastavení, vysvetlení, únavných konzultácií a dlhých inštrukcií. Takou metódou je obľúbený RDP (Remote Desktop Protocol) medzi administrátormi. Priame pripojenie k pracovisku cez RDP ideálne rieši našu úlohu, avšak existuje jedna veľká chyba — nebezpečné je nechať port RDP otvorený pre internet. Preto nižšie ponúkam jednoduchú, ale efektívnu metódu ochrany.Práca z kancelárie na diaľku. RDP, Port Knocking, Mikrotik: jednoduché a bezpečné

Keďže často narážam na malé organizácie, ktoré na internetové pripojenie používajú zariadenia Mikrotik, nižšie sa ukáže, ako to realizovať na Mikrotiku, avšak metóda ochrany Port Knocking je jednoducho implementovateľná aj na iných, výkonnejších zariadeniach pri podobných nastaveniach routera a firewallu.

Krátko o Port Knocking. Ideálna vonkajšia ochrana siete pripojenej k internetu je, keď sú všetky zdroje a porty uzavreté z vonku firewallom. Aj keď router s takto nastaveným firewallom nijako nereaguje na prichádzajúce pakety z vonka, neustále ich monitoruje. Preto je možné router nastaviť tak, aby pri prijatí určitej (kódovej) sekvencie sieťových paketov na rôzne porty, otvoril prístup k určitým zdrojom (portom, protokolom atď.) pre IP adresu, z ktorej pakety prišli.

Teraz k veci. Detailný opis nastavenia firewallu na Mikrotiku nebudem robiť — na internete je plno kvalitných zdrojov. Ideálne je, aby firewall blokoval všetky prichádzajúce pakety, ale

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

Umožňuje prichádzajúci traffic z už nadviazaných (established, related) spojení.
Teraz nastavíme 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

Teraz podrobnejšie:

prvé dve pravidlá

/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

zakazujú prichádzajúce pakety z IP adries, ktoré sa dostali do čierneho zoznamu pri skenovaní portov;

Tretie pravidlo:

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

pridáva IP do zoznamu hostiteľov, ktorí urobili správny prvý úder na požadovaný port (19000);
Nasledujúce štyri pravidlá:

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

vytvárajú porty pasce pre tých, ktorí sa snažia skenovať vaše porty, a pri zistení takýchto pokusov vložia ich IP do čiernej listiny na 60 minút, počas ktorých prvé dva pravidlá nedovolia takým hostiteľom pripojiť sa na správne porty;

Nasledujúce pravidlo:

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

vloží IP do povolenej listiny na 1 minútu (dosť na nadviazanie spojenia), keďže došlo k druhému správnemu poklepaní na požadovaný port (16000);

Nasledujúca príkaz:

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

presúva naše pravidlá vyššie v reťazci spracovania firewallu, keďže pravdepodobne už máme nastavené rôzne zakazujúce pravidlá, ktoré nedovolia našim novo vytvoreným pravidlám fungovať. Najprv pravidlo v mikrotiku začína od nuly, ale na mojom zariadení bola nula obsadená vstavaným pravidlom a nebolo možné ho presunúť — presunul som ho na 1. Preto si pozrieme naše nastavenia — kam môžeme presunúť a uvedieme potrebné číslo.

Nasledujúce nastavenie:

/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

realizuje presmerovanie ľubovoľne vybraného portu 33890 na bežný RDP port 3389 a IP potrebného počítača alebo terminálového servera. Takéto pravidlá vytvárame pre všetky potrebné interné zdroje, pričom je žiaduce nastaviť neštandardné (a rôzne) vonkajšie porty. Samozrejme, že IP interných zdrojov musia byť buď statické, alebo zabezpečené na DHCP. serveri.

Teraz je náš mikrotik nastavený a potrebujeme jednoduchý používateľský postup pripojenia k našemu vnútornému RDP. Keďže ide prevažne o používateľov Windows, vytvoríme jednoduchý bat súbor a nazveme ho StartRDP.bat:

1.htm
1.rdp

prislúchajúce 1.htm obsahuje nasledujúci kód:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
kliknite na tlačidlo obnoviť stránku pre opätovný prístup cez RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

Tu sa nachádzajú dva odkazy na fiktívne obrázky, ktoré sa nachádzajú na adrese my_router.sn.mynetname.net — túto adresu berieme zo systému DDNS Mikrotika, pričom to najprv zapneme v našom Mikrotiku: ideme do menu IP->Cloud — zaškrtneme DDNS Enabled, klikneme na Apply a skopírujeme dns názov nášho routera. Toto je povinné len v prípade, že externá IP routera je dynamická alebo sa používa konfigurácia s viacerými poskytovateľmi internetu.

Port v prvom odkaze :19000 zodpovedá prvému portu, na ktorý je potrebné smerovať, v druhom prípade teda druhému. Medzi odkazmi je krátka inštrukcia, ktorá ukazuje, čo robiť, ak by sa naše pripojenie kvôli krátkym problémom v sieti prerušilo — aktualizujeme stránku, port RDP sa nám znova otvorí na 1 minútu a náš relácia sa obnoví. Taktiež text medzi tagmi img vytvára pre prehliadač mikrozdržanie, ktoré znižuje pravdepodobnosť doručenia prvého balíka na druhý port (16000) — za posledné dva týždne používania (30 ľudí) sa také prípady nevyskytli.

Ďalej nasleduje súbor 1.rdp, ktorý môžeme nastaviť ako jeden pre všetkých alebo samostatne pre každého používateľa (ja som to takto urobil — jednoduchšie stráviť ďalších 15 minút, ako niekoľko hodín konzultácií s tými, ktorí sa nevedeli zorientovať).

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

Zaujímavé nastavenia sú tu use multimon:i:1 — to zapína používanie viacerých monitorov — niektorí to potrebujú, a zapnúť sa na to sami nevedia.

connection type:i:6 a networkautodetect:i:0 — tak ako je internet u väčšiny nad 10 Mbit, zapneme typ pripojenia 6 (lokálna sieť 10 Mbit a vyššie) a vypneme networkautodetect, pretože ak je predvolene (auto), aj malá zdržanie v sieti automaticky dlhodobo nastavuje zníženú rýchlosť pre našu reláciu, čo môže spôsobovať znateľné oneskorenia v práci, najmä v grafických programoch.

disable wallpaper:i:1 — vypneme obrázok pracovnej plochy.
username:s:myuserlogin — uvádzame používateľské meno, pretože značná časť našich používateľov nevie svoje meno.
domain:s:mydomain — uvádzame doménu alebo názov počítača.

Ale ak chceme zjednodušiť úlohu pri vytváraní postupu pripojenia, môžeme využiť aj 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

Trochu aj o RDP kliensovi vo Windows: Microsoft prešiel dlhú cestu optimalizácie protokolu a jeho serverovej a klientskej časti, implementoval množstvo užitočných funkcií — ako napríklad podpora hardvérového 3D, optimalizácia rozlíšenia obrazovky na váš monitor, podpora viacerých obrazoviek a ďalšie. Samozrejme, všetko je implementované tak, aby bola zabezpečená spätná kompatibilita a ak je klient Windows 7 a vzdialený počítač Windows 10, RDP bude fungovať s protokolom verzie 7.0. Našťastie je možné aktualizovať verzie RDP na novšie verzie — napríklad je možné zvýšiť verziu protokolu z 7.0 (Windows 7) na 8.1. Preto, na uľahčenie klientom, je potrebné maximalizovať verzie serverovej časti a taktiež poskytnúť odkazy na aktualizáciu na nové verzie klientov protokolu RDP.

Výsledkom je jednoduchá a relatívne bezpečná technológia vzdialeného pripojenia k pracovnému počítaču alebo terminálovému serveru. Avšak pre bezpečnejšie pripojenie je možné náš spôsob Port Knocking komplikovať, aby útok bol o niekoľko poriadkov ťažší, pridaním portov na overenie — je možné pridať 3, 4, 5, 6… port a v takom prípade bude priamy útok na vašu sieť takmer nemožný.

Šablóny súborov na vytvorenie vzdialeného pripojenia k RDP.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster