Hướng dẫn thực hành · MikroTik

Trong trang này

Cài đặt cảnh báo mạng mở rộng MikroTik

Phạm vi

Gói cảnh báo được gom thành ba nhóm độc lập:

Tất cả dùng lại Bot Token, Chat ID, PPPoE interface và probe trong pppoe-monitor-config. Phải cài PPPoE Monitor trước. Không nhập lại Bot Token vào các Source bên dưới.

Cài nhanh bằng Terminal

Dán nguyên dòng sau sau khi PPPoE Monitor đã hoạt động:

/tool fetch url="https://mikrotik.thachanhitt.vn/network-alerts-install.rsc" dst-path="network-alerts-install.rsc" check-certificate=yes; /import file-name="network-alerts-install.rsc"; /file remove [find where name="network-alerts-install.rsc"]

Installer tạo ba nhóm ở trạng thái Disabled. Chạy thử rồi bật theo mục 7.

Cập nhật lỗi tin khởi động bị lặp

Với router đã cài, không cần chạy lại installer:

  1. Trong System → Scripts → network-alert-router, thay Source bằng Source mới.
  2. Trong System → Scripts và System → Scheduler, tích thêm quyền policy cho các script/scheduler của gói được liệt kê bên dưới; giữ nguyên các quyền đang có. Áp dụng tương tự cho pppoe-monitor, pppoe-monitor-config, pppoe-monitor-reset và Scheduler pppoe-monitor-every-3m nếu đã cài.
  3. Sau khi cập nhật, lần khởi động tiếp theo chỉ gửi một tin thành công, gồm IP WAN PPPoE. Nếu Telegram lỗi, script vẫn thử lại trong 10 phút đầu.

Quyền chạy script phụ thuộc cách gọi; xem MikroTik Script permissions.

1. Tạo Script

Trong WinBox/WebFig, vào System → Scripts → +. Tạo sáu Script:

Name Policy Source
network-alert-config read, write, policy, test Mở Source
network-alert-router read, write, policy, test Mở Source
network-alert-wan read, write, policy, test Mở Source
network-alert-lan-security read, write, policy, test Mở Source
network-alert-login-security read, write, policy, test Mở Source
network-alert-lan-dhcp read, write, policy, test Mở Source

Mở từng file Source, sao chép toàn bộ nội dung rồi dán vào ô Source. Không dán khối Source dài vào Terminal.

Nếu cài hoàn toàn thủ công thay vì chạy installer, chạy một lần:

:global netAlertRouterBootSent; :set netAlertRouterBootSent true

Lệnh này tránh báo reboot giả ngay sau khi vừa cài.

2. Tạo ba Scheduler

Vào System → Scheduler → +. Tạo ba Scheduler và giữ Disabled cho tới khi thử xong.

Router

CPU được đọc mỗi phút. RAM/storage được đọc mỗi 5 lần chạy. Sau reboot, script thử gửi thông báo mỗi phút trong 10 phút đầu cho tới khi thành công. Tin khởi động liệt kê IP WAN của các PPPoE đang kết nối, không đọc hoặc đính kèm log reboot. Gửi thành công một lần thì dừng trong lần khởi động đó.

Quyền policy cùng test cần cho biến global giữ trạng thái giữa các lần Scheduler chạy. Thiếu policy có thể làm tin khởi động gửi lại mỗi phút dù log đã ghi SUCCESS; chạy thử bằng Terminal với quyền admin sẽ không phát hiện lỗi này.

WAN

Trạng thái PPPoE được kiểm tra mỗi phút. Packet loss/latency và counter cổng WAN được kiểm tra mỗi 5 lần chạy. CGNAT được kiểm tra mỗi 60 lần chạy.

Khi một đường PPPoE đang rớt, đang chờ gửi báo phục hồi, hoặc mới phục hồi chưa đủ 5 phút, các cảnh báo wan của riêng đường đó tạm dừng. Nhóm router và lan-security vẫn chạy. Cơ chế này tránh Quality, CGNAT, link flap và lỗi cổng gửi dồn khi Internet vừa lên lại.

LAN Security

CLI tương đương:

/system scheduler add name="network-alert-router-every-1m" interval=1m on-event="/system script run network-alert-router" policy=read,write,policy,test disabled=yes
/system scheduler add name="network-alert-wan-every-1m" interval=1m on-event="/system script run network-alert-wan" policy=read,write,policy,test disabled=yes
/system scheduler add name="network-alert-lan-security-every-1m" interval=1m on-event="/system script run network-alert-lan-security" policy=read,write,policy,test disabled=yes

Chống dò mật khẩu WinBox trong nhóm LAN Security

network-alert-lan-security gọi network-alert-login-security mỗi phút, trước phần gửi cảnh báo loop. Không cần thêm Scheduler. Cơ chế giống nhau ở bản Telegram và Zalo:

Trước khi bật nhóm, thêm IP hoặc subnet quản trị thực tế vào NET-ALERT-LOGIN-TRUSTED. Ví dụ dưới đây là IP mẫu, phải thay bằng IP của anh/chị:

/ip firewall address-list add list=NET-ALERT-LOGIN-TRUSTED address=192.0.2.10 comment="Management host - replace example IP"

Import installer giữ cả ba nhóm Disabled và chưa tạo rule chặn đăng nhập. Rule chỉ được tạo khi chạy thử hoặc bật nhóm LAN Security. Khi nâng cấp, import lại installer mới đúng kênh Telegram/Zalo và bật lại các nhóm cần dùng; không chạy lại bộ cấu hình router từ đầu.

Kiểm tra:

/ip firewall address-list print where list="NET-ALERT-LOGIN-BLOCKED"
/ip firewall filter print stats where comment~"NET-ALERT login"
/log print where message~"NET-ALERT.*LOGIN"

Để kiểm thử có kiểm soát, giữ một phiên quản trị từ IP tin cậy, dùng máy LAN thứ hai không thuộc allowlist và không có phiên đăng nhập thành công. Sau khi lấy baseline, bốn lần sai chưa được cấm; lần thứ năm trong cửa sổ 10 phút phải vào danh sách cấm sau lượt quét tiếp theo. Kiểm tra bộ đếm drop tăng, cổng WinBox bị chặn, và không có thông báo cho từng lần sai. Không tự tạo dòng log giả để thử.

Dừng tự cấm và gỡ riêng phần firewall do tính năng này tạo:

/system scheduler disable [find where name="network-alert-lan-security-every-1m"]
/ip firewall filter remove [find where comment="NET-ALERT login jump"]
/ip firewall filter remove [find where comment="NET-ALERT login block"]
/ip firewall address-list remove [find where list="NET-ALERT-LOGIN-BLOCKED" && comment="NET-ALERT failed WinBox logins"]

Giữ lại danh sách IP quản trị tin cậy. Nếu chỉ tắt Scheduler, các rule và lệnh cấm còn hiệu lực vẫn tồn tại tới khi hết timeout; bật/chạy lại nhóm sẽ tạo lại rule nếu đã gỡ.

Vì sao giới hạn WinBox cũ vẫn có thể để lọt việc dò mật khẩu?

Giới hạn trong bộ tạo cấu hình router là dst-limit=10/1m,20,src-address/1m, giữ IP vượt ngưỡng trong Winbox_RateLimited 5 phút. Đây là giới hạn gói tin thuộc kết nối mới theo từng IP, không phải số mật khẩu sai. Một nguồn thử chậm hoặc nhiều nguồn luân phiên có thể không vượt ngưỡng. Kết nối đã thiết lập và lưu lượng từ BridgeLAN được cho phép trước bộ giới hạn trong cấu hình tạo mới.

Router đang chạy cũng có thể dùng cấu hình cũ, chỉ có rule accept WinBox từ WAN và chưa có ba rule rate limit. Cài/cập nhật gói cảnh báo phiên bản cũ không tự cập nhật firewall của bộ tạo cấu hình. Cần kiểm tra cấu hình thực tế, không suy ra rằng mã trong repo đã được nạp lên router:

/ip firewall filter print detail where chain=input
/ip firewall filter print stats where chain=input
/interface list member print where list=WAN
/ip service print where name=winbox
/ip firewall address-list print where list=Winbox_RateLimited

Đối chiếu cổng, interface WAN, thứ tự accept/drop, bộ đếm và thời điểm thêm rule với thời điểm log. Log trước khi thêm rule không chứng minh rule hiện tại đang để lọt. Xem MikroTik firewall matchers.

3. Cấu hình phát hiện loop mạng

network-alert-lan-security chỉ báo loop Layer 2 khi có bằng chứng từ RouterOS:

Ưu tiên dùng protocol-mode=rstp trên bridge. Kiểm tra:

/interface bridge print detail

Cấu hình mới từ bộ tạo đã bật Loop Protect trên tất cả cổng LAN được chọn, với chu kỳ dò 5s và thời gian ngắt 5m; vẫn giữ RSTP. Installer cảnh báo không tự thay đổi cổng. Với cấu hình cũ, không tự đổi toàn bộ bridge/port từ xa nếu chưa hiểu topology. Chỉ bổ sung Loop Protect trên cổng LAN vật lý đã xác định:

/interface ethernet set ether2 loop-protect=on loop-protect-disable-time=5m

Khi bổ sung từ xa cho router đang chạy, không bật trên WAN, đường quản trị duy nhất hoặc toàn bộ port chưa xác định. Loop Protect ngắt toàn bộ cổng khi phát hiện loop; thiết bị phía sau mất kết nối qua đường đó trong thời gian chặn.

4. Tạo DHCP Alert

Chỉ dùng trên interface LAN đang chạy DHCP Server hoặc dùng IP tĩnh. Không bật trên interface đang chạy DHCP Client.

Vào IP → DHCP Server → Alerts → +:

:global netAlertDhcpInterface $interface; :global netAlertDhcpAddress $address; :global netAlertDhcpMac $"mac-address"; /system script run network-alert-lan-dhcp

Giữ Disabled lúc đầu. DHCP Alert là tính năng RouterOS có sẵn; nó gửi DHCP Discover mỗi phút để tìm server lạ. Xem MikroTik DHCP Alerts.

5. Chất lượng WAN và device-mode

Trên RouterOS 7 hỗ trợ, nhóm WAN dùng /ping interface=... as-value để đo packet loss và tính RTT trung bình từ các gói trả lời trên đúng PPPoE được ghi nhãn. Cú pháp riêng của v7 được nạp bằng :parse trong khối bắt lỗi để RouterOS 6 vẫn chạy được nhánh dự phòng. Trên v6 hoặc khi không lấy được RTT chi tiết, script dùng ping thường khóa cùng interface để đo loss và hiển thị RTT unavailable; không xác nhận phục hồi chất lượng khi thiếu RTT. Cả hai nhánh không cần quyền traffic-gen.

Không tự bật thêm quyền device-mode từ xa. Thay đổi device-mode cần xác nhận vật lý và có thể ảnh hưởng bảo mật.

6. Cổng WAN được giám sát

Nhóm WAN tự lấy interface nền của PPPoE và lần qua một lớp VLAN. Nếu topology khác hoặc log báo không tìm thấy Ethernet port, sửa trong Source network-alert-config:

:global netAlertWanPort1 "ether1"
:global netAlertWanPort2 "ether2"
:global netAlertWanPort3 ""
:global netAlertWanPort4 ""

Script chỉ đọc counter, không reset counter và không tắt cổng.

7. Chạy thử và bật nhóm

/system script run network-alert-router
/system script run network-alert-wan
/system script run network-alert-lan-security
/log print where message~"NET-ALERT"

Không có ERROR hoặc TELEGRAM ... FAILED thì bật nhóm cần dùng:

/system scheduler enable [find where name="network-alert-router-every-1m"]
/system scheduler enable [find where name="network-alert-wan-every-1m"]
/system scheduler enable [find where name="network-alert-lan-security-every-1m"]
/ip dhcp-server alert enable [find where on-alert~"network-alert-lan-dhcp"]

Muốn tắt nhóm LAN Security hoàn toàn phải tắt cả Scheduler và DHCP Alert; muốn bỏ các lệnh cấm WinBox đang hiệu lực thì gỡ riêng phần firewall theo hướng dẫn ở trên.

8. Ngưỡng mặc định

Sửa đầu Source network-alert-config nếu cần:

9. Tải và tính khả thi

Ba nhóm dùng ba Scheduler vì vẫn cần bật/tắt độc lập. Gom tiếp thành một Scheduler sẽ giảm rất ít tải nhưng mất khả năng tách nhóm.

Sau khi bật, theo dõi 24 giờ:

/system resource print
/system script job print
/log print where message~"NET-ALERT"

Kiểm tra thực tế trên đúng RouterOS và model router vẫn bắt buộc trước khi dùng chính thức.

↑↓ chọn · Enter mở · Esc đóng