A COVID-19 vírus és a világjárvány miatt sok országban az egyetlen lehetőség a cégek számára a működés folytatására az volt, hogy távoli hozzáférést biztosítsanak a munkakörnyezetükhöz az interneten keresztül. Sok viszonylag biztonságos módszer létezik a távoli munkavégzéshez — ám a probléma méretének tekintetében szükség van egy felhasználók számára egyszerű módszerre az irodához való távoli csatlakozáshoz, extra beállítások, magyarázatok, fárasztó konzultációk és hosszú utasítások nélkül. Ilyen módszer a sok admin által kedvelt RDP (Remote Desktop Protocol). A közvetlen RDP kapcsolódás a munkakörhöz tökéletesen megoldja a feladatunkat, kivéve egy nagy hibát — az RDP port internetről való nyitva tartása nagyon kockázatos. Ezért alább egy egyszerű, de megbízható védelmi módszert ajánlok.
Mivel gyakran találkozom kisebb szervezetekkel, ahol Mikrotik eszközöket használnak az internetkapcsolatra, alább bemutatom, hogyan lehet ezt megvalósítani Mikrotik-en, de a Port Knocking védelmi módszer könnyen megvalósítható más, magasabb kategóriájú eszközökön is hasonló beállításokkal az útválasztón és a tűzfalon.
Röviden a Port Knocking-ról. Az ideális külső védelem az internetre csatlakozó hálózat számára az, amikor az összes port és erőforrás bezárva van kívülről a tűzfal által. Noha az ilyen tűzfallal rendelkező router nem reagál a bejövő csomagokra, figyeli őket. Ezért a routert úgy lehet beállítani, hogy amikor meghatározott (kódolt) hálózati csomagsorozat érkezik különböző portokra, akkor (a router) az adott IP cím számára hozzáférést nyit meg bizonyos erőforrásokhoz (portok, protokollok stb.).
Most térjünk a lényegre. A Mikrotik tűzfal részletes beállításait nem fogom megadni — az interneten bőven találhatóak erre minőségi források. Ideálisan a tűzfal blokkolja az összes bejövő csomagot, de
/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,relatedEngedi a már létező (established, related) kapcsolatokból érkező forgalmat.
Most állítsuk be a Port Knocking-ot Mikrotik-en:
/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=3389Most pedig részletesebben:
az 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=RemoteRulesbetiltja a bejövő csomagokat olyan IP címekről, amelyek feketelistára kerültek a portok vizsgálatakor;
A 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 azoknak a hostoknak a listájához, amelyek a megfelelő első koppintást végezték a szükséges porton (19000);
A következő négy szabály:
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=RemoteRulescsapdákat hoznak létre a portjaik beolvasására vágyók számára, és ha ilyen kísérleteket észlelnek, az IP-jüket 60 percre feketelistára teszik, miközben az első két szabály nem engedi meg az ilyen hostoknak, hogy a megfelelő portokra koppintsanak;
A 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=RemoteRulesaz IP-t 1 percre engedélyezett listára helyezi (elég a kapcsolat létrehozásához), mivel a megfelelő koppintás megtörtént a szükséges porton (16000);
A következő parancs:
move [\/ip firewall filter find comment=RemoteRules] 1a szabályainkat felfelé mozgatja a tűzfal feldolgozási láncában, mivel valószínűleg már be vannak állítva különböző tiltó szabályok, amelyek megakadályozzák a frissen létrehozottak működését. Az első szabály a MikroTik-nél nullától kezdődik, de az én eszközömön a nullát egy beépített szabály foglalta el, így nem tudtam mozgatni — az 1-re helyeztem át. Tehát nézzük meg a beállításainkat — hová tudjuk átmozgatni, és adjuk meg a szükséges számot.
A 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átirányítja a véletlenszerűen kiválasztott 33890 portot a szokásos RDP 3389 portjára és a szükséges számítógép vagy terminál szerver IP-jére. Ilyen szabályokat hozunk létre minden szükséges belső erőforrásra, kívánatos, hogy nem szabványos (és eltérő) külső portokat használjunk. Természetesen a belső erőforrások IP címének statikusnak kell lennie, vagy DHCP-n kell rögzíteni őket. szerveren.
Most a MikroTik be van állítva, és szükségünk van egy felhasználóbarát eljárásra a belső RDP-hez való csatlakozáshoz. Mivel főleg Windows felhasználóink vannak, egyszerű bat fájlt készítünk, és "StartRDP.bat" névre nevezzük el:
1.htm
1.rdpa 1.htm pedig a következő kódot tartalmazza:
<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
kattintson az oldal frissítésére az RDP-n való új belépéshez
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">Itt két hivatkozás található olyan képekre, amelyek a my_router.sn.mynetname.net címen találhatók — ezt a címet a MikroTik DDNS rendszeréből vesszük, miután ezt a MikroTik rendszerünkben beállítottuk: lépjünk be az IP->Cloud menübe, pipáljuk ki a DDNS Engedélyezve lehetőséget, kattintsunk az Alkalmaz gombra, és másoljuk a routerünk DNS nevét. Ez csak akkor kötelező, ha a router külső IP-je dinamikus, vagy ha több internetszolgáltató konfigurációt használunk.
Az első hivatkozásban található port:19000 a megfelelő első port, amelyen keresztül be kell lépni, a második viszont a második. A hivatkozások között rövid útmutató található, amely megmutatja, mit kell tennünk, ha hirtelen a kapcsolatunk megszakad a hálózati zavarok miatt — frissítsük az oldalt, az RDP port ismét 1 percig megnyílik, és a munkamenetünk helyreáll. Emellett a img címkék közötti szöveg mikro késleltetést okoz a böngésző számára, amely csökkenti annak valószínűségét, hogy az első csomag a második portra (16000) érkezzen — eddig két hét alatt (30 ember) ilyen eset nem történt.
Ezután következik az 1.rdp fájl, amelyet beállíthatunk egyetemesre, vagy külön minden felhasználóra (én ezt tettem — könnyebb plusz 15 percet áldozni, mint több órát segítséget adni azoknak, 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Érdekes beállítás az use multimon:i:1 — ez lehetővé teszi több monitor használatát — egyeseknek ez szükséges, de maguktól nem gondolnak rá.
connection type:i:6 és networkautodetect:i:0 — mivel a legtöbb internetkapcsolat 10 Mbit felett van, így kapcsolat típusát 6-ra állítjuk (helyi hálózat 10 Mbit és felette), és kikapcsoljuk a networkautodetect-ot, mivel ha alapértelmezett (auto), akkor még egy ritka, kis késleltetés is automatikusan alacsony sebességre állítja be a munkamenetünket, ami észlelhető késleltetéseket okozhat a munkában, különösen grafikai programoknál.
disable wallpaper:i:1 — kikapcsoljuk a háttérképet.
username:s:myuserlogin — megadjuk a felhasználónevet, mivel a felhasználóink jelentős része nem tudja a saját felhasználónevét.
domain:s:mydomain — megadjuk a domaint vagy a számítógép nevét.
De ha szeretnénk egyszerűsíteni a csatlakozási eljárás létrehozását, akkor PowerShell-t is igénybe vehetjük — 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:33890Egy kicsit az RDP klienstől a Windows-ban: A Microsoft hosszú utat tett meg a protokoll, valamint annak szerver- és kliensoldala optimalizálásában, sok hasznos funkciót valósított meg, mint például a hardveres 3D használatát, a képernyő felbontásának optimalizálását a monitorhoz, többszörös képernyő támogatását, és egyebeket. Természetesen minden a visszafelé kompatibilitás jegyében készült, és ha a kliens Windows 7-t használ, míg a távoli PC Windows 10-et, az RDP a 7.0 verziós protokollt használva fog működni. Szerencsére a RDP verziói frissíthetők újabb verziókra — például a protokoll verzióját 7.0-ról (Windows 7) 8.1-re lehet emelni. Ezért a kliens kényelme érdekében érdemes a szerveroldali verziókat a lehető legmagasabbra emelni, és linkeket adni az RDP protokoll újabb kliensverziók frissítéséhez.
Eredményeképpen egy egyszerű és viszonylag biztonságos technológiát kapunk a távoli PC-hez vagy terminál szerverhez való csatlakozáshoz. De a biztonságosabb kapcsolat érdekében a Port Knocking módszerünket tovább lehet bonyolítani, például további portok hozzáadásával a teszteléshez — a logika szerint 3, 4, 5, 6… portot is hozzáadhatunk, és így a közvetlen behatolás az Ön hálózatába szinte lehetetlenné válik.
.
Forrás: habr.com
