Найпростіший скрипт для налаштування роутера Mikrotik
Замучився я налаштовувати мікроти через княпочки.
Тому сів і деньок поекспериментував, вивчаючи скриптову мову RouterOS. Розібрався, звісно, на рівні початківця, тому що розділ «Mangle» у файрволі я так і не встиг освоїти.
Що робить скрипт?
Налаштовує скинутий «в нуль» мікротік для роботи.
DHCP я спеціально не став піднімати. Але то не складно. Хоч руцями через меню налаштування пулу та DHCP, хоч через швидкі налаштування.
В принципі, все записано в тілі самого скрипта у вигляді коментарів.
ОБОВ’ЯЗКОВО! Після застосування цього скрипта слід встановити пароль адміністратора!
Скрипт з коментарями та мануалом
# #######################################################################################
# Перед завантаженням цього файлу на виконання перечитайте його повністю (особливо коментарі) і, якщо
# потрібно внесіть необхідні зміни
# #######################################################################################
#
# DHCP ТУТ НЕ НАЛАШТОВУЄТЬСЯ. РОБІТЬ ВРУЧНУ!
# БО Я НЕ ЗНАЮ, ЯКИЙ У ВАС БУДЕ ПУЛ АДРЕС
#
# Скинемо роутер в нульові налаштування:
#
# System / Reset configuration
# обов’язково встановіть галочку No Default Configuration
# можна встановити Do Not Backup
#
# Тиснемо Reset Configuration
#
# Роутер перезавантажиться. Заходимо знову та, відкривши термінал, копіюємо туди текст цього файлу.
#
#
# ВСЕ ІНШЕ В ТЕРМІНАЛІ ЗРОБИТЬСЯ САМЕ :) :
#
# назвем перший, вхідний роз’єм як ISP1 (Internet Service Provider 1)
/interface ethernet
set ether1 name=ISP1
#
#створимо bridge
/interface bridge
add name=bridge1 fast-forward=yes comment="bridge1"
#
#додамо порти до bridge1 (крім ISP1), кожен окремо
#
# #######################################################################################
# перед завантаженням цього файлу на виконання налаштуйте свій список портів, бо може бути не такий!
# #######################################################################################
#
/interface bridge port
add bridge=bridge1 interface=ether2
add bridge=bridge1 interface=ether3
add bridge=bridge1 interface=ether4
add bridge=bridge1 interface=ether5
add bridge=bridge1 interface=ether6
add bridge=bridge1 interface=ether7
add bridge=bridge1 interface=ether8
add bridge=bridge1 interface=sfp9
add bridge=bridge1 interface=sfp10
add bridge=bridge1 interface=sfp11
add bridge=bridge1 interface=sfp12
#
#налаштуємо IP на бриджі (якщо не влаштовує 192.168.1.1/24 - поставте свій)
/ip address
add address=192.168.1.1/24 interface=bridge1
#
#налаштуєм інтернет від провайдера
/ip dhcp-client
add interface=ISP1 default-route-distance=1 add-default-route=yes use-peer-dns=yes use-peer-ntp=yes disabled=no
/ip dns
set allow-remote-requests=yes
#
#вимкнем налаштування мікротіка за всіма службами, крім winbox та web
/ip service
disable api
disable api-ssl
disable ftp
disable ssh
disable telnet
#при цьому змінимо порт доступу до вебморди на 8083
set www port=8083
#
#налаштуємо фільтрацію у файрволі
/ip firewall filter
add action=accept chain=input comment="accept establish & related" connection-state=established,related
add action=accept chain=forward comment="accept forward establish & related" connection-state=established,related
add action=drop chain=input comment="drop invalid input" connection-state=invalid
add action=drop chain=forward comment="drop invalid forward" connection-state=invalid
add action=accept chain=input comment="accept ICMP (ping)" protocol=icmp
add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1 connection-nat-state=!dstnat connection-state=new in-interface=ISP1
add action=accept chain=forward comment="accept established,related" connection-state=established,related
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ISP1
add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1 out-interface=ISP1 protocol=tcp
add action=accept chain=forward comment="accept dns from lan" dst-port=53 in-interface=bridge1 out-interface=ISP1 protocol=udp
add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1 out-interface=ISP1
#
#прокинемо NAT для доступу користувачів у інтернет
/ip firewall nat
add chain=srcnat out-interface=ISP1 action=masquerade comment="connect to internet from LAN"
#прокинемо NAT для доступу з інтернет до вебморди мікротіка
add action=dst-nat chain=dstnat dst-port=8083 in-interface=ISP1 protocol=tcp to-ports=8083 comment="translate port 8083 dst-nat action"
#
#позбавимось dns-флуду відразу двома способами
/ip firewall filter
add chain=input protocol=udp dst-port=53 in-interface=ISP1 action=drop comment="drop dns flood"
/ip firewall raw
add action=add-src-to-address-list chain=prerouting protocol=udp dst-port=53 in-interface=ISP1 address-list=dns-flood address-list-timeout=99d comment="preroute to disable dns flood from ISP1"
#
#зразу ж заріжемо флудилку з 0.0.0.0
/ip firewall address-list
add list=dns-flood address=0.0.0.0 comment="blocking dns flood from 0.0.0.0"
#
#створимо “чорний список” для блокування вручну, щоб можна було додавати IP через IP / Firewall / Address list / +
/ip firewall raw
add chain=prerouting src-address-list=blacklist action=drop comment="drop IP from blacklist"
#
# ####################################################
# НЕ ЗАБУДЬТЕ ВСТАНОВИТИ КРЄПКИЙ ПАРОЛЬ АДМІНІСТРАТОРУ!!!
# ####################################################
#
# ВСЕ!
Той же скрипт без коментарів
/interface ethernet
set ether1 name=ISP1
/interface bridge
add name=bridge1 fast-forward=yes comment="bridge1"
# ==================================================
/interface bridge port
add bridge=bridge1 interface=ether2
add bridge=bridge1 interface=ether3
add bridge=bridge1 interface=ether4
add bridge=bridge1 interface=ether5
add bridge=bridge1 interface=ether6
add bridge=bridge1 interface=ether7
add bridge=bridge1 interface=ether8
add bridge=bridge1 interface=sfp9
add bridge=bridge1 interface=sfp10
add bridge=bridge1 interface=sfp11
add bridge=bridge1 interface=sfp12
# ==================================================
/ip address
add address=192.168.1.1/24 interface=bridge1
# ==================================================
/ip dhcp-client
add interface=ISP1 default-route-distance=1 add-default-route=yes use-peer-dns=yes use-peer-ntp=yes disabled=no
/ip dns
set allow-remote-requests=yes
#
/ip service
disable api
disable api-ssl
disable ftp
disable ssh
disable telnet
set www port=8083
#
/ip firewall filter
add action=accept chain=input comment="accept establish & related" connection-state=established,related
add action=accept chain=forward comment="accept forward establish & related" connection-state=established,related
add action=drop chain=input comment="drop invalid input" connection-state=invalid
add action=drop chain=forward comment="drop invalid forward" connection-state=invalid
add action=accept chain=input comment="accept ICMP (ping)" protocol=icmp
add action=drop chain=input comment="drop all not from lan" in-interface=!bridge1 connection-nat-state=!dstnat connection-state=new in-interface=ISP1
add action=accept chain=forward comment="accept established,related" connection-state=established,related
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN to LAN" connection-nat-state=!dstnat connection-state=new in-interface=ISP1
add action=accept chain=forward comment="accept http & https from LAN" dst-port=80,443 in-interface=bridge1 out-interface=ISP1 protocol=tcp
add action=accept chain=forward comment="accept dns from lan" dst-port=53 in-interface=bridge1 out-interface=ISP1 protocol=udp
add action=drop chain=forward comment="drop all from LAN to WAN" in-interface=bridge1 out-interface=ISP1
/ip firewall nat
add chain=srcnat out-interface=ISP1 action=masquerade comment="connect to internet from LAN"
add action=dst-nat chain=dstnat dst-port=8083 in-interface=ISP1 protocol=tcp to-ports=8083 comment="translate port 8083 dst-nat action"
/ip firewall filter
add chain=input protocol=udp dst-port=53 in-interface=ISP1 action=drop comment="drop dns flood"
/ip firewall raw
add action=add-src-to-address-list chain=prerouting protocol=udp dst-port=53 in-interface=ISP1 address-list=dns-flood address-list-timeout=99d comment="preroute to disable dns flood from ISP1"
/ip firewall address-list
add list=dns-flood address=0.0.0.0 comment="blocking dns flood from 0.0.0.0"
/ip firewall raw
add chain=prerouting src-address-list=blacklist action=drop comment="drop IP from blacklist"