Làm việc từ xa tại văn phòng. RDP, Port Knocking, Mikrotik: đơn giản và an toàn

Do đại dịch vi rút covid-19 và việc kiểm dịch chung ở nhiều quốc gia, cách duy nhất để nhiều công ty tiếp tục hoạt động là truy cập từ xa vào nơi làm việc qua Internet. Có nhiều phương pháp tương đối an toàn để làm việc từ xa - nhưng với quy mô của vấn đề, cần có một phương pháp đơn giản để mọi người dùng kết nối từ xa với văn phòng mà không cần cài đặt bổ sung, giải thích, tư vấn tẻ nhạt và hướng dẫn dài dòng. Phương pháp này được nhiều quản trị viên RDP (Remote Desktop Protocol) yêu thích. Kết nối trực tiếp với nơi làm việc thông qua RDP giải quyết vấn đề của chúng tôi một cách lý tưởng, ngoại trừ một vấn đề lớn - việc giữ cổng RDP mở cho Internet là rất không an toàn. Do đó, dưới đây tôi đề xuất một phương pháp bảo vệ đơn giản nhưng đáng tin cậy.Làm việc từ xa tại văn phòng. RDP, Port Knocking, Mikrotik: đơn giản và an toàn

Vì tôi thường bắt gặp các tổ chức nhỏ sử dụng thiết bị Mikrotik để truy cập Internet, bên dưới sẽ trình bày cách triển khai điều này trên Mikrotik, nhưng phương pháp bảo vệ Port Knocking có thể dễ dàng triển khai trên các thiết bị cao cấp khác có cài đặt bộ định tuyến đầu vào và tường lửa tương tự .

Nói ngắn gọn về Port Knocking. Sự bảo vệ bên ngoài lý tưởng của một mạng được kết nối với Internet là khi tất cả các tài nguyên và cổng được đóng từ bên ngoài bằng tường lửa. Và mặc dù một bộ định tuyến có tường lửa được cấu hình như vậy không phản ứng theo bất kỳ cách nào đối với các gói đến từ bên ngoài, nhưng nó sẽ lắng nghe chúng. Do đó, bạn có thể định cấu hình bộ định tuyến để khi nhận được một chuỗi (mã) nhất định của các gói mạng trên các cổng khác nhau, nó (bộ định tuyến) cho IP từ nơi các gói đến sẽ cắt quyền truy cập vào một số tài nguyên (cổng, giao thức, vân vân.).

Bây giờ để kinh doanh. Tôi sẽ không mô tả chi tiết về cài đặt tường lửa trên Mikrotik - Internet có rất nhiều nguồn chất lượng cao cho việc này. Lý tưởng nhất là tường lửa chặn tất cả các gói đến, nhưng

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

Cho phép lưu lượng truy cập đến từ các kết nối có liên quan đã được thiết lập.
Bây giờ chúng tôi thiết lập Port Knocking trên 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

Bây giờ chi tiết hơn:

hai quy tắc đầu tiên

/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

cấm các gói đến từ các địa chỉ IP được đưa vào danh sách đen trong quá trình quét cổng;

Quy tắc thứ ba:

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

thêm ip vào danh sách các máy chủ đã gõ đúng cổng đầu tiên (19000);
Bốn quy tắc tiếp theo là:

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

tạo cổng bẫy cho những người muốn quét cổng của bạn và nếu những nỗ lực đó bị phát hiện, hãy đưa vào danh sách đen ip của họ trong 60 phút, trong thời gian đó hai quy tắc đầu tiên sẽ không cho các máy chủ đó cơ hội gõ đúng cổng;

Quy tắc tiếp theo:

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

đặt ip vào danh sách được phép trong 1 phút (đủ để thiết lập kết nối), vì lần gõ đúng thứ hai được thực hiện trên cổng mong muốn (16000);

Lệnh tiếp theo:

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

di chuyển các quy tắc của chúng tôi lên chuỗi xử lý tường lửa, vì rất có thể chúng tôi đã định cấu hình các quy tắc từ chối khác nhau để ngăn các quy tắc mới tạo của chúng tôi hoạt động. Quy tắc đầu tiên trong Mikrotik bắt đầu từ số 1, nhưng trên thiết bị của tôi, số XNUMX đã bị quy tắc tích hợp chiếm giữ và không thể di chuyển nó - tôi đã chuyển nó thành XNUMX. Do đó, chúng tôi xem xét cài đặt của mình - nơi bạn có thể di chuyển nó và cho biết số mong muốn.

Cài đặt tiếp theo:

/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

chuyển tiếp một cổng 33890 được chọn tùy ý sang cổng RDP thông thường 3389 và ip của máy tính hoặc máy chủ đầu cuối mà chúng tôi cần. Chúng tôi tạo các quy tắc như vậy cho tất cả các tài nguyên nội bộ cần thiết, tốt nhất là đặt các cổng bên ngoài không chuẩn (và khác). Đương nhiên, ip của tài nguyên nội bộ phải là tĩnh hoặc cố định trên máy chủ DHCP.

Bây giờ, Mikrotik của chúng tôi đã được định cấu hình và chúng tôi cần một quy trình đơn giản để người dùng kết nối với RDP nội bộ của chúng tôi. Vì chúng tôi chủ yếu có người dùng Windows, nên chúng tôi tạo một tệp bat đơn giản và đặt tên là StartRDP.bat:

1.htm
1.rdp

tương ứng 1.htm chứa đoạn mã sau:

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

nó chứa hai liên kết đến các hình ảnh tưởng tượng được đặt tại my_router.sn.mynetname.net - chúng tôi lấy địa chỉ này từ hệ thống Mikrotik DDNS sau khi bật nó trong Mikrotik của chúng tôi: đi tới menu IP-> Đám mây - chọn hộp kiểm Đã bật DDNS, nhấp vào Áp dụng và sao chép tên dns của bộ định tuyến của chúng tôi. Nhưng điều này chỉ cần thiết khi ip bên ngoài của bộ định tuyến là động hoặc sử dụng cấu hình với một số nhà cung cấp Internet.

Cổng trong liên kết đầu tiên: 19000 tương ứng với cổng đầu tiên mà bạn cần gõ, trong lần thứ hai, tương ứng với cổng thứ hai. Giữa các liên kết có một hướng dẫn ngắn cho biết phải làm gì nếu đột nhiên kết nối của chúng tôi bị gián đoạn do sự cố mạng ngắn - chúng tôi làm mới trang, cổng RDP sẽ mở lại cho chúng tôi trong 1 phút và phiên của chúng tôi được khôi phục. Ngoài ra, văn bản giữa các thẻ img tạo thành độ trễ vi mô cho trình duyệt, điều này làm giảm khả năng gói đầu tiên được gửi đến cổng thứ hai (16000) - cho đến nay chưa có trường hợp nào như vậy xảy ra trong hai tuần sử dụng (30 mọi người).

Tiếp theo là tệp 1.rdp, chúng tôi có thể định cấu hình tệp này cho tất cả hoặc riêng cho từng người dùng (Tôi đã làm điều này - dành thêm 15 phút sẽ dễ dàng hơn là dành vài giờ để tư vấn cho những người không thể hiểu được)

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

trong số các cài đặt thú vị ở đây là sử dụng multimon: i: 1 - điều này bao gồm việc sử dụng nhiều màn hình - một số cần điều này, nhưng bản thân họ sẽ không nghĩ đến việc bật nó lên.

loại kết nối: i: 6 và networkautodetect: i: 0 - vì phần lớn Internet trên 10 Mbps, sau đó bật loại kết nối 6 (mạng cục bộ 10 Mbps trở lên) và tắt tự động phát hiện mạng, vì nếu theo mặc định (tự động) , thì ngay cả độ trễ mạng nhỏ hiếm gặp cũng tự động đặt phiên của chúng tôi ở tốc độ chậm trong một thời gian dài, điều này có thể tạo ra độ trễ đáng chú ý trong công việc, đặc biệt là trong các chương trình đồ họa.

vô hiệu hóa hình nền: i:1 - vô hiệu hóa hình ảnh máy tính để bàn
tên người dùng:s:myuserlogin - chúng tôi chỉ định thông tin đăng nhập của người dùng, vì một phần đáng kể người dùng của chúng tôi không biết thông tin đăng nhập của họ
domain:s:mydomain - chỉ định tên miền hoặc tên máy tính

Nhưng nếu chúng ta muốn đơn giản hóa nhiệm vụ tạo quy trình kết nối, thì chúng ta cũng có thể sử dụng 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

Ngoài ra một chút về ứng dụng khách RDP trong Windows: MS đã đi một chặng đường dài trong việc tối ưu hóa giao thức cũng như các phần máy chủ và máy khách của nó, đã triển khai nhiều tính năng hữu ích - chẳng hạn như làm việc với phần cứng 3D, tối ưu hóa độ phân giải màn hình cho màn hình của bạn, đa màn hình, và như thế. Nhưng tất nhiên, mọi thứ đều được triển khai ở chế độ tương thích ngược và nếu máy khách là Windows 7 và PC từ xa là Windows 10, thì RDP sẽ hoạt động bằng giao thức phiên bản 7.0. Nhưng lợi ích là bạn có thể cập nhật các phiên bản RDP lên các phiên bản mới hơn - ví dụ: bạn có thể nâng cấp phiên bản giao thức từ 7.0 (Windows 7) lên 8.1. Do đó, để thuận tiện cho khách hàng, cần phải tăng các phiên bản của phần máy chủ càng nhiều càng tốt, cũng như bỏ liên kết để nâng cấp lên các phiên bản mới của khách hàng giao thức RDP.

Kết quả là, chúng tôi có một công nghệ đơn giản và tương đối an toàn để kết nối từ xa với PC hoặc máy chủ đầu cuối đang hoạt động. Nhưng để có kết nối an toàn hơn, phương pháp Gõ cổng của chúng tôi có thể khiến việc tấn công trở nên khó khăn hơn theo nhiều bậc độ lớn, bằng cách thêm các cổng để kiểm tra - bạn có thể thêm 3,4,5,6 ... một cổng theo cùng một logic , và trong trường hợp này việc xâm nhập trực tiếp vào mạng của bạn gần như là không thể .

Tệp trống để tạo kết nối từ xa tới RDP.

Nguồn: www.habr.com

Thêm một lời nhận xét