Kerja jauh di pejabat. RDP, Port Knocking, Mikrotik: mudah dan selamat

Disebabkan oleh pandemik virus covid-19 dan kuarantin am di banyak negara, satu-satunya cara bagi banyak syarikat untuk terus bekerja ialah akses jauh ke tempat kerja melalui Internet. Terdapat banyak kaedah yang agak selamat untuk kerja jauh - tetapi memandangkan skala masalah, apa yang diperlukan ialah kaedah yang mudah untuk mana-mana pengguna untuk menyambung ke pejabat dari jauh dan tanpa memerlukan tetapan tambahan, penjelasan, perundingan yang membosankan dan panjang. arahan. Kaedah ini disukai oleh ramai pentadbir RDP (Remote Desktop Protocol). Menyambung terus ke stesen kerja melalui RDP idealnya menyelesaikan masalah kami, kecuali satu lalat besar dalam salap - memastikan port RDP terbuka untuk Internet adalah sangat tidak selamat. Oleh itu, di bawah saya mencadangkan kaedah perlindungan yang mudah tetapi boleh dipercayai.Kerja jauh di pejabat. RDP, Port Knocking, Mikrotik: mudah dan selamat

Oleh kerana saya sering menjumpai organisasi kecil di mana peranti Mikrotik digunakan sebagai sambungan Internet, di bawah saya akan menunjukkan cara melaksanakannya pada Mikrotik, tetapi kaedah perlindungan Port Knocking boleh dilaksanakan dengan mudah pada peranti kelas tinggi lain dengan tetapan penghala input yang serupa dan tembok api

Secara ringkas tentang Port Knocking. Perlindungan luaran yang ideal bagi rangkaian yang disambungkan ke Internet ialah apabila semua sumber dan port ditutup dari luar oleh tembok api. Dan walaupun penghala dengan tembok api yang dikonfigurasikan sedemikian tidak bertindak balas dalam apa jua cara terhadap paket yang datang dari luar, ia mendengarnya. Oleh itu, anda boleh mengkonfigurasi penghala supaya apabila ia menerima jujukan (kod) paket rangkaian tertentu pada port yang berbeza, ia (penghala) untuk IP dari mana paket datang, menafikan akses kepada sumber tertentu (port, protokol, dsb. .).

Sekarang ke titik. Saya tidak akan memberikan penerangan terperinci tentang menyediakan tembok api pada Mikrotik - Internet penuh dengan sumber berkualiti untuk ini. Sebaik-baiknya, tembok api menyekat semua paket masuk, tetapi

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

Membenarkan trafik masuk daripada sambungan yang telah ditetapkan (diwujudkan, berkaitan).
Sekarang kita mengkonfigurasi Port Knocking pada Mikrotik:

/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

Sekarang dengan lebih terperinci:

dua peraturan pertama

/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

melarang paket masuk daripada alamat IP yang telah disenaraihitamkan semasa pengimbasan port;

Peraturan ketiga:

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

menambah ip ke senarai hos yang membuat ketukan pertama yang betul pada port yang dikehendaki (19000);
Empat peraturan berikut:

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

buat port perangkap untuk mereka yang ingin mengimbas port anda, dan apabila percubaan tersebut dikesan, mereka menyenaraihitamkan IP mereka selama 60 minit, di mana dua peraturan pertama tidak akan memberi hos tersebut peluang untuk mengetuk port yang betul;

Peraturan seterusnya:

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

meletakkan ip dalam senarai yang dibenarkan selama 1 minit (cukup untuk mewujudkan sambungan), kerana ketukan kedua yang betul dibuat pada port yang dikehendaki (16000);

Perintah seterusnya:

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

mengalihkan peraturan kami ke atas rantaian pemprosesan tembok api, kerana kemungkinan besar kami sudah mempunyai pelbagai peraturan larangan yang dikonfigurasikan yang akan menghalang peraturan baru kami daripada berfungsi. Peraturan pertama dalam Mikrotik bermula dari sifar, tetapi pada peranti saya sifar telah diduduki oleh peraturan terbina dalam dan mustahil untuk mengalihkannya - saya mengalihkannya ke 1. Oleh itu, kita melihat tetapan kita - di mana kita boleh mengalihkannya dan nyatakan nombor yang dikehendaki.

Tetapan seterusnya:

/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

memajukan port 33890 yang dipilih secara rawak ke port RDP biasa 3389 dan IP komputer atau pelayan terminal yang kami perlukan. Kami mencipta peraturan sedemikian untuk semua sumber dalaman yang diperlukan, lebih baik menetapkan port luaran yang tidak standard (dan berbeza). Sememangnya, IP sumber dalaman mestilah sama ada statik atau diberikan kepada pelayan DHCP.

Sekarang Mikrotik kami dikonfigurasikan dan kami memerlukan prosedur mudah untuk pengguna menyambung ke RDP dalaman kami. Memandangkan kami kebanyakannya mempunyai pengguna Windows, kami mencipta fail kelawar mudah dan memanggilnya StartRDP.bat:

1.htm
1.rdp

sewajarnya 1.htm mengandungi kod berikut:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ страницу для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Π·Π°Ρ…ΠΎΠ΄Π° ΠΏΠΎ RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

di sini mengandungi dua pautan ke gambar khayalan yang terletak di alamat my_router.sn.mynetname.net - kami mengambil alamat ini dari sistem DDNS Mikrotik selepas mendayakannya dalam Mikrotik kami: pergi ke menu IP->Cloud - semak DDNS Enabled kotak, klik Guna dan salin nama dns penghala kami. Tetapi ini hanya perlu apabila IP luaran penghala adalah dinamik atau konfigurasi dengan beberapa pembekal Internet digunakan.

Port dalam pautan pertama: 19000 sepadan dengan port pertama yang anda perlukan untuk mengetuk, pada yang kedua sepadan dengan yang kedua. Di antara pautan terdapat arahan ringkas yang menunjukkan apa yang perlu dilakukan jika tiba-tiba sambungan kami terganggu kerana masalah rangkaian pendek - kami menyegarkan halaman, port RDP dibuka semula untuk kami selama 1 minit dan sesi kami dipulihkan. Juga, teks antara teg img mencipta kelewatan mikro untuk penyemak imbas, yang mengurangkan kemungkinan paket pertama dihantar ke port kedua (16000) - setakat ini tidak ada kes sedemikian dalam dua minggu penggunaan (30 orang).

Seterusnya ialah fail 1.rdp, yang boleh kami konfigurasikan satu untuk semua orang atau secara berasingan untuk setiap pengguna (itulah yang saya lakukan - lebih mudah untuk menghabiskan 15 minit tambahan daripada beberapa jam untuk berunding dengan mereka yang tidak dapat memahaminya)

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

Salah satu tetapan menarik di sini ialah gunakan multimon:i:1 - ini termasuk penggunaan berbilang monitor - sesetengah orang memerlukan ini, tetapi mereka tidak terfikir untuk menghidupkannya sendiri.

jenis sambungan:i:6 dan networkautodetec:i:0 - memandangkan majoriti Internet melebihi 10 Mbit, kemudian dayakan jenis sambungan 6 (rangkaian tempatan 10 Mbit dan ke atas) dan lumpuhkan networkautodect, kerana jika lalai adalah (auto), maka kependaman Rangkaian kecil yang jarang berlaku secara automatik menetapkan kelajuan untuk sesi kami pada kelajuan yang lebih rendah untuk masa yang lama, yang boleh menyebabkan kelewatan yang ketara dalam kerja, terutamanya dalam program grafik.

lumpuhkan kertas dinding:i:1 - lumpuhkan gambar desktop
username:s:myuserlogin - kami menunjukkan log masuk pengguna, kerana sebahagian besar pengguna kami tidak mengetahui log masuk mereka
domain:s:mydomain - nyatakan domain atau nama komputer

Tetapi jika kita ingin memudahkan tugas membuat prosedur sambungan, kita juga boleh menggunakan 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

Juga serba sedikit tentang klien RDP dalam Windows: MS telah melakukan sesuatu yang panjang dalam mengoptimumkan protokol dan bahagian pelayan dan kliennya, melaksanakan banyak ciri berguna - seperti bekerja dengan perkakasan 3D, mengoptimumkan resolusi skrin untuk monitor anda, berbilang skrin, dan lain-lain. Tetapi sudah tentu, semuanya dilaksanakan dalam mod keserasian ke belakang dan jika pelanggan ialah Windows 7 dan PC jauh ialah Windows 10, maka RDP akan berfungsi menggunakan versi protokol 7.0. Tetapi mujurlah, anda boleh mengemas kini versi RDP kepada versi yang lebih terkini - contohnya, anda boleh menaik taraf versi protokol daripada 7.0 (Windows 7) kepada 8.1. Oleh itu, untuk kemudahan pelanggan, anda perlu memaksimumkan versi bahagian pelayan, dan juga menyediakan pautan untuk mengemas kini kepada versi baharu klien protokol RDP.

Akibatnya, kami mempunyai teknologi yang mudah dan agak selamat untuk sambungan jauh ke PC atau pelayan terminal yang berfungsi. Tetapi untuk sambungan yang lebih selamat, kaedah Port Knocking kami boleh menjadi rumit untuk serangan dengan beberapa susunan magnitud dengan menambah port untuk diperiksa - menggunakan logik yang sama, anda boleh menambah 3,4,5,6... port dan dalam ini kes pencerobohan terus rangkaian anda hampir mustahil.

Persediaan fail untuk membuat sambungan jauh ke RDP.

Sumber: www.habr.com

Tambah komen