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

Sehubungan dengan pandemi virus covid-19 dan karantina universal di banyak negara, satu-satunya jalan keluar dari banyak perusahaan untuk terus bekerja adalah akses jarak jauh ke pekerjaan melalui Internet. Ada banyak metode yang relatif aman untuk pekerjaan jarak jauh - tetapi mengingat skala masalahnya, Anda memerlukan metode sederhana bagi pengguna mana pun untuk terhubung dari jarak jauh ke kantor dan tanpa perlu pengaturan tambahan, penjelasan, konsultasi yang membosankan dan instruksi panjang. Metode ini adalah favorit banyak admin RDP (Remote Desktop Protocol). Menghubungkan langsung ke tempat kerja melalui RDP idealnya memecahkan masalah kita, kecuali satu lompatan besar dalam salep - menjaga port RDP terbuka untuk Internet sangat tidak aman. Oleh karena itu, di bawah ini saya mengusulkan metode perlindungan yang sederhana namun dapat diandalkan.gambar

Karena saya sering menjumpai organisasi kecil di mana perangkat Mikrotik digunakan sebagai akses Internet, maka akan diperlihatkan di bawah ini bagaimana menerapkan ini pada Mikrotik, tetapi metode perlindungan Port Knocking mudah diimplementasikan pada perangkat kelas tinggi lainnya dengan pengaturan yang sama untuk input router dan firewall

Secara singkat tentang Port Knocking . Perlindungan eksternal yang ideal untuk jaringan yang terhubung ke Internet adalah ketika semua sumber daya dan porta ditutup secara eksternal oleh firewall. Dan meskipun router dengan firewall yang dikonfigurasikan tidak bereaksi dengan cara apa pun terhadap paket yang datang dari luar, ia tetap mendengarkannya. Oleh karena itu, Anda dapat mengkonfigurasi router sehingga ketika Anda menerima urutan (kode) tertentu dari paket jaringan pada port yang berbeda, itu (router) untuk IP dari mana paket berasal membuka akses ke sumber daya tertentu (port, protokol, dll.).

Sekarang to the point. Saya tidak akan melakukan deskripsi terperinci 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 yang dibuat (terkait).
Sekarang konfigurasikan 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 banyak:

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 saat memindai 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 diinginkan (19000);
Empat aturan 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 jebakan bagi mereka yang ingin memindai port Anda, dan ketika upaya tersebut terdeteksi, masukkan ip mereka ke daftar hitam selama 60 menit, di mana selama dua aturan pertama akan mencegah host tersebut mengetuk port yang benar;

Aturan berikut:

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 diizinkan selama 1 menit (cukup untuk membuat koneksi), karena ketukan kedua yang benar dilakukan ke port yang diinginkan (16000);

Perintah selanjutnya:

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

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

Pengaturan berikut:

/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 acak ke port RDP biasa 3389 dan ip dari komputer atau terminal server yang kita butuhkan. Kami membuat aturan seperti itu untuk semua sumber daya internal yang diperlukan, lebih disukai mengekspos port eksternal non-standar (dan berbeda). Secara alami, ip sumber daya internal harus statis atau diamankan ke server DHCP.

Sekarang Mikrotik kami telah dikonfigurasi dan kami memerlukan prosedur sederhana bagi pengguna untuk terhubung ke RDP internal kami. Karena kami memiliki sebagian besar pengguna Windows, kami membuat file bat sederhana dan menyebutnya StartRDP.bat:

1.htm
1.rdp

sesuai 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 alamat my_router.sn.mynetname.net - kami mengambil alamat ini dari sistem DDNS Mikrotik dengan pra-mengaktifkannya di Mikrotik kami: buka IP-> menu Cloud - centang kotak DDNS Diaktifkan, klik kotak centang Diaktifkan DDNS, klik Terapkan dan salin nama dns dari 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 tempat Anda perlu mengetuk, di kedua, masing-masing, yang kedua. Di antara tautan ada instruksi singkat yang menunjukkan apa yang harus dilakukan jika tiba-tiba koneksi kami terputus karena masalah jaringan pendek - kami menyegarkan halaman, port RDP terbuka untuk kami lagi selama 1 menit dan sesi kami dipulihkan. Juga, teks di antara tag img membentuk penundaan mikro untuk browser, yang mengurangi kemungkinan paket pertama dikirim ke port kedua (16000) - sejauh ini tidak ada kasus seperti itu dalam dua minggu penggunaan (30 orang).

Berikutnya adalah file 1.rdp, yang dapat kita konfigurasikan satu untuk semua atau secara terpisah untuk setiap pengguna (saya melakukannya - lebih mudah untuk menghabiskan 15 menit tambahan daripada beberapa jam untuk berkonsultasi dengan mereka yang tidak bisa 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

pengaturan menarik di sini menggunakan multimon: i: 1 - ini termasuk penggunaan beberapa monitor - beberapa memerlukannya, tetapi mereka tidak akan berpikir untuk menyalakannya sendiri.

jenis koneksi: i: 6 dan deteksi jaringan: i: 0 - karena sebagian besar Internet di atas 10 Mbps, kemudian nyalakan tipe koneksi 6 (jaringan lokal 10Mbps ke atas) dan nonaktifkan deteksi jaringan, karena jika itu (otomatis) secara default, maka itu bahkan jarang terjadi keterlambatan jaringan secara otomatis menetapkan kecepatan yang diremehkan untuk sesi kami, yang dapat membuat penundaan nyata dalam pekerjaan, terutama dalam program grafik.

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

Tetapi jika kita ingin menyederhanakan tugas membuat prosedur koneksi, kita juga dapat 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 berupaya keras untuk mengoptimalkan protokol dan sisi server dan kliennya, telah menerapkan banyak fitur yang bermanfaat - seperti bekerja dengan perangkat keras 3D, mengoptimalkan resolusi layar untuk monitor Anda, multi-layar, dan banyak lagi. Tetapi tentu saja, semuanya diimplementasikan dalam mode kompatibilitas ke belakang dan jika klien adalah Windows 7 dan PC jarak jauh adalah Windows 10, maka RDP akan bekerja menggunakan protokol versi 7.0. Tetapi manfaatnya adalah Anda dapat memutakhirkan versi RDP ke versi yang lebih baru - misalnya, Anda dapat memutakhirkan versi protokol dari 7.0 (Windows 7) ke 8.1. Oleh karena itu, untuk kenyamanan klien, perlu untuk memaksimalkan versi sisi server, serta membuang tautan untuk memutakhirkan ke versi baru klien protokol RDP.

Sebagai hasilnya, kami memiliki teknologi 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 menjadi rumit untuk serangan dengan beberapa urutan besarnya, dengan menambahkan port untuk memeriksa - Anda dapat menambahkan 3,4,5,6 ... logika yang sama dan dalam hal ini intrusi langsung ke jaringan Anda hampir tidak mungkin .

File kosong untuk membuat koneksi jarak jauh ke RDP .

All Articles