Afstandswerk in die kantoor. RDP, Port Knocking, Mikrotik: eenvoudig en veilig

As gevolg van die covid-19-viruspandemie en algemene kwarantyn in baie lande, is die enigste manier vir baie maatskappye om aan te hou werk afstandtoegang tot werkplekke via die internet. Daar is baie relatief veilige metodes vir afgeleë werk - maar gegewe die omvang van die probleem, is 'n eenvoudige metode nodig vir enige gebruiker om op afstand aan die kantoor te koppel en sonder die behoefte aan bykomende instellings, verduidelikings, vervelige konsultasies en lang instruksies. Hierdie metode is geliefd deur baie administrateurs RDP (Remote Desktop Protocol). Om direk aan die werkplek te koppel via RDP los ideaal ons probleem op, behalwe vir een groot vlieg in die salf – om die RDP-poort oop te hou vir die internet is baie onveilig. Daarom stel ek hieronder 'n eenvoudige maar betroubare metode van beskerming voor.Afstandswerk in die kantoor. RDP, Port Knocking, Mikrotik: eenvoudig en veilig

Aangesien ek gereeld klein organisasies teëkom waar Mikrotik-toestelle as 'n internetverbinding gebruik word, sal ek hieronder wys hoe om dit op Mikrotik te implementeer, maar die Port Knocking-beskermingsmetode kan maklik geïmplementeer word op ander hoërklastoestelle met soortgelyke invoerroeteerder-instellings en brandmuur

Kortliks oor Port Knocking. Die ideale eksterne beskerming van 'n netwerk wat aan die internet gekoppel is, is wanneer alle hulpbronne en poorte van buite deur 'n brandmuur gesluit word. En hoewel 'n router met so 'n gekonfigureerde firewall nie op enige manier reageer op pakkies wat van buite af kom nie, luister dit daarna. Daarom kan jy die roeteerder so instel dat wanneer 'n sekere (kode) volgorde van netwerkpakkies op verskillende poorte ontvang word, dit (die roeteerder) vir die IP vanwaar die pakkies vandaan kom toegang tot sekere hulpbronne (poorte, protokolle, ens.).

Nou tot die punt. Ek sal nie 'n gedetailleerde beskrywing gee van die opstel van 'n firewall op Mikrotik nie - die internet is vol kwaliteit bronne hiervoor. Ideaal gesproke blokkeer 'n firewall alle inkomende pakkies, maar

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

Laat inkomende verkeer vanaf gevestigde, verwante verbindings toe.
Nou het ons Port Knocking op Mikrotik opgestel:

/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

Nou in meer besonderhede:

eerste twee reëls

/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

verbied inkomende pakkies vanaf IP-adresse wat tydens poortskandering op die swartlys geplaas is;

Derde reël:

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

voeg ip by die lys van gashere wat die regte eerste klop op die verlangde poort gemaak het (19000);
Die volgende vier reëls is:

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

skep lokvalpoorte vir diegene wat jou poorte wil skandeer, en wanneer sulke pogings opgespoor word, swartlys hulle hul IP vir 60 minute, waartydens die eerste twee reëls nie sulke gashere die geleentheid sal gee om op die regte poorte aan te klop nie;

Volgende reël:

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

plaas die ip vir 1 minuut in die lys van toegelates (genoeg om 'n verbinding te vestig), aangesien die tweede korrekte klop op die gewenste poort gemaak word (16000);

Volgende opdrag:

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

skuif ons reëls op in die firewall-verwerkingsketting, aangesien ons heel waarskynlik reeds verskillende ontkenningsreëls opgestel sal hê wat sal verhoed dat ons nuutgeskepte reëls werk. Die heel eerste reël in Mikrotik begin vanaf nul, maar op my toestel was nul deur 'n ingeboude reël beset en dit was onmoontlik om dit te skuif - ek het dit na 1 geskuif. Daarom kyk ons ​​na ons instellings - waarheen jy dit kan skuif en dui die verlangde nommer aan.

Volgende instelling:

/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

stuur 'n ewekansige geselekteerde poort 33890 aan na 'n gewone RDP-poort 3389 en die IP van die rekenaar of terminale bediener wat ons benodig. Ons skep sulke reëls vir alle nodige interne hulpbronne, en stel verkieslik nie-standaard (en verskillende) eksterne poorte op. Natuurlik moet die IP van interne hulpbronne óf staties wees óf aan 'n DHCP-bediener toegewys word.

Nou is ons Mikrotik gekonfigureer en ons benodig 'n maklike prosedure vir die gebruiker om aan ons interne RDP te koppel. Aangesien ons meestal Windows-gebruikers het, skep ons 'n eenvoudige vlermuislêer en noem dit StartRDP.bat:

1.htm
1.rdp

onderskeidelik 1.htm bevat die volgende kode:

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

dit bevat twee skakels na denkbeeldige prente wat by my_router.sn.mynetname.net geleë is - ons neem hierdie adres van die Mikrotik DDNS-stelsel af nadat ons dit in ons Mikrotik geaktiveer het: gaan na die IP-> Wolk-kieslys - merk die DDNS Enabled-merkblokkie, klik op Toepas en kopieer die dns-naam van ons router. Maar dit is slegs nodig wanneer die eksterne ip van die router dinamies is of 'n konfigurasie met verskeie internetverskaffers gebruik word.

Die poort in die eerste skakel: 19000 stem ooreen met die eerste poort waarop jy moet klop, in die tweede, onderskeidelik, met die tweede. Tussen die skakels is daar 'n kort instruksie wat wys wat om te doen as ons verbinding skielik onderbreek word weens kort netwerkprobleme - ons verfris die bladsy, die RDP-poort maak weer vir ons oop vir 1 minuut en ons sessie is herstel. Die teks tussen die img-etikette vorm ook 'n mikro-vertraging vir die blaaier, wat die waarskynlikheid verminder dat die eerste pakkie na die tweede poort (16000) afgelewer word - tot dusver was daar geen sulke gevalle in twee weke se gebruik nie (30 mense).

Volgende kom die 1.rdp-lêer, wat ons een vir almal of afsonderlik vir elke gebruiker kan konfigureer (dit is wat ek gedoen het - dit is makliker om 'n ekstra 15 minute as 'n paar uur te spandeer om diegene te raadpleeg wat dit nie kon uitvind nie)

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

Een van die interessante instellings hier is gebruik multimon:i:1 - dit sluit die gebruik van veelvuldige monitors in - sommige mense het dit nodig, maar hulle dink nie daaraan om dit self aan te skakel nie.

verbindingstipe: i: 6 en netwerkoutoopsporing: i: 0 - aangesien die meerderheid van die internet bo 10 Mbps is, skakel dan verbindingstipe 6 aan (plaaslike netwerk 10 Mbps en hoër) en skakel netwerkoutoopsporing af, want as dit by verstek (outo) , dan stel selfs 'n seldsame klein netwerkvertraging ons sessie outomaties op 'n stadige spoed vir 'n lang tyd, wat merkbare vertragings in werk kan veroorsaak, veral in grafiese programme.

deaktiveer plakpapier: i: 1 - deaktiveer die lessenaarprent
gebruikernaam:s:myuserlogin - ons dui die gebruikeraanmelding aan, aangesien 'n beduidende deel van ons gebruikers nie hul aanmelding ken nie
domein:s:mydomein - spesifiseer die domein of rekenaarnaam

Maar as ons die taak van die skep van 'n verbindingsprosedure wil vereenvoudig, kan ons ook PowerShell - StartRDP.ps1 gebruik

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

Ook 'n bietjie oor die RDP-kliënt in Windows: MS het 'n lang pad gevorder met die optimalisering van die protokol en sy bediener- en kliëntonderdele, het baie nuttige kenmerke geïmplementeer - soos om met hardeware 3D te werk, die skermresolusie vir jou monitor te optimaliseer, multiskerm, en so aan. Maar natuurlik word alles in terugwaartse versoenbaarheidsmodus geïmplementeer, en as die kliënt Windows 7 is, en die afgeleë rekenaar is Windows 10, dan sal RDP werk met protokolweergawe 7.0. Maar die voordeel is dat jy RDP-weergawes kan opdateer na meer onlangse weergawes – jy kan byvoorbeeld die protokolweergawe van 7.0 (Windows 7) na 8.1 opgradeer. Daarom, vir die gerief van kliënte, is dit nodig om die weergawes van die bedienerdeel soveel as moontlik te vergroot, asook om skakels te laat val om op te gradeer na nuwe weergawes van RDP-protokolkliënte.

As gevolg hiervan het ons 'n eenvoudige en relatief veilige tegnologie vir afstandverbinding met 'n werkende rekenaar of terminale bediener. Maar vir 'n veiliger verbinding, kan ons Port Knocking-metode moeiliker gemaak word om aan te val deur verskeie ordes van grootte, deur poorte by te voeg om na te gaan - jy kan 3,4,5,6 ... 'n poort byvoeg volgens dieselfde logika , en in hierdie geval sal 'n direkte indringing in jou netwerk byna onmoontlik wees.

Leë lêers vir die skep van 'n afgeleë verbinding met RDP.

Bron: will.com

Voeg 'n opmerking