Pekerjaan jarak jauh di kantor. RDP, Port Knocking, Mikrotik: sederhana dan aman

Karena pandemi virus covid-19 dan karantina umum di banyak negara, satu-satunya cara bagi banyak perusahaan untuk terus bekerja adalah akses jarak jauh ke tempat kerja melalui Internet. Ada banyak metode yang relatif aman untuk pekerjaan jarak jauh - tetapi mengingat skala masalahnya, diperlukan metode sederhana bagi setiap pengguna untuk terhubung dari jarak jauh ke kantor dan tanpa perlu pengaturan tambahan, penjelasan, konsultasi yang membosankan, dan instruksi yang panjang. Metode ini disukai oleh banyak admin RDP (Remote Desktop Protocol). Menghubungkan langsung ke tempat kerja melalui RDP idealnya menyelesaikan masalah kita, kecuali satu kesalahan besar - membiarkan port RDP tetap terbuka untuk Internet sangat tidak aman. Oleh karena itu, di bawah ini saya mengusulkan metode perlindungan yang sederhana namun andal.Pekerjaan jarak jauh di kantor. RDP, Port Knocking, Mikrotik: sederhana dan aman

Karena saya sering menjumpai organisasi kecil di mana perangkat Mikrotik digunakan sebagai akses Internet, di bawah ini akan ditunjukkan cara mengimplementasikannya di Mikrotik, tetapi metode perlindungan Port Knocking mudah diterapkan di perangkat kelas atas lainnya dengan pengaturan router input dan firewall yang serupa .

Secara singkat tentang Port Knocking. Perlindungan eksternal yang ideal dari jaringan yang terhubung ke Internet adalah ketika semua sumber daya dan port ditutup dari luar oleh firewall. Dan meskipun router dengan firewall yang dikonfigurasi seperti itu tidak bereaksi sama sekali terhadap paket yang datang dari luar, ia mendengarkannya. Oleh karena itu, Anda dapat mengonfigurasi router sehingga ketika urutan (kode) tertentu dari paket jaringan diterima pada port yang berbeda, itu (router) untuk IP dari mana paket berasal memotong akses ke sumber daya tertentu (port, protokol, dll.).

Sekarang untuk bisnis. Saya tidak akan melakukan penjelasan mendetail tentang pengaturan firewall di Mikrotik - Internet penuh dengan sumber berkualitas tinggi untuk ini. Idealnya, firewall memblokir semua paket yang masuk, tetapi

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

Mengizinkan lalu lintas masuk dari koneksi terkait yang sudah mapan.
Sekarang kita setting Port Knocking di 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 lebih terinci:

dua aturan 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 dari alamat IP yang masuk daftar hitam selama pemindaian port;

Aturan 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

menambahkan ip ke daftar host yang membuat ketukan pertama yang benar pada port yang benar (19000);
Empat aturan berikutnya adalah:

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 jebakan untuk mereka yang ingin memindai port Anda, dan jika upaya tersebut terdeteksi, daftar hitam ip mereka selama 60 menit, di mana dua aturan pertama tidak akan memberikan kesempatan kepada host tersebut untuk mengetuk port yang benar;

Aturan berikutnya:

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

menempatkan ip dalam daftar yang diizinkan selama 1 menit (cukup untuk membuat koneksi), karena ketukan kedua yang benar dilakukan pada port yang diinginkan (16000);

Perintah berikut:

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

memindahkan aturan kami ke atas rantai pemrosesan firewall, karena kemungkinan besar kami sudah memiliki aturan penolakan yang berbeda yang dikonfigurasi yang akan mencegah yang baru kami buat bekerja. Aturan pertama di Mikrotik dimulai dari nol, tetapi di perangkat saya nol ditempati oleh aturan bawaan dan tidak mungkin untuk memindahkannya - saya memindahkannya ke 1. Oleh karena itu, kami melihat pengaturan kami - di mana Anda dapat memindahkannya dan menunjukkan nomor yang diinginkan.

Pengaturan selanjutnya:

/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

meneruskan port 33890 yang dipilih secara sewenang-wenang ke port RDP biasa 3389 dan ip komputer atau server terminal yang kita butuhkan. Kami membuat aturan seperti itu untuk semua sumber daya internal yang diperlukan, sebaiknya mengatur port eksternal non-standar (dan berbeda). Secara alami, ip sumber daya internal harus statis atau tetap di server DHCP.

Sekarang Mikrotik kita sudah dikonfigurasi dan kita memerlukan prosedur sederhana bagi pengguna untuk terhubung ke RDP internal kita. Karena kami terutama memiliki pengguna Windows, kami membuat file bat sederhana dan menamainya StartRDP.bat:

1.htm
1.rdp

masing-masing 1.htm berisi kode berikut:

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

itu berisi dua tautan ke gambar imajiner yang terletak di my_router.sn.mynetname.net - kami mengambil alamat ini dari sistem DDNS Mikrotik setelah mengaktifkannya di Mikrotik kami: buka menu IP-> Cloud - centang kotak DDNS Diaktifkan, klik Terapkan dan salin nama dns router kami. Tetapi ini hanya diperlukan ketika ip eksternal router dinamis atau konfigurasi dengan beberapa penyedia Internet digunakan.

Port di tautan pertama: 19000 sesuai dengan port pertama yang perlu Anda ketuk, di port kedua, masing-masing, ke port kedua. Di antara tautan terdapat instruksi singkat yang menunjukkan apa yang harus dilakukan jika tiba-tiba koneksi kami terputus karena masalah jaringan pendek - kami menyegarkan halaman, port RDP dibuka kembali untuk kami selama 1 menit dan sesi kami dipulihkan. Selain itu, teks di antara tag img membentuk penundaan mikro untuk browser, yang mengurangi kemungkinan pengiriman paket pertama ke port kedua (16000) - sejauh ini tidak ada kasus seperti itu dalam dua minggu penggunaan (30 rakyat).

Berikutnya adalah file 1.rdp, yang dapat kita konfigurasikan satu untuk semua atau secara terpisah untuk setiap pengguna (saya melakukan ini - lebih mudah menghabiskan 15 menit ekstra daripada beberapa jam berkonsultasi dengan mereka yang tidak dapat mengetahuinya)

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 pengaturan yang menarik di sini adalah penggunaan multimon: i: 1 - ini termasuk penggunaan banyak monitor - beberapa membutuhkannya, tetapi mereka sendiri tidak berpikir untuk menyalakannya.

jenis koneksi: i: 6 dan networkautodetect: i: 0 - karena mayoritas Internet di atas 10 Mbps, maka hidupkan jenis koneksi 6 (jaringan lokal 10 Mbps ke atas) dan matikan networkautodetect, karena jika secara default (otomatis) , bahkan latensi jaringan kecil yang langka secara otomatis menyetel sesi kami ke kecepatan lambat untuk waktu yang lama, yang dapat menyebabkan penundaan yang nyata dalam pekerjaan, terutama dalam program grafik.

nonaktifkan wallpaper: i: 1 - nonaktifkan gambar desktop
username:s:myuserlogin - kami menentukan login pengguna, karena sebagian besar pengguna kami tidak mengetahui login mereka
domain:s:mydomain - tentukan nama domain atau komputer

Tetapi jika kita ingin menyederhanakan tugas membuat prosedur koneksi, maka kita juga bisa 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 sedikit tentang klien RDP di Windows: MS telah berkembang pesat dalam mengoptimalkan protokol dan bagian server dan kliennya, telah menerapkan banyak fitur berguna - seperti bekerja dengan perangkat keras 3D, mengoptimalkan resolusi layar untuk monitor Anda, multilayar, dan seterusnya. Tapi tentu saja, semuanya diimplementasikan dalam mode kompatibilitas mundur, dan jika kliennya adalah Windows 7, dan PC jarak jauh adalah Windows 10, maka RDP akan berfungsi menggunakan protokol versi 7.0. Tetapi keuntungannya adalah Anda dapat memperbarui versi RDP ke versi yang lebih baru - misalnya, Anda dapat memutakhirkan versi protokol dari 7.0 (Windows 7) ke 8.1. Oleh karena itu, demi kenyamanan klien, perlu untuk meningkatkan versi bagian server sebanyak mungkin, serta melepaskan tautan untuk memutakhirkan ke versi baru klien protokol RDP.

Hasilnya, kami memiliki teknologi yang sederhana dan relatif aman untuk koneksi jarak jauh ke PC atau server terminal yang berfungsi. Tetapi untuk koneksi yang lebih aman, metode Port Knocking kami dapat dibuat lebih sulit untuk diserang dengan beberapa kali lipat, dengan menambahkan port untuk diperiksa - Anda dapat menambahkan 3,4,5,6 ... port dengan logika yang sama , dan dalam hal ini penyusupan langsung ke jaringan Anda hampir tidak mungkin dilakukan .

File kosong untuk membuat koneksi jarak jauh ke RDP.

Sumber: www.habr.com

Tambah komentar