Távmunka az irodában. RDP, Port Knocking, Mikrotik: egyszerű és biztonságos

A covid-19 vírus világjárvány és a sok országban uralkodó általános karantén miatt sok vállalat számára az egyetlen módja annak, hogy tovább dolgozhasson, a munkahelyekhez való távoli hozzáférés az interneten keresztül. Számos viszonylag biztonságos módszer létezik a távoli munkára – de a probléma mértékét tekintve egyszerű módszerre van szükség, amellyel bármely felhasználó távolról csatlakozhat az irodához, és nincs szükség további beállításokra, magyarázatokra, unalmas konzultációkra és hosszú utasításokra. Ezt a módszert sok RDP (Remote Desktop Protocol) rendszergazda szereti. Az RDP-n keresztüli közvetlen munkahelyi csatlakozás ideális megoldást jelent a problémánkra, kivéve egy nagy légyszíves - az RDP port nyitva tartása az internet számára nagyon nem biztonságos. Ezért az alábbiakban egy egyszerű, de megbízható védekezési módszert javasolok.Távmunka az irodában. RDP, Port Knocking, Mikrotik: egyszerű és biztonságos

Mivel gyakran találkozom olyan kis szervezetekkel, ahol Mikrotik eszközöket használnak internet-hozzáférésként, az alábbiakban bemutatjuk, hogyan lehet ezt megvalósítani Mikrotik-on, de a Port Knocking védelmi módszer könnyen megvalósítható más magasabb osztályú eszközökön is, hasonló bemeneti útválasztó beállításokkal és tűzfallal. .

Röviden a Port Knockingról. Az Internetre csatlakozó hálózat ideális külső védelme az, ha minden erőforrást és portot kívülről tűzfal zár le. És bár egy ilyen konfigurált tűzfallal rendelkező router semmilyen módon nem reagál a kívülről érkező csomagokra, de figyel rájuk. Ezért beállíthatja az útválasztót úgy, hogy amikor egy bizonyos (kód) sorozatú hálózati csomag érkezik a különböző portokon, az (az útválasztó) megszakítsa a hozzáférést bizonyos erőforrásokhoz (portokhoz, protokollokhoz, stb.).

Most az üzlethez. Nem fogok részletesen leírni a Mikrotik tűzfal beállításait - az internet tele van jó minőségű forrásokkal. Ideális esetben a tűzfal blokkol minden bejövő csomagot, de

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

Lehetővé teszi a bejövő forgalmat a létrehozott, kapcsolódó kapcsolatokról.
Most beállítjuk a Port Knocking-t a Mikrotik-on:

/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

Most részletesebben:

első két szabály

/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

letiltja a bejövő csomagokat azokról az IP-címekről, amelyek a portellenőrzés során feketelistán szerepelnek;

Harmadik szabály:

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

hozzáadja az ip-t azon gazdagépek listájához, amelyek a megfelelő első kopogtatást végezték a megfelelő porton (19000);
A következő négy szabály a következő:

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

hozzon létre trap portokat azok számára, akik át akarják vizsgálni a portjait, és ha ilyen próbálkozásokat észlelnek, tegye 60 percre feketelistára az ip-t, amely alatt az első két szabály nem ad lehetőséget az ilyen gazdagépeknek a megfelelő portok kopogtatására;

Következő szabály:

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

az ip-t az engedélyezett listába helyezi 1 percre (elég a kapcsolat létrehozásához), mivel a második helyes kopogtatás a kívánt porton történt (16000);

Következő parancs:

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

feljebb helyezi a szabályainkat a tűzfal feldolgozási láncában, mivel valószínűleg már különböző deny szabályokat konfigurálunk, amelyek megakadályozzák az újonnan létrehozott szabályok működését. A Mikrotikban a legelső szabály nulláról indul, de az én készülékemen a nullát egy beépített szabály foglalta el, és nem lehetett mozgatni - áthelyeztem 1-re. Ezért megnézzük a beállításainkat - hova tudod áthelyezni és adja meg a kívánt számot.

Következő beállítás:

/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

egy tetszőlegesen kiválasztott 33890-es portot továbbít a szokásos 3389-es RDP-portra és a szükséges számítógép vagy terminálkiszolgáló IP-címére. Ilyen szabályokat készítünk minden szükséges belső erőforrásra, lehetőleg nem szabványos (és eltérő) külső portokat állítunk be. Természetesen a belső erőforrások ip-jének statikusnak vagy rögzítettnek kell lennie a DHCP-kiszolgálón.

Most a Mikrotik konfigurálva van, és egy egyszerű eljárásra van szükségünk ahhoz, hogy a felhasználó csatlakozzon a belső RDP-hez. Mivel főként Windows-felhasználóink ​​vannak, létrehozunk egy egyszerű bat fájlt, és a StartRDP.bat nevet kapjuk:

1.htm
1.rdp

az 1.htm a következő kódot tartalmazza:

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

két linket tartalmaz képzeletbeli képekre, amelyek a my_router.sn.mynetname.net oldalon találhatók - ezt a címet a Mikrotik DDNS rendszerből vesszük ki, miután engedélyeztük a Mikrotikban: lépjen az IP-> Cloud menübe - jelölje be a DDNS Enabled jelölőnégyzetet, kattintson az Alkalmaz gombra, és másolja ki útválasztónk DNS-nevét. De ez csak akkor szükséges, ha az útválasztó külső IP-je dinamikus, vagy több internetszolgáltató konfigurációját használják.

Az első link portja: 19000 az első portnak felel meg, amelyen kopogtatni kell, a másodikban pedig a másodiknak. A hivatkozások között van egy rövid instrukció, ami megmutatja, mit tegyünk, ha rövid hálózati problémák miatt hirtelen megszakad a kapcsolatunk - frissítjük az oldalt, 1 percre újra megnyílik számunkra az RDP port, és visszaáll a munkamenetünk. Ezenkívül az img címkék közötti szöveg mikro-késleltetést jelent a böngésző számára, ami csökkenti annak valószínűségét, hogy az első csomag a második portra kerüljön (16000) - eddig nem volt ilyen eset két hét használat alatt (30 emberek).

Utána jön az 1.rdp fájl, amit mindenkinek beállíthatunk, vagy minden felhasználóhoz külön-külön (én ezt csináltam - könnyebb plusz 15 percet tölteni, mint néhány órát konzultálni azokkal, akik nem tudtak rájönni)

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

az érdekes beállítások közül itt a multimon használata: i: 1 - ez magában foglalja a több monitor használatát is - van, akinek szüksége van erre, de maguknak eszébe sem jut bekapcsolni.

kapcsolat típusa: i: 6 és networkautodetect: i: 0 - mivel az internet nagy része 10 Mbps felett van, akkor kapcsolja be a 6-os kapcsolattípust (helyi hálózat 10 Mbps és magasabb), és kapcsolja ki a networkautodetect funkciót, mert ha alapértelmezés szerint (auto) , akkor a ritka kis hálózati késleltetés is automatikusan hosszú időre lassú sebességre állítja a munkamenetünket, ami különösen a grafikus programokban érezhető késéseket okozhat a munkában.

háttérkép letiltása: i: 1 - az asztali kép letiltása
username:s:myuserlogin - megadjuk a felhasználói bejelentkezést, mivel felhasználóink ​​jelentős része nem ismeri bejelentkezési nevét
domain:s:mydomain - adja meg a tartományt vagy a számítógép nevét

De ha le akarjuk egyszerűsíteni a kapcsolódási eljárás létrehozásának feladatát, akkor használhatjuk a PowerShellt is - 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

Valamint egy kicsit a Windows RDP klienséről: az MS hosszú utat tett meg a protokoll és annak szerver- és kliensrészeinek optimalizálása terén, számos hasznos funkciót implementált – például a hardveres 3D-vel való munkavégzés, a képernyő felbontásának optimalizálása a monitorhoz, többképernyős, stb. De természetesen minden visszafelé kompatibilitási módban van megvalósítva, és ha az ügyfél Windows 7, a távoli számítógép pedig Windows 10, akkor az RDP a 7.0-s protokollverzióval fog működni. Az előny azonban az, hogy frissítheti az RDP-verziókat újabb verziókra – például frissítheti a protokollverziót 7.0-ról (Windows 7) 8.1-re. Ezért a kliensek kényelme érdekében a lehető legnagyobb mértékben növelni kell a szerverrész verzióit, valamint el kell dobni a hivatkozásokat az RDP protokoll kliensek új verzióira való frissítéshez.

Ennek eredményeként egy egyszerű és viszonylag biztonságos technológiával rendelkezünk a működő PC-hez vagy terminálkiszolgálóhoz való távoli csatlakozáshoz. De a biztonságosabb kapcsolat érdekében a Port Knocking módszerünket több nagyságrenddel megnehezíthetjük, ha portokat adunk hozzá az ellenőrzéshez - hozzáadhat 3,4,5,6, XNUMX, XNUMX, XNUMX ... portot ugyanazon logika szerint , és ebben az esetben a hálózatba való közvetlen behatolás szinte lehetetlen.

Üres fájlok az RDP-vel való távoli kapcsolat létrehozásához.

Forrás: will.com

Hozzászólás