Práce na dálku v kanceláři. RDP, Port Knocking, Mikrotik: jednoduché a bezpečné

Vzhledem k pandemii viru covid-19 a všeobecné karanténě v mnoha zemích je pro mnoho společností jedinou možností, jak pokračovat v práci, vzdálený přístup na pracoviště přes internet. Existuje mnoho relativně bezpečných metod pro práci na dálku – ale vzhledem k rozsahu problému je potřeba jednoduchá metoda, jak se každý uživatel vzdáleně připojit ke kanceláři a bez nutnosti dalšího nastavování, vysvětlování, zdlouhavých konzultací a dlouhých instrukcí. Tato metoda je oblíbená mnoha administrátory RDP (Remote Desktop Protocol). Přímé připojení k pracovišti přes RDP náš problém ideálně řeší, až na jednu velkou mouchu – nechat otevřený RDP port pro internet je velmi nebezpečné. Proto níže navrhuji jednoduchý, ale spolehlivý způsob ochrany.Práce na dálku v kanceláři. RDP, Port Knocking, Mikrotik: jednoduché a bezpečné

Vzhledem k tomu, že se často setkávám s malými organizacemi, kde se zařízení Mikrotik používají jako přístup k internetu, níže bude ukázáno, jak to implementovat na Mikrotiku, ale metoda ochrany Port Knocking je snadno implementována na jiných zařízeních vyšší třídy s podobným nastavením vstupního routeru a firewallu .

Krátce o Port Knocking. Ideální externí ochrana sítě připojené k internetu je, když jsou všechny zdroje a porty zvenčí uzavřeny firewallem. A přestože router s takto nakonfigurovaným firewallem nijak nereaguje na pakety přicházející zvenčí, poslouchá je. Proto můžete router nakonfigurovat tak, že když je přijata určitá (kódová) sekvence síťových paketů na různých portech, on (směrovač) pro IP, odkud pakety přišly, odřízne přístup k určitým zdrojům (porty, protokoly, atd.). atd.).

Nyní k podnikání. Detailní popis nastavení firewallu na Mikrotiku dělat nebudu - na to je internet plný kvalitních zdrojů. V ideálním případě firewall blokuje všechny příchozí pakety, ale

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

Umožňuje příchozí provoz z navázaných souvisejících připojení.
Nyní na Mikrotiku nastavíme klepání portů:

/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

Nyní podrobněji:

první dvě pravidla

/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

zakázat příchozí pakety z IP adres, které jsou na černé listině během skenování portů;

Třetí 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

přidá ip do seznamu hostitelů, kteří provedli správné první zaklepání na správný port (19000);
Další čtyři pravidla jsou:

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

vytvořte trap porty pro ty, kteří chtějí skenovat vaše porty, a pokud jsou takové pokusy detekovány, zablokujte jejich IP po dobu 60 minut, během kterých první dvě pravidla neposkytnou takovým hostitelům možnost zaklepat na správné porty;

Další 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 seznamu povolených na 1 minutu (dostatek k navázání spojení), protože na požadovaném portu (16000) bylo provedeno druhé správné zaklepání;

Následující příkaz:

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

posouvá naše pravidla nahoru v řetězci zpracování firewallu, protože s největší pravděpodobností již budeme mít nakonfigurovaná jiná pravidla odmítnutí, která zabrání fungování našich nově vytvořených pravidel. Úplně první pravidlo v Mikrotiku začíná od nuly, ale na mém zařízení byla nula obsazena vestavěným pravidlem a nešlo ji přesunout - přesunul jsem ji na 1. Proto se podíváme na naše nastavení - kam ji můžete přesunout a uveďte požadované číslo.

Další nastavení:

/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řepošle libovolně vybraný port 33890 na obvyklý port RDP 3389 a ip počítače nebo terminálového serveru, který potřebujeme. Taková pravidla vytváříme pro všechny potřebné interní zdroje, nejlépe nastavujeme nestandardní (a jiné) externí porty. IP interních zdrojů musí být samozřejmě buď statická, nebo pevná na serveru DHCP.

Nyní je náš Mikrotik nakonfigurován a potřebujeme jednoduchý postup, aby se uživatel připojil k našemu internímu RDP. Protože máme hlavně uživatele Windows, vytvoříme jednoduchý soubor bat a pojmenujeme ho StartRDP.bat:

1.htm
1.rdp

respektive 1.htm obsahuje následující kód:

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

obsahuje dva odkazy na imaginární obrázky, které se nacházejí na adrese my_router.sn.mynetname.net - tuto adresu přebíráme ze systému Mikrotik DDNS po jeho povolení v našem Mikrotiku: přejděte do nabídky IP-> Cloud - zaškrtněte políčko DDNS Enabled, klikněte na Použít a zkopírujte název DNS našeho routeru. To je však nutné pouze v případě, že je externí IP routeru dynamická nebo je použita konfigurace s několika poskytovateli internetu.

Port v prvním odkazu: 19000 odpovídá prvnímu portu, na který musíte zaklepat, ve druhém, respektive druhému. Mezi odkazy je krátká instrukce, která ukazuje, co dělat, když se náhle naše připojení přeruší kvůli krátkým problémům se sítí – obnovíme stránku, RDP port se nám na 1 minutu znovu otevře a naše relace se obnoví. Také text mezi značkami img tvoří pro prohlížeč mikrozpoždění, což snižuje pravděpodobnost doručení prvního paketu na druhý port (16000) – zatím k takovým případům za dva týdny používání nedošlo (30 lidé).

Dále přichází soubor 1.rdp, který můžeme nakonfigurovat jeden pro všechny nebo zvlášť pro každého uživatele (udělal jsem to – je snazší strávit dalších 15 minut než pár hodin konzultací s těmi, kteří na to nemohli přijít)

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

ze zajímavých nastavení je použití multimon: i: 1 - to zahrnuje použití více monitorů - někteří to potřebují, ale samotné je nenapadne to zapnout.

typ připojení: i: 6 a automatická detekce sítě: i: 0 – protože většina internetu má rychlost vyšší než 10 Mb/s, zapněte typ připojení 6 (místní síť 10 Mb/s a více) a vypněte automatickou detekci sítě, protože pokud je ve výchozím nastavení (automaticky) , pak i vzácná malá latence sítě automaticky nastaví naši relaci na dlouhou dobu na nízkou rychlost, což může způsobit znatelné zpoždění v práci, zejména v grafických programech.

zakázat tapetu: i: 1 - zakázat obrázek na ploše
username:s:myuserlogin - udáváme přihlašovací jméno uživatele, protože významná část našich uživatelů nezná své přihlašovací údaje
domain:s:mydomain - zadejte název domény nebo počítače

Pokud si ale chceme zjednodušit náš úkol vytváření procedury připojení, pak můžeme použít 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

Také něco málo o RDP klientovi ve Windows: MS ušel dlouhou cestu v optimalizaci protokolu a jeho serverových a klientských částí, implementoval mnoho užitečných funkcí - jako je práce s hardwarovým 3D, optimalizace rozlišení obrazovky pro váš monitor, multiscreen, a tak dále. Ale samozřejmě je vše implementováno v režimu zpětné kompatibility, a pokud je klientem Windows 7 a vzdáleným počítačem Windows 10, pak RDP bude fungovat pomocí protokolu verze 7.0. Výhodou ale je, že verze RDP můžete aktualizovat na novější verze – například můžete upgradovat verzi protokolu ze 7.0 (Windows 7) na 8.1. Proto je pro pohodlí klientů nutné maximálně zvětšit verze serverové části a také vypustit odkazy pro upgrade na nové verze klientů protokolu RDP.

Díky tomu máme jednoduchou a relativně bezpečnou technologii pro vzdálené připojení k funkčnímu PC nebo terminálovému serveru. Ale pro bezpečnější připojení lze naši metodu klepání portů ztížit útokem o několik řádů, přidáním portů pro kontrolu - můžete přidat 3,4,5,6 ... port podle stejné logiky a v tomto případě bude přímé narušení vaší sítě téměř nemožné.

Prázdné soubory pro vytvoření vzdáleného připojení k RDP.

Zdroj: www.habr.com

Přidat komentář