Xây dựng tính năng chống quét cổng (anti-port scan) cho router MikroTik


Port scanning là kỹ thuật thường được sử dụng bởi tin tặc để xác định các cổng mở trên thiết bị mạng. Khi một tin tặc xác định được các cổng mở, họ có thể tìm cách khai thác lỗ hổng trên các dịch vụ chạy trên các cổng đó. RouterOS của MikroTik cung cấp các công cụ mạnh mẽ để phát hiện và ngăn chặn các cuộc tấn công này. Trong hướng dẫn này, chúng ta sẽ sử dụng firewall filter để phát hiện và chặn các cuộc tấn công port scanning.

Đoạn mã Terminal

Đoạn script sau sử dụng các quy tắc trong firewall filter của RouterOS để phát hiện các kiểu scan cổng phổ biến và thêm các IP của kẻ tấn công vào danh sách địa chỉ để chặn:

/ip firewall filter

add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Mark Source ip port scanner to Address list " disabled=no

add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP FIN Stealth scan"

add chain=input protocol=tcp tcp-flags=fin,syn action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/FIN scan"

add chain=input protocol=tcp tcp-flags=syn,rst action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/RST scan"

add chain=input protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="FIN/PSH/URG scan"

add chain=input protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="ALL/ALL scan"

add chain=input protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP NULL scan"

add chain=input src-address-list="port scanners" action=drop comment="Drop port scanners" disabled=no

Hướng dẫn chi tiết

Bước 1: Đăng nhập vào RouterOS

  1. Mở WinBox hoặc giao diện web của RouterOS.
  2. Đăng nhập vào RouterOS với quyền quản trị.

Bước 2: Mở giao diện cấu hình Firewall

  1. Truy cập vào menu IP.
  2. Chọn Firewall.

Bước 3: Thêm các quy tắc phát hiện port scanning

Chúng ta sẽ thêm các quy tắc để phát hiện các kiểu scan cổng khác nhau và thêm các IP thực hiện scan vào danh sách “port scanners”.

1. Mark Source IP Port Scanner
add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Mark Source IP port scanner to Address list"

Giải thích:

  • chain=input: Quy tắc này áp dụng cho các gói tin đến router.
  • protocol=tcp: Áp dụng cho giao thức TCP.
  • psd=21,3s,3,1: Sử dụng thuật toán phân tích số lượng các kết nối mới từ cùng một địa chỉ IP trong khoảng thời gian ngắn để phát hiện các hành vi scan cổng. Các thông số này xác định ngưỡng và khoảng thời gian.
  • action=add-src-to-address-list: Hành động là thêm địa chỉ IP nguồn vào danh sách địa chỉ.
  • address-list="port scanners": Tên của danh sách địa chỉ.
  • address-list-timeout=2w: Thời gian tồn tại của IP trong danh sách là 2 tuần.
  • comment="Mark Source IP port scanner to Address list": Ghi chú để giải thích quy tắc.
2. NMAP FIN Stealth Scan
add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP FIN Stealth scan"

Giải thích:

  • tcp-flags=fin,!syn,!rst,!psh,!ack,!urg: Phát hiện các gói tin TCP có cờ FIN được bật mà không có các cờ khác như SYN, RST, PSH, ACK, URG. Đây là kỹ thuật scan cổng tàng hình của NMAP.
  • Các tham số còn lại tương tự như trên.
3. SYN/FIN Scan
add chain=input protocol=tcp tcp-flags=fin,syn action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/FIN scan"

Giải thích:

  • tcp-flags=fin,syn: Phát hiện các gói tin TCP có cả cờ SYN và FIN được bật cùng lúc. Đây là kiểu scan không hợp lệ.
  • Các tham số còn lại tương tự như trên.
4. SYN/RST Scan
add chain=input protocol=tcp tcp-flags=syn,rst action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/RST scan"

Giải thích:

  • tcp-flags=syn,rst: Phát hiện các gói tin TCP có cả cờ SYN và RST được bật cùng lúc. Đây là kiểu scan không hợp lệ.
  • Các tham số còn lại tương tự như trên.
5. FIN/PSH/URG Scan
add chain=input protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="FIN/PSH/URG scan"

Giải thích:

  • tcp-flags=fin,psh,urg,!syn,!rst,!ack: Phát hiện các gói tin TCP có cờ FIN, PSH và URG được bật mà không có các cờ SYN, RST, ACK.
  • Các tham số còn lại tương tự như trên.
6. ALL/ALL Scan
add chain=input protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="ALL/ALL scan"

Giải thích:

  • tcp-flags=fin,syn,rst,psh,ack,urg: Phát hiện các gói tin TCP có tất cả các cờ được bật cùng lúc. Đây là kiểu scan không hợp lệ.
  • Các tham số còn lại tương tự như trên.
7. NMAP NULL Scan
add chain=input protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP NULL scan"

Giải thích:

  • tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg: Phát hiện các gói tin TCP không có cờ nào được bật. Đây là kiểu scan NULL của NMAP.
  • Các tham số còn lại tương tự như trên.

Bước 4: Chặn các IP thực hiện port scanning

add chain=input src-address-list="port scanners" action=drop comment="Drop port scanners" disabled=no

Giải thích:

  • src-address-list="port scanners": Áp dụng cho các địa chỉ IP trong danh sách “port scanners”.
  • action=drop: Hành động là chặn các gói tin từ các địa chỉ IP này.
  • comment="Drop port scanners": Ghi chú để giải thích quy tắc.
  • disabled=no: Quy tắc được kích hoạt.

Kết luận

Sau khi hoàn tất các bước trên, router của bạn sẽ có khả năng phát hiện và chặn các cuộc tấn công port scanning hiệu quả, giúp bảo vệ hệ thống mạng khỏi các mối đe dọa tiềm ẩn. Hãy đảm bảo kiểm tra và cập nhật các quy tắc firewall thường xuyên để duy trì mức độ bảo mật cao nhất cho mạng của bạn. Điều chỉnh thời gian lưu trữ địa chỉ IP trong danh sách “port scanners” sao cho phù hợp với chính sách bảo mật của tổ chức bạn để tránh tình trạng vô tình chặn nhầm các IP hợp lệ trong thời gian quá dài.

Chúc bạn thành công trong việc bảo vệ mạng của mình khỏi các cuộc tấn công scan port!