Перейти к основному содержанию
Главная
опять двадцать пять
из пустого в порожнее

Основная навигация

  • Главная
  • Заметки на полях
  • Юмор приколы и прочее
  • Хлам
  • Хитрости жизни
Меню учётной записи пользователя
  • Войти

Строка навигации

  1. Главная
  2. Заметки на полях
  3. Mikrotik и routerOS

Нужные мелочи

экспорт конфигурации в текстовый файл "file.rsc":

export file=file.rsc

подсветка синтаксиса скрипта с именем "noip" в терминале:  

/system script print from=noip

отправка смс с usb модема подключенного к mikrotik:

/tool sms send usb2 "номер" message="text"

запретим пользователям использовать свои IP адреса

В WinBox, в DHCP ставим галочку "add arp for leases"
на интерфейсе ARP: выбираем "reply-only"

со статикой сосут лапу! 
 

хотя с PPPOE не срабатывает.

 

Задача - ограничить использование wireless сети mikrotik-а только определенным устройствам на основе их аппаратных адресов.

Заносим в аксес лист интерфейса устройство с определенным адресом

interface wireless access-list add interface=wlan1 mac-address=00:11:22:33:44:55 comment="my pc"

В настройках беспроводной сети снимаем Default Authenticate

interface wireless set 0 default-authentication=no disabled=no

P.S. Можно и через ARP сделать с привязкой IP+MAC

Определяем в сети роутеры

Все IP адреса, которые сидят за роутерами автоматом попадут в адрес лист routers, что делать дальше - на Ваше усмотрение.

ip firewall mangle add action=add-src-to-address-list chain=prerouting in-interface=ether01 ttl=equal:63 address-list=routers

ip firewall mangle add action=add-src-to-address-list chain=prerouting in-interface=ether01 ttl=equal:127 address-list=routers

Спрятать сеть от фильтров TTL провайдера

Иногда полезно. Правило поднимаем в самый верх

ip firewall mangle add action=change-ttl chain=prerouting new-ttl=increment:1 passthrough=yes

Блокируем порты спамеров

Блокируем порты в фильтрах

ip firewall filter add chain=forward port=t dst-port=25 src-address-list=spamm action=drop

Добавляем в адрес лист спамеров на 30 дней

ip firewall filter add chain=forward protocol=tcp dst-port=25 connection-limit=30,32 limit=50,5 src-address-list=!spamm action=add-src-to-address-list address-list-timeout=30d

Fail2Ban для Mikrotik

Взято с официального сайта

Динамически банит адрес на 1 час.

ip firewall filter

add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \
comment="drop ssh brute forcers" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist \
address-list-timeout=1h comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 \
address-list-timeout=20s comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 \
action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=20s comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list \
address-list=ssh_stage1 address-list-timeout=20s comment="" disabled=no

Перезагрузка по расписанию

Я делаю дабы перерегистрировать 4G модем в сети оператора, так как практика показывает, модем после длительной работы ни с того ни с сего переходит в 3G сеть, и как следствие ухудшается связь.

/system script add name=reboot policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source="/system reboot"

/system scheduler add interval=1d name=reboot24h on-event=reboot policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-date=jun/24/2014 start-time=08:00:00

каждый день, в 08:00 маршрутизатор перегрузится сам

Watchdog

Данная служба в роутерах Mikrotik реализована аппаратно. Полезна в том случае, если зависает сам роутер

system watchdog set no-ping-delay=10m watch-address=8.8.8.8

Пингуем адрес dns googl-а каждые 10 минут, в случае отсутствия пинга - перегружаем устройство.

Если в поле watch-address будет none, то Watchdog будет опрашивать ядро системы и в случае зависания RouterOs перезагрузит систему.

system watchdog set no-ping-delay=10m watch-address=none

Netwatch

Отличие Netwatch от Watchdog в том, что первая позволяет делать произвольные действия с помощью встроенного скриптового языка. Кроме того, скриптов может быть несколько и netwatch позволяет контролировать не только падение, но и поднятие определенного адреса (up-script).

Пример скрипта, который при отсутствии связи до 8.8.8.8 дергает внешний интерфейс с 10 секундной паузой. Проверка доступности гугл адреса производится каждые 5 минут.

/tool netwatch
add down-script="/interface ethernet set ether01 disabled=yes\r\
\ndelay 10\r\
\n/interface ethernet set ether01 disabled=no" host=8.8.8.8 interval=5m \
timeout=9s

 

Запрет посещения определенного сайта одной строкой.

/ip firewall filter add action=drop chain=forward content="Host: odnoklassniki.ru" protocol=tcp src-address=192.168.100.254 out-interface=eth01

При таком подходе режется только один исходящий пакет, а как следствие, никаких входящих пакетов нет и их не надо блокировать. Можно так же изменить правило так, чтобы локальные IP, с которых заходили на определенные сайты, заносились в адрес-лист.

Более правильное решение, помогающее позволить беспроблемно заходить на сайты, имеющие на своей странице какие-то встроенные инструменты комментирования с данного сайта на блокированный ресурс. Итак, чтобы проблем не было, блокируем правильно:

/ip firewall filter add chain=forward protocol=tcp content=odnoklassniki.ru src-address=192.168.100.254 action=reject reject-with=tcp-reset

Блокировка социальных серей через L7

 

ip firewall layer7-protocol add name=social regexp="^.+(vk.com|vkontakte|ok.ru|odnoklassniki|odnoklasniki|facebook|youtube|loveplanet).*\$"

ip firewall filter add action=drop chain=forward comment="Block_social" layer7-protocol=social src-address-list=Block_social

Смена MAC адреса интерфейса Mikrotik

в терминале вводим

/interface ethernet set 0 mac="00:01:02:03:04:05"

где 0 - номер интерфейсного порта маршрутизатора

PPtP, L2TP Dual Access

Если у Вас Dual Access и наблюдается периодические обрывы на интерфейсе, то необходимо:

/ip route rule add action=lookup dst-address=10.10.10.10/32 table=vpn
/ip route add distance=1 dst-address=10.10.10.10/32 gateway=10.10.10.254 routing-mark=vpn
/ip route add distance=1 dst-address=0.0.0.0/0 gateway= 10.10.10.254

Add Default Route - в положение "ВЫКЛ"

10.10.10.10 - адрес vpn сервера
10.10.10.254 - шлюз, полученный от провайдера

Скрипт для отправки электронной почты после перезагрузки роутера с учетом синхронизации времени NTP

 

:while ( [/system ntp client get status]!="synchronized" ) do={ :delay 10s }
:delay 10s
/log info "time updated; uptime: $[/system resource get uptime]"
:local es "$[/system identity get name] rebooted on $[/system clock get date] $[/system clock get time] uptime $[/system resource get uptime]"
:delay 90s
:local eb "Log contents (with 90 seconds delay):\r\n"
:foreach le in=[/log print as-value] do={
:set eb ($eb.[:tostr [($le->"time")]]." ".[:tostr [($le->"topics")]].": ".[:tostr [($le->"message")]]."\r\n")
}

/tool e-mail send to="enter_your_email_here@example.com" subject=$es body=$eb

Бекап конфига и отправка по FTP 

{
local username "никнейм"
#ftp account
local ftphost "имя сервера"
local ftpuser "логин"
local ftppassword "пароль"
local ftppath "/pub/mikrotik"

#create full system backup files
/system backup save name="$username.backup"
:delay 30s;

#create config export files
/export compact file="$username.rsc"
:delay 30s;

# upload the system backup
:log info message="Uploading system backup"
/tool fetch address="$ftphost" src-path="$username.backup" user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$username.backup" upload=yes
:delay 30s;

# upload the config export
:log info message="Uploading config export"
/tool fetch address="$ftphost" src-path="$username.rsc" user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$username.rsc"upload=yes
:delay 30s;

# find file name $username- then remove
:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "$username"]]!="nil") do={/file remove $i}; }
:log info message="Configuration backup finished.";
}

Доступ к Web серверу находящемуся во внутренней сети по внешнему IP, более подробно >>тут<<

 

Дадим доступ к Web серверу из внешней сети:

  /ip firewall nat add chain=dstnat dst-address=77.34.128.80 protocol=tcp dst-port=80 action=dst-nat to-address=192.168.1.100 to-ports=80

обращаю внимание, что тут мы указываем внешний ip адресс куда приходит запрос, а не интерфейс как обычно!

и делаем маскарадинг из локальной сети к адресу Web сервера

/ip firewall nat add chain=srcnat src-address=192.168.1.0/24 dst-address=192.168.1.100 protocol=tcp dst-port=80 out-interface=bridge-Internal action=masquerade

вот и все :)

При динамическом внешнем IP

in-interface=интерфейс dst-address-type=local

/ip firewall nat
add action=dst-nat chain=dstnat comment="Nxt API portmap" dst-port=7876 in-interface=ether1 protocol=tcp to-addresses=192.168.1.150
add action=dst-nat chain=dstnat comment="Nxt API portmap local" dst-address-type=local dst-port=7876 in-interface=brg_home_all protocol=tcp to-addresses=192.168.1.150
add action=masquerade chain=srcnat comment="Nxt API portmap local masq" dst-address=192.168.1.150 dst-port=7876 protocol=tcp src-address=192.168.1.0/24

Как автоматически передать и выполнить скрипт с одного роутера на другой?

 

Для этого в планировщике первого роутера выполняем скрипт

/tool fetch mode=ftp upload=yes address=10.0.0.1 port=2121 user=admin password=admin ascii=yes src-path=1.txt dst-path=1.auto.rsc

где по фтп передается файл 1.txt, в котором содержится сценарий для второго микротика, и в процесе передачи переименовывается в 1.auto.rsc. Как только файл с раширением .auto.rsc попадет на второй микротик, он тут же выполнится. 

Как удалить лог

с начала установим размер лога 1 строка, затем размер лога 1000 строк (максимум размер лога 65535 строк)

/system logging action
set memory memory-lines=1
/system logging action
set memory memory-lines=1000

Как организовать работу нескольких web-серверов за микротиком? (где-то нарыл, сам не проверял!)

 

/ip proxy 
set enabled=yes max-cache-size=none 
/ip dns static 
add address="вебсервер1" name=www.porno.com 
add address="вебсервер2" name=www.cisco.com 
/ip firewall nat 
add action=redirect chain=dstnat dst-address="публичный айпи" dst-port=80 \ 
    protocol=tcp to-ports=8080

Прокси защитить снаружи. 

еще одно решение

У нас есть один внешний IP, за которым мы хотим поместить несколько WEB-серверов(в данном случае 3, с 3 разными доменами на них):

123.com@192.168.0.2
 abc.com@192.168.0.3
 456.com@192.168.0.4

   Настраиваем наш прокси-сервер:

/ip web-proxy
set enabled=yes src-address=0.0.0.0 port=8080 hostname="your.proxy" \
transparent-proxy=yes parent-proxy=0.0.0.0:0 \
cache-administrator="webmaster" max-object-size=4096KiB cache-drive=system \
max-cache-size=unlimited max-ram-cache-size=unlimited
/ip web-proxy access
add dst-port=23-25 action=deny comment="block telnet & spam e-mail relaying" \
disabled=no
add dst-port=80 action=allow comment="Enable Http Connection" disabled=no

  Настраиваем статические ДНС записи:

/ip dns static add name=123.com address=192.168.0.2
/ip dns static add name=abc.com address=192.168.0.3
/ip dns static add name=456.com address=192.168.0.4
/ip dns static add name=www.123.com address=192.168.0.2
/ip dns static add name=www.abc.com address=192.168.0.3
/ip dns static add name=www.456.com address=192.168.0.4 

  Конфигурируем NAT для перенаправления на наш веб-прокси:

 /ip firewall nat
add chain=dstnat in-interface=outside dst-address=xxx.xxx.xxx.xxx protocol=tcp \
dst-port=80 action=redirect to-ports=8080 comment="" disabled=no 

  Трафик для 123.com будет выглядеть так:

 Интернет -> xxx.xxx.xxx.xxx:80 ---> xxx.xxx.xxx.xxx:8080 -> 192.168.0.2:80 

  Веб-прокси будет перенаправлять трафик 123.com на внутренний адрес IP-192.168.0.2.

  Не забываем оставить доступ к нашему прокси-серверу по определенным URL(нашим легитимным) в противном случае наш маршрутизатор может быть использован для перенаправления трафика на сайты за пределами сети:

/ip proxy access
add dst-port=80 dst-host="123.com" action=allow disabled=no
add dst-port=80 dst-host="abc.com" action=allow disabled=no
add dst-port=80 dst-host="456.com" action=allow disabled=no
add action=deny disabled=no 

 

Порты объединены в бридж. В арп таблице маки показываются на интерфейсе бридж.
Есть ли возможность в просмотреть с какого порта роутер услышал мак?

/interface bridge host print

Или в меню слева "Bridge" закладка "Hosts".

Как сделать чтоб SSID микротика постоянно был на первом месте в списке сетей?

В поле SSID перед именем сети поставить пробел. На версии 5.x это можно сделать только через терминал. Так же при экспорте конфигурации пробел пропадает.

Как вывести в лог скриптом сообщение другого цвета?

 

BLACK 
log info "blah blah this log is in black" 
BLUE 
log warning "blah blah this log is in blue" 
RED 
log error "blah blah this log is in red" 

Как подключить юзера по vpn с доступом в локальную подсеть, при условии, что он находиться в той же подсети?

 

1) Включаем vpn сервер, добавляем юзера, ip vpn сервера из той же сети, что и Ether2-master-local, в моем случае Ether2-master-local = 192.168.1.1; vpn server=192.168.1.30 vpn client=192.168.1.35 Все остальные настройки vpn оставлены по умолчаниям, как в микротике так и в винде, если vpn клиенту не нужен интернет с тика, то в свойствах подключания vpn галочку использования основного шлюза в удаленной сети снимаем. 
2) На интерфейсе Ether2-master-local переключаем ARP из положения enable в proxy. 
3) Подключаемся извне к тику по vpn, соединение устанавливается. 
4) Теперь с любого хоста в локалке за тиком из сети 192.168.1.0/24 можем пинговать ip подключенного клиента vpn - 192.168.1.35 
5) Так же, с удаленного клиента 192.168.1.35 можем пинговать любой хост в локальной сети, например 192.168.1.7 обмен пингами теперь двусторонний.

Самое главное удалось этого добиться без mangle, статических роутов на тике и на клиенте, без адрес листов. Теперь все работает как и положено.

Как при резервировании канала, при переключении сбрасывать установленные UDP-соединения?

:foreach i in=[/ip firewall connection find dst-address~":2227" protocol~"udp"] do={ /ip firewall connection remove $i }

При ненадобности номер порта можно и не упоминать.

Как пустить отдельную машину только через одного определенного провайдера не использую прероутинг?

 

/ip route add gateway=1.1.1.1 routing-mark=markName 
/ip route rule add src-address=192.168.0.12 action=lookup-only-in-table table=markNmae

Где утилита Winbox хранит свои настройки?

 

Windows XP - C:\Documents and Settings\%USER%\Application Data\Mikrotik\
Windows 7 - C:\Users\%USER%\AppData\Roaming\Mikrotik\ 

Как сделать обработку ошибок в скрипте?

 

:do {
:resolve domena.net
} on-error={
/log warning ("Error")
}

Как вызвать доп-процедуру с переменной?

 

[admin@MikroTik] > :global fun do={:put "YES!!!"}
[admin@MikroTik] > $fun 
YES!!!

Как скриптом завершить работающий скрипт?

/system script job remove $id

Есть /ip dhcp-server lease статические записи, нужно выбрать по host-name все записи у которых встречается "pak"?

/ip dhcp-server lease print where !dynamic and host-name~"pak" 

Как отключить ненужные записи в лог?

В System - logging и в основном правиле инфо добавляем две строки исключающие ненужные записи(правило со знаком "!")

Включение компьютера по сети (Wake-on-Lan)

tool wol interface=bridge-Internal mac=ff:ff:ff:ff:ff:ff

Скрытие Mikrotik в сети (не будет автоматом отображаться в winbox)

/ip neighbor discovery set ether8 discover=no

Тулза позволяющая подключиться к ненастроенному Mikrotik'у по MAC

/tool mac-server

Режем ростелекомовский multicast switch chip'ом 

Multicast приходит на ether1. В данном примере multicast не будет транслироваться по wi-fi. Если необходимо зарезать на входе, то new-dst-port=eher1.

/interface ethernet switch rule
add dst-address=239.0.0.0/8 dst-port=2020 new-dst-ports=ether2,ether3,ether4,ether5
    ports=ether1 protocol=udp switch=switch1

Спрашиваем пользователя в командной строке Mikrotik и обрабатываем его ответ

Возникла необходимость при выполнении скрипта через консоль (import file=) спросить пользователя, хочет он это делать или нет, например: "Install Extra Domain (Block Skype, Hotmain, Dr. Watson and/or Error Reporting) (Y\N) ? : " и пользователю нужно нажать нужную кнопку.
Полазив по wiki, я не нашёл как такое реализовать.

  Было предложено решение:

:put [terminal inkey ]

  И пример использования:

:put "Install Extra Domain (Block Skype, Hotmain, Dr. Watson and/or Error Reporting) (Y\\N):"
:local key [:terminal inkey]

  Сначала выводится вопрос в терминал и ожидание ввода клавиши. После нажатия клавиши Y или N сохраняется её ASCII представление в переменную key. И конструкцией if ($key = 121) do={} выполняется определенное действие в зависимости от нажатой клавиши.

 

Навигация по книге

  • Arduino
  • Bios
  • Drupal + PHP + ...
  • Mikrotik и routerOS
    • CapsMan
    • DUDE database - восстановление (удаление истории)
    • Failover с более глубоким анализом
    • Port knoking over icmp
    • Proxy на mikrotik и блокировка определенных url
    • StopAD Сделаем рекламы чуть меньше
    • VPN Тест скорости передачи данных
    • WiFi, затухание в различных материалах
    • mtpass - вспоминаем пароль микротика
    • Анализ частотного спектра в MikroTik
    • Доки по mikrotik на русском языке
    • Защита роутера
    • Интересные скрипты
    • Исследование переменных Mikrotik. Скрипт обновления Dynamic DNS записей FreeDNS.afraid.org
    • Как «прикрутить» бота Telegram к Mikrotik
    • Локальная DNS зона при VPN соединении с удаленным офисом
    • Мелодии на mikrotik
    • Несколько провайдеров с одинаковым ip адресом шлюза
    • Нужные мелочи
    • Передача статических маршрутов через DHCP
    • Привязка клиента по мак к порту объединенному в бридж
    • Создание сертификатов средствами Mikrotik для SSTP
    • Типичные проблемы и их решение
    • Фильтрация в бридже
    • Шейпер по типу трафика
    • Штампы протокола L7
    • Юникод в SSID ( Смайлики в названии wifi сетей)
  • TV + IPTV
  • Базы данных
  • Браузеры
  • Вебинары (webinars)
  • Железо (hardware)
  • Интересные адреса в интернете
  • Общеизвестные порты
  • Операционная система Linux
  • Операционная система Windows
  • Перенос VipNet на другой компьютер
  • Программное обеспечение (Soft)
  • Уязвимости
Папа сказал...
я знаю короткую дорогу
если я его залью ...
я хочу родить ребенка ...
У меня болит голова ...
для разблокировки, хлопните дверкой холодильника
Хватит бухать, я твой кот
как хорошо ничего не делать, а потом отдохнуть
Назад Пауза Вперёд
1 из 8
RSS-лента