[ Tổng hợp ] Một số script hay / hữu dụng dành cho Mikrotik Router (RouterOS)

Chào các bạn,

Trong bài viết này, thật ra gọi là bài tổng hợp đi. Mình sẽ tổng hợp lại một số đoạn mã (script) hay ho dành cho Mikrotik Router (RouterOS). Vì đây không phải bài giới thiệu hay khoe Mikrotik Router nên mình sẽ chỉ nói qua về Mikrotik Router một chút thôi nhé.

p/s: các đoạn mã này không phải mình viết, mà mình đi sưu tầm về sau đó có hướng dẫn anh em bằng tiếng dễ hiểu hơn tiếng anh. Nếu các bạn ngại đi mò mẫm thì cứ vào đây vác về là dùng thôi nhé.

A/ Giới thiệu về Mikrotik

Mikrotik là tên của một nhà sản xuất thiết bị mạng máy tính ở Latvian, công ty được thành lập vào năm 1995. Sản phẩm chính của công ty là một hệ điều hành dựa trên lõi linux và họ đặt tên là Mikrotik RouterOS, RouterOS được cài đặt trên phân cứng độc quyền của công ty (routerboard), hoặc trên các máy tính bình thường, biến chiếc máy tính đó thành router.

Vì bài này không dành cho các tay mơ hoặc người không chuyên nên mình sẽ không nói sâu nữa vì đau đầu và mệt não lắm :D. Anh em thích tìm hiểu tiếp về Mikrotik thì cứ lên đây => https://mikrotik.com/

B/ Cấu hình Mikrotik Router

Để cấu hình, thêm bớt cái này cái kia cho Mikrotik Router thì chúng ta có 03 cách.

  1. Dùng winbox (tải ở đây), trong bài viết này mình sẽ hướng dẫn trực tiếp bằng winbox nhé.
  2. Dùng giao diện web
  3. Dùng qua dòng lệnh ssh/telnet

C/ Các script hay ho dành cho Mikrotik Router.

RouterOS là một hệ điều hành, nên việc bạn có thể tùy biến, thêm các script (đoạn mã) nhỏ hữu dụng giúp công việc của bạn trở nên nhẹ nhàng hơn là điều hết sức bình thường giống như việc bạn mở Google Calendar ra và đặt 25/9/2020 lúc 10h sáng nhắc bạn trưa nay đi uống cafe vậy.

RouterOS sẽ thông báo cho bạn khi một tác vụ được chạy xong qua 02 cách:

  1. Gửi qua email.
  2. Gửi qua tin nhắn Telegram.

Trước tiên các bạn cần cấu hình máy chủ gửi email cho Mikrotik đã nhé. Mình hướng dẫn anh em luôn.

Bước 1: Sau khi tải winbox ở bước trên, các bạn mở giao diện winbox lên và tiến hành đăng nhập vào Mikrotik router. Mikrotik router có nhiều cách đăng nhập khác nhau, bạn có thể đăng nhập qua IP, qua Mac của thiết bị hoặc qua Cloud đi kèm mỗi thiết bị.
Khi khởi động lên thì Winbox sẽ tự động tìm thiết bị Mikrotik router bạn sử dụng sau đó các thông tin như:
Connect to: Mikrotik sẽ tự điền hộ bạn
Login: username bạn đặt
Password: password bạn chọn

Sau khi bạn điền đủ thông tin thì ấn “connect” nhé, nếu đúng thì qua được bước sau. Còn nếu sai thì chịu với bạn luôn á.

Bước 2: Sau khi đăng nhập thành công, các bạn vào “Tools” => “Email” để tiến hành cấu hình máy chủ email nhé. Cấu hình làm gì? Để mỗi khi Mikrotik Router nó thực hiện xong tác vụ được yêu cầu nó sẽ báo cho bạn chứ còn gì nữa.

Trong bảng Email Settings sẽ có các thông số các bạn cần phải điền như sau:
Server: địa chỉ máy chủ gửi mail
Port: 25, 465, hoặc 587 tùy
Start TLS: các bạn chọn YES hoặc NO tùy vào nhà cung cấp dịch vụ
From: gửi từ địa chỉ nào
User: nhà cung cấp dịch vụ sẽ đưa cho bạn
Password: nhà cung cấp dịch vụ sẽ đưa cho bạn

Hiện nay có rất nhiều các dịch vụ cung cấp email miễn phí, các bạn có thể sử dụng như (Sendgrid, Mailgun, Elastic Email). Hoặc đơn giản chỉ là nhu cầu cá nhân thì bạn có thể sử dụng ngay dịch vụ của google trên chính địa chỉ gmail các bạn đang sử dụng á. Còn làm như nào thì anh em google giúp nhé, nhiều bài hướng dẫn lắm.

C1/ Script giúp bạn tự động sao lưu cấu hình Mikrotik Router và tự động cập nhật phiên bản mới mỗi khi có.

Bước 1: Các bạn làm tuần tự theo hình vẽ nhé, mình đã đánh số rất là trực quan rồi.
Bảng Script thì các bạn có thể đặt tên gì tùy thích. Ko nhất thiết phải đặt giống mình đâu.
Phần 4 là phần script các bạn vào url này copy nhé => https://raw.githubusercontent.com/beeyev/Mikrotik-RouterOS-automatic-backup-and-update/master/BackupAndUpdate.rsc

Chỉ lưu ý rằng khi copy các bạn nên sử 1 dòng trước khi vứt vào phần số 4 trong hình minh họa đó là:

:local emailAddress "yourmail@example.com"; => Các bạn chỉnh yourmail thành địa chỉ hòm thư của các bạn nhé. Làm xong các bạn ấn OKE (số 5) để qua bước tiếp theo.

Bước 2: Để tiến hành lên lịch chạy sao lưu cấu hình tự động các bạn cần vào tiếp System (1) => Scheduler (2) => add (3)
Tiếp theo bảng Schedule hiện ra các bạn cần làm các việc sau:
Name: Đặt là gì tùy bạn
Start Date: mặc định nó chọn giúp rồi
Start Time: Bắt đầu lúc mấy giờ.
Interval: Bao nhiêu lâu chạy lại một lần, như mình đang để 12 tiếng nó sẽ chạy backup một lần.
Phần số 5: các bạn copy đoạn script này vào => /system script run BackupAndUpdate;
Phần số 6: ấn oke thôi chứ có gì mà khó.

Vậy là xong phần cấu hình tự động backup và update phiên bản routeros mới khi có rồi á. Chúc bạn thành công.
P/s: bản backup sẽ được gửi về hòm thư nhé mọi người. Ảnh minh họa ở dưới.

C2/ Script tự động đổi DNS và thông báo qua telegram

Nếu bạn đang dùng DNS cá nhân, bạn gắn DNS cá nhân này lên router mạng ở nhà và không may DNS cá nhân này bị sự cố không truy cập được thì mạng ở nhà bạn sẽ tèo à? Vậy làm cách nào bây giờ?
Đơn giản thôi, đoạn script dưới đây sẽ giúp bạn tự động kiểm tra DNS cá nhân của bạn nếu nó không may gặp sự cố thì nó sẽ đổi DNS cá nhân của bạn qua DNS của google và khi DNS cá nhân của bạn truy cập lại được thì nó sẽ lại đổi DNS google về DNS cá nhân của bạn. ĐƠn giản không :D.

Cuộc sống thật là đơn giản nhỉ?
Để tiến hành báo tự động qua telegram thì bạn cần tạo bot telegram, cần thêm một group chát nữa (group chát này chỉ có bạn với con bot bạn vừa tạo thôi). Cái này các bạn google thôi đơn giản nhỉ,

Bước 1: Các bạn vào system (1) => Scheduler (2) => add (3)
Sau khi bảng Schedule hiện ra, các bạn đặt các thông số sau:
Name: Đặt là gì tùy các bạn.
Start Date
: hệ thống tùy chọn cho bạn rồi
Start Time
: hệ thống tùy chọn hoặc tùy các bạn chọn
Interval
: mấy giây kiểm tra một lần? Như mình đang để là 1 phút kiểm tra một lần
Số 5:
Đoạn script để kiểm tra, các bạn copy ở dưới nhé
Số 6:
Ấn oke để bắt đầu thôi

:local telegramBotKey "YOUR_BOT_ID"
:local chatID "YOUR_CHAT_CHANNEL_ID"

:local currentDNS [/ip dns get server]
:local piholeDNS "YOUR_DNS"
:local backupDNS "8.8.8.8,1.1.1.1"
:local testDomain "www.google.com"

:if ($currentDNS = $piholeDNS) do={
    :do {
        :resolve $testDomain server $piholeDNS
    } on-error={
        /ip dns set servers=$backupDNS
        /ip dhcp-server network set [find] dns-server=$backupDNS;
        /tool fetch "https://api.telegram.org/bot$telegramBotKey/sendmessage\?chat_id=$chatID&text=Pi-Hole not working! Changed DNS from $currentDNS to $backupDNS." keep-result=no
    }
} else={
    :do {
        :resolve $testDomain server $piholeDNS
        /ip dns set servers=$piholeDNS
        /ip dhcp-server network set [find] dns-server=$piholeDNS;
        /tool fetch "https://api.telegram.org/bot$telegramBotKey/sendmessage\?chat_id=$chatID&text=Pi-Hole is working again. Changed DNS from $currentDNS to $piholeDNS.&disable_web_page_preview=true" keep-result=no
    } on-error={}
}

Thành quả:
Chúc các bạn thành công.

C3/ Tự động chặn internet theo thời gian nhất định.

Câu hỏi này thì mình nhận được từ bạn “Tài”. Nói chung là có nhiều cách để chặn truy cập internet trong 1 khoảng thời gian nhất định. Dưới đây là một đoạn mã trong số rất nhiều cách làm.
Nguyên lý của đoạn mã bên dưới đó là tới thời gian bạn chọn thì hệ thống tự động “vô hiệu hóa cổng eth1”, ở đây mình ví dụ cổng “eth1” đang là cổng quay số PPPOE nhé. Còn nếu các bạn đang quay số PPPOE ở cổng 2, 3, 4 thì các bạn đổi lại cho đúng nhé.

Để gõ lệnh các bạn vào giao diện winbox => new terminal sau đó copy từ /system scheduler nhé.

// Disable ether1
/system scheduler
add comment=”DisableInternet” disabled=no interval=1d name=Disable Internet on-event=”/interface wireless disable ether1-gateway” policy=read,write,test start-date=Mar/08/2020 start-time=03:00:00

// Dòng lệnh trên có nghĩa là cứ vào 3h sáng hàng ngày, hệ thống sẽ tự động “disable / vô hiệu hóa cổng ether1”.

// Enable ether1
/system scheduler
add comment=”Enable Internet” disabled=no interval=1d name=Enable Internet on-event=”/interface wireless enable ether1-gateway” policy=read,write,test start-date=Mar/08/2020 start-time=06:00:00

//Dòng lệnh trên có nghĩa là cứ vào 6h sáng hàng ngày, hệ thống sẽ kích hoạt lại cổng ether1, cổng ether1 đang là cổng quay số PPPOE nhé các bạn.

Chúc các bạn thành công. Nếu các bạn có thắc mắc gì, đừng ngại để lại lời nhắn.
// mình sẽ tổng hợp thêm các script hay ho nữa ^^

5 3 votes
Article Rating
Subscribe
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

10 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
22/04/2021 10:40 PM

Mình muốn đặt time chặn cung cấp mạng trên mikrotik, ví dụ từ 12h đêm đến 6h sáng tắt dịch vụ thì làm ntn admin, thank ad

Reply to  Khánh
23/04/2021 10:00 AM

Thank bạn nhiều

Reply to  Khánh
23/04/2021 3:07 PM

Cảm ơn bạn nhiều, cho mình hỏi thêm là nếu có 1 cổng eth2 nữa thì mình làm 1 lệnh tương tự như cổng eth1 ah.

Reply to  Khánh
23/04/2021 3:09 PM

Cảm ơn bạn nhé

Reply to  Khánh
29/04/2021 8:49 AM

AD ơi tại C3 mình chỉ cần coppy đoạn lệnh sau đó dán vào mục New terminal là xong thôi nhỉ. Hay là phải tạo trên scheduler nhỉ. Bạn chỉ rõ cho mình cách làm dk không

10
0
Would love your thoughts, please comment.x
()
x