четверг, 22 декабря 2016 г.

Проверка статуса выгрузки на FTP в Mikrotik.

  Очень часто мы пользуемся выгрузкой на FTP-сервера через скрипты в Mikrotik. Удобно загружать бекапы или экспортные файлы на сервер, передавать файлы типа anything.auto.rsc на другие Микротики для автовыполнения. Иногда передача по фтп завешается неудачей, наша цель - отследить статус отправки. Типового механизма отслеживания корректно ли произошла отправка по фтп в RouterOS нет, но есть небольшая уловка, которой мы можем воспользоваться.
  С помощью оператора :execute мы сможем выполнить скрипт и результат обработки записать в файл, проанализировав который можно сказать удачно ли произошла отправка или нет.
  Сам скрипт:
:local logftp "ftp.log"
:local cmd "/tool fetch mode=ftp upload=yes user=\"admin\" password=\"admin\" src-path=\"11.txt\" address=\"192.168.88.254\" dst-path=\"99.txt\""
:execute file=$logftp script=$cmd
# ждем 30 секунд. Это время можно изменить проанализировав время выгрузки вашего файла
:delay 30s
:local logres [/file get [find name="$logftp.txt"] contents]
:if ($logres~"finished") do={
 :global ftpSTS "done"
/log warning "ftp upload success"
} else={:global ftpSTS "error"; /log error "ftp upload NOT success"}
  192.168.88.254 - IP нашего сервера FTP,
  admin, admin - логин и пароль.
  Проанализировав вывод оператора и найдя в нем строчку "finished" - мы считаем что файл успешно передался.

стандартный вывод успешного завершения передачи по ftp.
  Это мы и записываем в переменную ftpSTS (done) и пишем в лог. Дальше используем эту переменную по вашему усмотрению.


Используемый материал:

среда, 21 декабря 2016 г.

Чат в консоли Mikrotik.

  В консоли можно устроить чат между пользователями, которые в данный момент подключены к маршрутизатору. Если в терминал написать сообщение вида 
#privet
с экранирующим символом "#", то это сообщение будет доставлено всем подключенным пользователям в данный момент. Не имеет значение откуда сообщение отправлено - с консоли, через WinBox, ssh или telnet.


Mikrotik DISC Lite5 (RBDisc-5nD)

  Произошла утечка информации от одного из дистрибьюторов Mikrotik о новом устройстве - недорогой точке доступа DISC Lite5 (RBDisc-5nD). Устройство основано на базе LHG 5 имеет 21dBi Dual Chain антенну стандарта 802.11n, 600MHz частоту CPU, 64MB RAM, 1x 10/100Mbps Ethernet port, 64MB ПЗУ. Есть две версии: интернациональная (International: 5150 MHz-5875 MHz) и для США (USA: 5170-5250 MHz; 5725-5835 MHz). При чем блокировка по частотам уже вшита в устройство и не может быть снята, это нужно учитывать при покупке. Так же как и  LHG 5 DISC Lite5 имеет на борту RouterOS L3.

MikroTik News December 2016 (Issue #74)

четверг, 15 декабря 2016 г.

hAP ac lite tower: имидж все!

  Mikrotik представила новый "старый" роутер. Взяли hAP ac lite и поместили его в новый красивый корпус! Судите сами.

четверг, 8 декабря 2016 г.

Переносим динамический адрес-лист на другой Mikrotik.

  Обратился человек по имени Serg и попросил помочь с написанием скрипта. Суть скрипта такова, есть некий динамически список (dynamic address list) в Mikrotik - его нужно сохранить. А после перезагрузки маршрутизатора - восстановить с тем же таймаутом (address-list timeout). Проблема эта возникла из-за того, что после перезагрузки маршрутизатора динамические адрес-листы очищаются. Попутно было бы не плохо переносить эти адрес-листы на другие Микротики.
  Начнем с того, что командой экспорта динамические листы экспортировать не получиться, она сохраняет только статические листы:



  Поэтому для экспорта динамического листа можно использовать команду print. Для адрес-листа 3333 команда будет такая:

воскресенье, 4 декабря 2016 г.

Wi-Fi в Mikrotik: Настройки параметров wireless interface.

  Начинаю цикл статей про настройку Wi-Fi в Mikrotik. Так как тема довольно обширная охватить одной статьей ее не реально, поэтому будет несколько связанных публикаций, которые можно будет отфильтровать по метке "Wi-Fi". 
  В первой статье я опишу ВСЕ пункты, которые есть в настройке wlan-интерфейса в  режиме Advanced Mode. Все остальные настройки будут описаны в следующих статьях. Описание буду проводить на самом распространенном маршрутизаторе Микротик для дома и офиса - RouterBoard 951G-2HnD с версией RouterOS самой новой на время написания статьи - 6.38rc38. 
  В зависимости от модели роутера некоторые функции и настройки могут появляться или пропадать, так же это касается и версии RouterOS - это нужно учитывать при прочтении. Я же попытался описать наиболее полные параметры. При настройке я часто обращался в гугл для выискивания значения того или иного параметра, мне попадалось много статей. В одних описаны сами параметры, но без рекомендаций по их установке. В других - только рекомендации, без объяснений. Тут я попытался написать и значения установок и рекомендации для настройки. По-возможности описал почему именно так нужно устанавливать, а не иначе.  Значения описанные в этой статье подходят для настройки роутера для дома и малого офиса с небольшой нагрузкой и небольшое количество устройств. Что является самым распространенным применением точки доступа Mikrotik. Все рекомендации по значениям параметров я выделил курсивом. Данная статья подразумевает, что человек уже настраивал wi-fi в Микротик, но хотел бы получить больше информации по доступным параметрам и их значениям.

  И так, начнем - заходим в wireless и входим в наш интерфейс wlan1.


  Выбираем режим Advanced Mode.

понедельник, 21 ноября 2016 г.

Hairpin NAT - доступ через внешний IP на свои ресурсы, находясь внутри сети.

  Допустим мы имеем конфигурацию, когда в вашей офисной или домашней сети есть веб-сервер. На него из-вне проброшен 80 порт. Ваши клиенты могут заходить на ваш домен domain.ru, который имеет внешний IP 1.1.1.1 с переадресацией через Mikrotik на web-сервер 192.168.1.2. Визуально такое правило выглядит так:
/ip firewall nat
add chain=dstnat dst-address=1.1.1.1 protocol=tcp dst-port=80 action=dst-nat to-address=192.168.1.2
  Все запросы с внешнего IP 1.1.1.1 на 80 порт направлять на наш веб-сервер. Второе правило - обычный NAT для нашей внутренный сети:
add chain=srcnat out-interface=WAN action=masquerade
  Когда внешний клиент с WAN-интерфейса совершает подключение к нашему веб-серверу это выглядит так:

воскресенье, 20 ноября 2016 г.

Архив версий RouterOS на новом сайте Mikrotik.

    С обновлением официального сайта Mikrotik намного легче стало искать старые релизы RouterOS.
  В разделе Downloads появились новые разделы.

Страница загрузок.

Страница архива релизов.

вторник, 8 ноября 2016 г.

Проброс портов через VPN в Mikrotik.

  Есть два офиса. В главном офисе имеется статический реальный внешний IP, к которому можно подключится  из-вне. В региональном представительстве - динамический IP и разные провайдеры интернета, которые могут меняться. К главному офису региональный подключен по VPN, в данном примере используется L2TP-соединение. Задача: пробросить порт в региональный офис, используя реальный IP главного офиса. Пробрасывать порт будем TCP 3333.

  Для этого создаем на главном офисе правило:
/ip firewall nat
add action=dst-nat chain=dstnat comment=dvr dst-address-list=wan dst-port=3333 protocol=tcp to-addresses=172.16.7.6
  Где "wan" - адрес лист который содержит список внешний IP главного офиса, "172.16.7.6" - IP виртуального интерфейса L2TP. Правило перенаправляет все запросы с wan-интерфейсов на порт 3333 в нужный нам впн-туннель.


понедельник, 10 октября 2016 г.

Не работают (не считают трафик) правила Simple Queues в Mikrotik.

  Как было раньше, например в версии RouterOS 5.22. Ограничение в правилах не стоят, а подсчет трафика происходит:


  Вы задаете простое правило в  Simple Queues с нужным IP без ограничения скорости и легким движение руки мониторите своих клиентов.
  Но все изменилось, возможно с внедрением Fast Path, возможно с оптимизацией системы, но в версиях 6.х поведение изменилось. Трафик подсчет трафика происходит только тогда, когда стоит ограничение:

Ограничение не стоит - трафик не считаем.

Ограничение стоит - идет подсчет трафика.

  Поэтому, если вы используете Simple Queues как средство мониторинга - добавляйте ограничение. Естественно, оно может быть максимальное и по факту ничего не ограничивать.

воскресенье, 9 октября 2016 г.

Добавляем IP в статический лист через правила в Firewall.

  Возьмем классическое правило добавления IP в address-list в Firewall Mikrotik:
/ip firewall filter
add action=add-dst-to-address-list address-list=1 address-list-timeout=0s chain=forward
  Обратимся к Wiki:
address-list-timeout (time; Default: 00:00:00) - указываем временной интервал, на который мы добавляем IP в адрес-лист. Значение 00:00:00 оставит адрес в списке навсегда.

   Но если взглянуть на скриншот, можно увидеть, несмотря на интервал 00:00:00, правила создаются динамические. А это значит, что после перезагрузки эти листы удалятся. Очень странное поведение RouterOS, но имеем то, что имеем!
  Иногда нам нужно правилом забанить вредоносные IP. Например те, которые подключаются с WAN-интерфейса, и мы определяем их подключения - как небезопасные. При-чем хочется забанить их навсегда - но получается только до перезагрузки. Для этого нам нужно преобразовать динамические записи -  в статические. В этом случае можно использовать скрипт. Скрипт, преобразовывающий динамические записи в адрес-листе в статические я описывал ранее, сейчас я приведу его другую вариацию:
:foreach i in=[/ip firewall address-list find list=1] do={
    :local ipaddress [/ip firewall address-list get $i address]
    :local dynamic [/ip firewall address-list get $i dynamic]
    if ($dynamic = true) do={
        /ip firewall address-list remove $i
        /ip firewall address-list add list=12 address=$ipaddress
    }
}
  Где "1" - имя динамического адрес-листа, а "12" - имя преобразованного статического. Скрипт можно кинуть в планировщик на выполнение раз в минуту. Таким образом ни один IP не пропадает после перезагрузки. Теперь можно создавать правило для дропа статического адрес-листа.


суббота, 8 октября 2016 г.

Loop Protect - защищаем Mikrotik от петель на порту.

  Начиная с версии RouterOS 6.37.1 ввели в интерфейс WinBox настройку Loop Protect защиты:
*) winbox - added loop-protect settings;
  Loop-защита позволяет предотвращать Layer2 петли на интерфейсе путем отправки пакетов в интерфейс и мониторинга пакетов, которые попадают на этот интерфейс. Если все что Mikrotik отправляет в интерфейс возвращается назад - мы считаем, что на интерфейсе петля. Фактически мы проверяем MAC-источника пакетов с MAC-получателя пакетов, если совпадение найдено - порт отключается. В логах пишется сообщение. Такая защита может быть использована на bridged-интерфейсах и ethernet-интерфейсах. Функция доступна из меню:
/interface ethernet
/interface vlan
/interface eoip
/interface eoipv6
  Меню имеет такой вид:


среда, 5 октября 2016 г.

Защищаем сервер FTP за Mikrotik анализируя пакеты опцией "content".

  Недавно в статье "Защита WAN-интерфейса в Mikrotik" я рассказывал как защитить наше устройство и минимизировать атаки из-вне. Но почти во всех конфигурациях мы используем пробросы портов для предоставления сервисов нашим клиентам или для личного пользования. Пробросив порт, защиту мы возлагаем на наш внутренний сервис. Но Mikrotik довольно универсально устройство, которое позволяем защитить даже наши внутренние сервисы, к которым мы можем подключиться из-вне. В текущей статье, на примере FTP-сервера, я покажу вариант такой реализации.
  Имеем FTP-сервер Serv-U File Server, на который проброшен порт 21 с WAN-интерфейсов (их 2) Mikrotik. Сразу скажу, я никогда не использую дефолтный порт, так как это небезопасно, но для примера подойдет.
  Правило проброса порта:
/ip firewall nat
add action=dst-nat chain=dstnat comment=ftp dst-address-list=wan dst-port=21 protocol=tcp to-addresses=10.2.0.7
  Где "wan" - адрес лист наших wan-интерфейсов (их два, с обоих сервер доступен), 10.2.0.7 - адрес нашего ftp-сервера.
  После этого мы попробуем защитить ftp от перебора паролей. Для этого воспользуемся опцией "content" в правилах /ip firewall. Эта опция позволяет проанализировать пакеты которые входят\проходят\выходят из маршрутизатора и найти текстовые соответствия в этих пакетах - если соответствие найдено - выполняется определенное действие.


понедельник, 3 октября 2016 г.

Материалы MUM Россия сентябрь 2016.

Стали доступны материалы с MUM Москва 2016.

Темы, которые были на конференции:

Реализация Policy Routing (PBR) в MikroTik RouterOS
  Как работать с несколькими провайдерами? Как выделить определенный тип трафика и отправить его через шлюз резервного провайдера? Как сделать отказоустойчивый VPN, имея несколько провайдеров, и, вдобавок, суммировать их каналы? На все эти вопросы невозможно получить ответ, не поняв, как работает Policy Routing на оборудовании MikroTik. Также будет представлена схема IP-VPN на основе Policy Routing и протокола OSPF, которая продемонстрирует, что можно настраивать, имея оборудование MikroTik и обладая знаниями.

Безопасность в MikroTik. Защита ресурсов сети и маршрутизатора
  Способы защиты маршрутизатора и сетевых ресурсов от взлома. Реализация защиты с помощью функций RouterOS.

воскресенье, 2 октября 2016 г.

Failover Mikrotik без скриптов: рекурсивные маршруты.

  Подниму заезженную тему. Смотрел прямую трансляцию с MikroTik User Meeting (Moscow, Russia, September 30 - October 01, 2016) и там один докладчик рассказывал как он не любит писать скрипты и старается использовать функционал RouterOS без них. В докладе, кроме всего прочего, говорилось про рекурсивные маршруты для использования в качестве failover. Вспомнил теплое ламповое время когда я использовать такой вариант файловера и решил написать про это. Довольно интересное решение, которое было изобретено для Mikrotik в 2010 году.
  Допустим у нас есть несколько внешних провайдеров. При пропадании одного интернета-переключаемся на резервный, при возобновлении первого - переключаемся назад. Есть несколько вариантов решения.
  Первый - использование check-gateway=ping:


суббота, 24 сентября 2016 г.

Автоматическое ограничение скорости DHCP-клиентам.

  Есть сеть, в сети адреса раздаются по DHCP. Нужно, что-бы при подключении клиентов каждому автоматически ограничивалась скорость в 10 мегабит. Для этого мы будем использовать функционал в DHCP-сервер Mikrotik под название "lease-script". Для этого зайдем в IP > DHCP Server в свойства нашего сервера.

среда, 21 сентября 2016 г.

Групповое удаление файлов по типу в Mikrotik.

  Используя скрипт-аналог Netwatch я столкнулся с проблемой, когда Mikrotik производит отправку сообщения в Telegram создается соответствующий файл, после каждой отправки. Когда отправляется много сообщений это выглядит так:


  Решить проблему достаточно просто, после каждой отправки можно удалять все файлы, которые имеют тип "file" командой
/file remove [find type=file]
  В скрипте это может выглядеть так:
/tool fetch url="https://api.telegram.org/bot123456789:AAyJyyZ_W67Vyst9wSGRWzcXqeFI5E85RVy/sendMessage\?chat_id=-123456789&text=$time BAIRAK $name3 off"; delay3; /file remove [find type=file]
  Так же приведу команду удаления файлов с нулевым размером:
/file remove [find where size=0]

пятница, 16 сентября 2016 г.

Командная строка в Mikrotik.

  Командная строка используется в Mikrotik для конфигурации через SSH, Telnet или Winbox. При вводе команд используется иерархия. Например, введя команду /ip route, мы можем вводить другие команды, находясь уже в этой ветви.


  Если вы хотите перейти в самый верхний уровень (корень), используйте "/"
[23q@23q] > ip route
[23q@23q] /ip route> /
[23q@23q] > 
  Для перехода на один уровень вверх используется команда ".."
[23q@23q] > ip route
[23q@23q] /ip route> ..
[23q@23q] /ip> 
 

суббота, 10 сентября 2016 г.

Скрипт для обновления IP в Cloud Dynamic DNS за NAT.

  При использования сервиса динамического днс Cloud в устройствах Mikrotik, если устройство находится за NAT,  появляются проблемы при обновлении внешнего IP.


   Для того, что бы корректно происходило обновление можно использовать скрипт. Его можно поместить в шедулер на выполнение каждые 2 минуты.
#some Variables
:local hostname [/ip cloud get dns-name]
#resolve current dns-address
:local resolvedIP [:resolve "$hostname"]
#get current external IP
:local currentIP [:resolve myip.opendns.com server=208.67.222.222];
# Determine if DNS update is needed
:if ($currentIP != $resolvedIP) do={
   :log info ("Mynetname update needed: Current-IP: $currentIP Resolved-IP: $resolvedIP")
   /ip cloud force-update
} else={
   :log info ("Mynetname: No update needed ($currentIP=$resolvedIP)")
}
  При использовании  Cloud за NAT нужно помнить: для того, что-бы подключится к вашему маршрутизатору вам нужно пробросить порт, или порты, на ваше конечное устройство. Иначе подключится из-вне по DNS имени у вас не получится.

За основу взят материал

среда, 7 сентября 2016 г.

Размер FLASH (постоянной памяти) в устройствах Mikrotik.

  Купив RB962UiGS-5HacT2HnT я обнаружил в разделе Files папку с названием flash, что меня совсем не смутило. А должно было. Обычно в новом устройстве Mikrotik, в пункте Files все было чисто. Разве что отображалась папка skins.


  Я бросил папку ponix в главный раздел, все настроил, все заработало и был доволен. Но, когда перезагрузил роутер, я увидел что вся папочка магическим образом исчезла. Я опять перекинул эту папку в корень, но создал файл в папке flash, что-бы проверить пропадут ли данные там. После перезагрузки история повторилась, папка ponix ушла, а файлы в папке flash сохранились. Ну, думаю, помещу я тогда все в папку files, мало ли, модель роутера новая, может что-то поменяли. Но места не хватило.... Тут я озадачился, WTF???
  Зашел в Partition и в Resources:


вторник, 6 сентября 2016 г.

Как оградить MikroTik от хакеров и спамеров.

  Думая о том, как защитить маршрутизатор от внешних вторжений пришла в голову мысль о том, что не только один я сталкиваюсь с этой проблемой. Поэтому я начал искать в интернете сервисы, которые помогают компаниям с выявлением угроз. В интернете есть ряд сайтов, которые отслеживают злоумышленников, спамеров, брутфорсеров и заносят их IP в некие "черные" списки. Происходит это автоматически, и частота обновления этих списков довольно частая (часы, сутки). Почему бы не воспользоваться этими списками для составления адрес-листов в RouterOS.
  Фактически реализовать это не сложно. Списки в основном представлены в виде txt файлов, автоматически загрузив которые, через "/tool fetch", можно с ними оперировать. Для начала извлечь IP в address-list немного поработав над обработкой структуры файла (а она для каждого сервиса разная). Этим я решил и заняться, вопрос решаем... Но, чисто случайно, наткнулся на сайт joshaven.com, где Joshaven Potter уже это все реализовал, и любезно поделился со всеми. Мало того, даже создал собственную платформу для преобразования IP-листов, и дал доступ к этим спискам. За что ему огромное человеческое спасибо!

  Итак, разберем что-же нам предлагают. Предлагается вариант с добавлением "черных IP" с сервисов:

  • OpenBL - сервис, ранее известен как SSH blacklist, выявляет различные виды угроз в Интернет. Сервис содержит ряд хостов, в которых мониторятся разные порты: 21 (FTP), 22 (SSH), 23 (TELNET), 25 (SMTP), 110 (POP3), 143 (IMAP), 587 (Submission), 993 (IMAPS) и 995 (POP3S) на наличие брутфорс атак, а также анализирует запросы на порты 80 (HTTP) и 443 (HTTPS) для "левых", явно представляющих угрозу, подключений (атака на PHPMyAdmin и другие веб-сервисы).
  • Spamhaus - сервис предоставляющий списки адресов, которые используются известными спамерами и хакер-группировками. Так же сюда попадают списки адресов и автономных систем которых "хакнули" и с помощью их распространяют вредоносное ПО или производят атаки.
  • dshield.org - сервис предоставляет топ 20 IP класса C (/24) подсетей, с которых были атаки, за последние 3-е суток.
  • malc0de.com - блэклист обновляется ежедневно. Туда заносятся опасные IP, с которых были документированные атаки (или распространение вредоносного ПО) за последние 30 дней.

Узнаем MAC по указанному IP в ARP.

  Скрипт, который анализирует записи ARP-таблицы в Mikrotik и выводит в переменную значение  MAC-адреса нужного нам IP.
## Script v2 for Dynamic/Static arp ##
## Testet with RouterOS v6.37rc27 ##
## from BrasDeutscher,Para,Brazil ##
{
## Установите в переменную state "yes" для поиска по динамическим записям ARP-таблицы или "no" для поиска по статическим. В переменную ip укажите IP, для которого требуется извлечь MAC-адрес ##
:global state yes
:global ip 10.0.0.2
## !!-- Do not change any below, this can breake the Script --!! ##
:global mac
:foreach a in=[/ip arp find where address=$ip dynamic=$state ] do={
:set mac [/ip arp get $a mac-address ];
:log warning ("IP - $ip to Mac - $mac");}}
   MAC-адрес будет извлечен в глобальную переменную mac.

понедельник, 29 августа 2016 г.

Interface (Bridge) List - нововведение в RouterOS.

В версии RouterOS 6.36 среди прочих новых фишек есть такое:
What's new in 6.36 (2016-Jul-20 14:09):
*)firewall - added "/interface list" menu which allows to create list of interfaces which can be used as in/out-interface-list matcher in firewall and use as a filter in traffic-flow; 
  Как мы видим в firewall добавили функционал оперирования с листами интерфейсов. Это типа адрес-листов, но группируются интерфейсы, для указания их в правилах. Как мы знаем, чем меньше правил в фаервооле - тем меньше нагрузка на процессор. Раньше, для того что бы замаскарадить например несколько wan-интерфейсов нужно было обязательно делать несколько правил. Сейчас можно ограничится одним, просто указав группу интерфейсов для которых действует это правило.
  Итак, рассмотрим как ими пользоваться.

 

суббота, 27 августа 2016 г.

L2TP\PPTP\SSTP\OVPN\PPPoE Server Binding в Mikrotik.

  Для настройки VPN-сервера в Mikrotik достаточно открыть доступ по порту для прохождения пакетов на роутер, включить галочку в сервере VPN, завести аккаунты выбрав и настроив нужный профиль.

  После этого будут создавать динамические интерфейсы при подключении клиента впн.
  

Удаляем, переименовываем записи в address-list в Mikrotik.

  Удалить все записи в адрес-листах (удаляет ВСЕ адрес-листы):
/ip firewal address-list remove [find]
  Удалить списки в адрес-листах которые содержат в названии листа "la":
/ip firewal address-list remove [find list~"la"]
  Удалить списки в адрес-листах название которых начинается на "la":
/ip firewal address-list remove [find where list~"^la"]

вторник, 23 августа 2016 г.

Умный скриптовый аналог Netwatch Mikrotik.

  Есть небольшая "домашняя" сеть, в ней несколько клиентов подключено по WiFi методом точка-точка. Расстояния каждого линка небольшие (до 1 км.), эти линки нужно мониторить. Следить мы будет за ответными точками 4 клиентов, если точка отпала - оповещать в чат Telegram операторов. Родной Netwatch нам не подходит, так как не учитывает кратковременные пропадания, которые допустимы (например точку перегрузили). А значит будет куча ложных срабатываний. При написании скрипта нужно учитывать, что он выполняется по регламенту, а значит при пропадании одной из точек сообщения будут отправляться каждый раз при выполнении скрипта (через промежуток времени, который задан в шедуллере). Что-бы этого измежать нам нужно вводить глобальную переменную статуса точек. Однако, глобальные переменные при перезагрузке пропадают, но это тоже учтено в скрипте.

Выводим значение переменной в название/значение другой переменной.

  Выведем значение переменной в название другой переменной:

способ 1:
#есть переменная A c значением 123
:global A 123;
#создадим переменную, взяв в название значение переменной А:
:execute ":global $A";
#создадим переменную, взяв в название значение переменной А, и просвоим ей значение 321:
:execute ":global $A 321";
способ 2(автор vqd):
{
:local tmp "str"
[:parse ":global $tmp"]
}

воскресенье, 21 августа 2016 г.

Подключаем CDMA ИНТЕРТЕЛЕКОМ к Mikrotik.

  В наличии имеется модем, который куплен в отделении оператора ИНТЕРТЕЛЕКОМ. Модем Novatel Wireless 551L.
  К нашему Mikrotik подключена флешка, дабы обеспечить загрузку тонкого клиента PONIX. При подключении через пассивный хаб флешки и модема, связь работала нестабильно. Периодически пропадал модем, или связь прерывалась, поэтому пал выбор на активный хаб: USB 2.0 4-х портовый Хаб с блоком питания ST Lab (U-181 Black), который отлично работает с Микротик.
 

понедельник, 15 августа 2016 г.

Сохраняем глобальные переменные после перезагрузки.

  При перезагрузке роутера глобальные переменные удаляются. Иногда их нужно сохранить, для этого можно использовать, к примеру, комментарии к интерфейсам и т.д. Нужно к вашему скрипту добавить следующий код:
:global save;
:set save 6;
# после введения переменной сохраняем ее в коммент и создаем задание на выполнение при загрузке маршрутизатора
/interface ethernet set ether5 comment=$save;
/system scheduler add name=global_save on-event=":delay 3; :global save [/interface ethernet get ether5 comment]" start-time=startup;
  Глобальную переменную "save" мы вносим в коммент к интерфейсу ether5. Далее ставим задание, которое выполняется при загрузке роутера и извлекает нашу переменную из комментария интерфейса. 

воскресенье, 14 августа 2016 г.

Скрипт меняющий регистр слов в RouterOS.

  Скрипт позволяющий заменить заглавные буквы в строчные и наоборот. Автор предлагает выполнять скрипт при загрузке роутера, и использовать переменные "$toupper" и "$tolower" для преобразования в верхний и нижный регистр соответственно.
  Скрипт для копирования в терминал (добавляется в автозагрузку роутера при старте):
{
/system scheduler add name=goonet.strcase on-event="{\r\
\n:global strcase do={\r\
\n\t:local toreplaceL {\"A\"=\"a\";\"B\"=\"b\";\"C\"=\"c\";\"D\"=\"d\";\"E\"=\"e\";\"F\"=\"f\";\"G\"=\"g\";\"H\"=\"h\";\"I\"=\"i\";\"J\"=\"j\";\"K\"=\"k\";\"L\"=\"l\";\
\"M\"=\"m\";\"N\"=\"n\";\"O\"=\"o\";\"P\"=\"p\";\"Q\"=\"q\";\"R\"=\"r\";\"S\"=\"s\";\"T\"=\"t\";\"U\"=\"u\";\"V\"=\"v\";\"X\"=\"x\";\"Z\"=\"z\";\"Y\"=\"y\";\"W\"=\"w\"\
};\r\
\n\t:local toreplaceU {\"a\"=\"A\";\"b\"=\"B\";\"c\"=\"C\";\"d\"=\"D\";\"e\"=\"E\";\"f\"=\"F\";\"g\"=\"G\";\"h\"=\"H\";\"i\"=\"I\";\"j\"=\"J\";\"k\"=\"K\";\"l\"=\"L\";\
\"m\"=\"M\";\"n\"=\"N\";\"o\"=\"O\";\"p\"=\"P\";\"q\"=\"Q\";\"r\"=\"R\";\"s\"=\"S\";\"t\"=\"T\";\"u\"=\"U\";\"v\"=\"V\";\"x\"=\"X\";\"z\"=\"Z\";\"y\"=\"Y\";\"w\"=\"W\"\
};\r\
\n\t:local toreplace \$toreplaceL;\r\
\n\t:local str \$1;\r\
\n\t:local newStr;\r\
\n\t:local newChar;\r\
\n\r\
\n\t:if (\$2 = \"-u\") do={\r\
\n\t\t:set toreplace \$toreplaceU;\r\
\n\t}\r\
\n\r\
\n\t:for i from=0 to=([:len \$str] - 1) do={\r\
\n\t :local char [:pick \$str \$i];\r\
\n\t :set newChar (\$toreplace->\$char);\r\
\n\t \r\
\n\t :if ([:typeof \$newChar] = \"str\") do={\r\
\n\t\t:set char \$newChar;\r\
\n\t }\r\
\n\t :set newStr (\$newStr . \$char);\r\
\n\t}\r\
\n\t:return \$newStr;\r\
\n}\r\
\n\r\
\n:global tolower do={ :global strcase; return [\$strcase \$1]};\r\
\n:global toupper do={ :global strcase; return [\$strcase \$1 -u]}\r\
\n}" policy=read,write,policy,test start-time=startup
}
 

среда, 10 августа 2016 г.

Скрипт преобразовывающий динамические записи в адрес-листе в статические.

  Введите название в переменную "dyn" динамической записи, которые нужно преобразовать в статические. Вместо NewList введите название нового статического адрес-листа.
:local dyn DynList;
:foreach i in=[/ip firewall address-list find (dynamic=yes)&&(list=$dyn)] do={
:local a [/ip firewall address-list get value-name=address $i]                  
/ip firewall address-list remove $i
/ip firewall address-list add address=$a list=NewList}

вторник, 9 августа 2016 г.

Блокируем доступ к ресурсам с помощью Mikrotik.

  В версии RouterOS v6.36 добавлена очень важная возможность:
firewall — allow to add domain name to address-lists (dynamic entries for resolved addresses will be added to specified list);
  В адрес-листы можно добавлять не только IP-адреса, но и DNS-имена ресурсов. Таким образом стало довольно легко ограничить доступ к ресурса.
  Давайте попробуем ограничить доступ к ресурсу http://www.yaplakal.com/. Первым делом добавим ресурс в адрес-лист:
 /ip firewall address-list add list=www.yaplakal.com address=www.yaplakal.com

воскресенье, 7 августа 2016 г.

Пару полезностей: получаем публичный IP в переменную, подсказка диапазона подсети.

  Иногда требуется получить публичный IP в переменную Mikrotik. Если роутер за натом, то на его интерфейсе внутренний IP. Для получения внешнего можно воспользоваться методом, о котором я писал ранее. Сервис opendns позволяет запросом получить свой внешний IP. Если сделать запрос на сервер 208.67.222.222 домена myip.opendns.com, сервер возвратит ваш IP, с которого сделан запрос. Таким образом скрипт возвратит реальный публичный IP, даже если вы за NAT-ом.
:global currentIP [:resolve myip.opendns.com server=208.67.222.222];
  Так же, если в окне IP/Address List навести на адрес, то Микротик выдаст подсказку, с дапазоном IP, которые входят в текущую маску. Пока такая фича пока доступна только в этом окне.

Защита WAN-интерфейса в Mikrotik.

  После первоначальной настройки роутера Mikrotik его нужно защитить от сканирования и атак из WAN-интерфейса. Это нужно делать обязательно, во избежания неприятностей. Защиту внутри локальной сети тоже нужно производить, но она не так критична, хотя и важна. Сами методы разделю по пунктам.

  1) Отключаем учетную запись admin. Создаем новую учетную запись, Имя должно быть не общепринятое, что-бы комбинация логин-пароль служила доп. защитой. Не используйте имена user, guest, admin и другие стандартные. Не используйте пароли 12345, qwerty и тому подобные, а также совпадающие с логином. Пароль должен быть не меньше 8 символов, содержать буквы верхнего и нижнего регистров, цифры и, в идеале, символы.


воскресенье, 24 июля 2016 г.

Error sending e-mail: invalid body.

  В один прекрасный момент у меня не сработал скрипт. Оказалось, все дело в ошибке отправки e-mail, ошибка была очень странная: invalid body - некорректно содержание. 


  Было перелопачено кучу инфы, но вразумительного ответа я так и не нашел. Начал править само тело письма, и оказалось, когда я удаляю имя сайта, назовем его domain.ru, письму чудесным образом уходит.

Оповещение администратора о входе в Mikrotik.

  Скрипт, который создан для обеспечения безопасности вашего устройства. Он анализирует логи Mikrotik, при наличии НОВЫХ записей входа (удачного или неудачного) на устройство - отсылает e-mail администратору. Сам скрипт можно настроить таким образом, что-бы он исключал "легитимные" входы с наших IP, а отсылал сообщения только тогда, когда входы совершаются с чужих адресов. Скрипт проверят наличие всех записей с последнего старта, и потом все найденые совпадения шлет на е-мейл. Проверен на 6.37rc5.

четверг, 30 июня 2016 г.

Создание файла в Mikrotik со своим расширением (.html или другим).

  В Микротик можно создать два типа файла. Командой "export" создается файл ".rsc", а команда "print" - файл ".txt".
  Например, команда "/ip neighbor export file=0" создает файл 0.rsc; команда "/ip neighbor print file=0" создает файл 0.txt.
  Напрямую создать файл с другим расширение - нельзя. Но можно использовать обходной путь. Если этот файл скинуть на этот же роутер через ftp, то в процессе можно будет переименовать. Для этого нужно разрешить доступ по ftp, можно даже только для одного IP текущего роутера и выполнить команду:
/tool fetch address=X.X.X.X src-path=0.rsc upload=yes user=admin mode=ftp password=admin dst-path=0.html
  Таким образом можно создать файл с любым расширением. Для чего это нужно? Как вариант, использовать 0.html для вывода через WebProxy пользователем Hotspot о времени пребывания в сети.

Используемый материал:

вторник, 21 июня 2016 г.

Полный перенос настроек с одного Mikrotik на другой.

  Имеется офис с постоянной круглосуточной работой. Клиент пожелал, что-бы у него в запасе был еще один точно такой-же Микротик, который в любой момент может заменить рабочий. Замена будет осуществляться вручную. Так как на Микротике постоянно происходят изменения, бекап и экспорт каждую неделю падают на мыло клиенту. Имеем два одинаковых роутера: 951G-2HnD с одинаковыми Firmware 3.18 и версией ОС: 6.19. Выкладываю инструкцию по переносу настроек на бекапный роутер для клиента, с пошаговыми действиями.

понедельник, 13 июня 2016 г.

Перезагрузка роутера когда нет подключенных клиентов по WiFi.

  Есть роутер Mikrotik, к нему подключено несколько клиентских точек по Wi-Fi. Периодически, по непонятным причинам, клиенты отваливаются от роутера. Задача, когда это произошло, перезагрузить роутер:
:local clientes [/interface wireless registration-table print count-only];
:local WarnAt 0
#:log info ($clientes);
:if ($clientes <= $WarnAt) do={
#:log info ($clientes);
/system reboot
}
  Стоит учитывать, что интервал между выполнением скриптом должен быть достаточен для того, что-бы клиенты, после перезагрузки, смогли подключиться к роутеру. В противном случае будет цикличная перезагрузка. 

воскресенье, 12 июня 2016 г.

Цикл добавления маршрутов, сверяем шлюз провайдера с маршрутом, правим MSS при VPN.

  Пример скрипта - цикл для добавления 254 маршрута:
for x from=1 to=254 do={ /ip route add dst-address="192.168.$x.0/24" gateway=192.168.201.10 }
  Если мы получаем настройки по DHCP, а основной маршрут выставляем статический, неплохо было бы проверять изменился ли текущий шлюз у провайдера или нет:
:global ispgw [ip dhcp-client get [/ip dhcp-client find interface=ether1-gateway] gateway];
:global ispgwstat [ip route get [/ip route find comment="ISP1" ] gateway ];
#:log info ("$ispgw" )
#:log info ("$ispgwstat" )
:if ($ispgw = $ispgwstat ) do={ :log info ("ISP GW OK" ) } else={ ip route set [/ip route find comment="ISP1"] gateway=$ispgw; :log info ("ISP GW COMPLETE" )}
  Если через PPPOE соединение некоторые сайты не открываются
- сделать изменения в Firewall > Mangle, удалить динамические правила change MSS all ppp
PPP > Prifiles > Default > General > Change TCP MSS “no”
- прописать правило вручную
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 protocol=tcp tcp-flags=syn tcp-mss=1453-65535

Автоматический бекап и экспорт настроек Микротик на FTP.

  Скрипт для выгрузки бекапа и экспорта Mikrotik на ФТП ресурс (проверен на 6.35.2):

# automated backup export ftp
# ftp configuration
:local ftphost "host"
:local ftpuser "user"
:local ftppassword "pass"
:local ftppath "folder_ftp"
# months array
:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
# get time
:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
# get Date
:local ds [/system clock get date]
# convert name of month to number
:local month [ :pick $ds 0 3 ];
:local mm ([ :find $months $month -1 ] + 1);
:if ($mm < 10) do={ :set mm ("0" . $mm); }
# set $ds to format YYYY-MM-DD
:set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])
# file name for system backup - file name will be Mikrotik-servername-date-time.backup
:local fname1 ("/Mikrotik-".[/system identity get name]."-".$ds."-".$ts.".backup")
# file name for config export - file name will be Mikrotik-servername-date-time.rsc
:local fname2 ("/Mikrotik-".[/system identity get name]."-".$ds."-".$ts.".rsc")
# backup the data
/system backup save name=$fname1
:log info message="System backup finished (1/2).";
/export compact file=$fname2
:log info message="Config export finished (2/2)."
# upload the user manager backup
:log info message="Uploading system backup (1/2)."
/tool fetch address="$ftphost" src-path=$fname1 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname1" upload=yes
# upload the config export
:log info message="Uploading config export (2/2)."
/tool fetch address="$ftphost" src-path=$fname2 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname2" upload=yes
# delay time to finish the upload - increase it if your backup file is big
:delay 30s;
# find file name start with Mikrotik- then remove
:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "Mikrotik-"]]!="nil") do={/file remove $i}; }
:log info message="Configuration backup finished.";

  Файлы имеют такой вид:

Мониторим питание 220В с оповещением по e-mail или SMS в Mikrotik без дорогостоящего APC SMART-UPS

  Согласно разделу WiKi Manual:System/UPS Mikrotik официально поддерживает UPS фирмы APC, и то только серии SmartUPS, хотя я лично подключал и Back-UPS. Роутер получает информацию с Back-UPS, но периодически отваливается подключение (подключение было по USB к роутеру RB951G ИБП Back-UPS 1100VA). SmartUPS такой проблемы не имеет, но и цена от 400$ не радует. Подключать можно как по USB так и через COM. В Mikrotik ИБП выдает довольно обширную информацию.

  Если в важных узлах покупка такого ИБП имеет смысл, то в удаленных офисах смысл покупки такого дорогого ИБП теряется, логичнее было использовать что-то попроще. Есть небольшое решение, которое не требует больших вложений, но позволяет следить за наличием напряжения сети 220 с устройства Mikrotik. 

вторник, 7 июня 2016 г.

Консольные команды при входе в систему RouterOS.

  Начиная с версии RouterOS v3.14 при входе в систему через консоль можно указывать аргументы командной строки. Эти параметры вводятся при наборе логина в процессе авторизации. Они позволяют произвести настройку различных функций терминала: подсвечивать команды или нет, установить размер терминала по ширине, высоте и другое. Дополнительные параметры входа могут быть добавлены к имени после знака "+":
login_name ::= user_name [ '+' parameters ]
parameters ::= parameter [ parameters ]
parameter ::= [ number ] 'a'..'z' number ::= '0'..'9' [ number ]
  Если параметр не указан, то используется значение по умолчанию. Если к параметру не указанно дополнительное значение, то используется значение параметра согласно мануалу (опишу ниже).
  Пример:
admin+c80w 
отключит консольные цвета и установит ширину терминала до 80.

  Параметр "w" устанавливает ширину терминала (по умолчанию - авто). Если значение не указать - будет авто.
  Параметр "h" устанавливает ширину терминала (по умолчанию - авто). Если значение не указать - будет авто.
  Параметр "c" включает или выключает подсветку цветом консоли (по умолчанию - включено). Если указать этот аргумент - будет выключено.
  Параметр "t" указывает выполнять автоматически в терминале (по умолчанию - включено). Если указать этот аргумент - будет выключено.
 Параметр "e" выключает "dumb-режим" (по умолчанию - включено). Если указать этот аргумент - будет выключено.

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

Используемый материал:

понедельник, 6 июня 2016 г.

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

  Процитирую вопрос на форуме forummikrotik.ru:
Возникла необходимость при выполнении скрипта через консоль (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={} выполняется определенное действие в зависимости от нажатой клавиши.
  Пример реализации можно почитать тут: 

пятница, 3 июня 2016 г.

Немного о фактов компании Mikrotik.

  • MikroTik является торговой маркой которой владеет Mikrotikls Ltd (Латвия). Эта компания занимается производством сетевого оборудования.
  • Компания была основана в 1995 году с целью продажи оборудования на развивающихся рынках.
  • C 1997 года начались работы над программным маршрутизатором RouterOS, который впоследствии превратился в операционную систему маршрутизатора и использовался на системах x86.
  • В 2002 компания представила линейку собственного оборудования под брендом RouterBoard. С этого момента потребители могли купить маршрутизатор с уже предустановленной операционной системой Router OS.
  • Mikrotik RouterBOARD является аппаратной платформой от MikroTik, которая представляет собой маршрутизатор управляемый операционной системой RouterOS.
  • Mikrotik RouterOS - операционная система на основе Linux, для обеспечения работы аппаратных маршрутизаторов Mikrotik RouterBoard. RouterOS с легкостью можно установить на PC.
  • Число сотрудников на 2015 год более 150 человек.
  • Структура доходов Mikrotīkls примерно делится следующим образом: 97% - продажи сетевого оборудования (проводные и беспроводные маршрутизаторы), 3% - продажи программного обеспечения (операционные системы к оборудованию) и доходы от оказания услуг.
  • Mikrotīkls в равных долях принадлежит Джону Тулли (он же является CEO) и Арнису Риекстиньшу (технический директор).

четверг, 2 июня 2016 г.

Превращаем SFP порт в устройстве Mikrotik в RJ45.

  В современных роутерах Mikrotik наряду с портами RJ45 нередко можно встретить SFP слот.
 Очень часто он остается незадействованный.

среда, 25 мая 2016 г.

пятница, 22 апреля 2016 г.

Узнаем номер версии RouterOS скриптом.

  Сам скрипт:
:global sysversion
:set $sysversion [/system package get [/system package find name=system] version]

Mikrotik - полноценный WIFI-репитер в RouterOS v6.35.

  Наконец в версии v6.35 сделали нововведение, когда роутер Mikrotik можно подключить к любому роутеру другого производителя, и сделать репитер.  Подробнее в этих двух статьях:



  Полный список нововведений RouterOS v6.35:

четверг, 21 апреля 2016 г.

Мониторим сайт с помощью оборудования Mikrotik.

  Задача: есть сайт, который находится на собственном WEB-сервере за NAT. Работоспособность его нужно мониторить. Пинг для определения работоспособности "сайта" я не использовал. Сервер за NAT-ом, поэтому пинговать внешний интерфейс бессмысленно (он может быть рабочий, а сам WEB-сервер упал). Для проверки был выбран метод скачивания специально подготовленной страницы html с сайта на Микротик через функцию /tool fetch используя метод http. Если страница скачалась через http, мы считаем что сайт в рабочем режиме, если нет, отправляем человеку, который следит за сайтом смс (через сторонний сервис).

четверг, 25 февраля 2016 г.

MUM Europe: Любляна, февраль 2016.

  Презентация новых продуктов Mikrotik RouterBOARD в Словении: точка доступа LHG 5 и wAP ac, маршрутизатор hEX PoE, обновление линейки dual-band.

  Скачать презентацию в формате PDF можно отсюда.



понедельник, 1 февраля 2016 г.

Winbox version 3.1

  Вышла новая версия Winbox 3.1

Обновляем с самого WinBox, используя пункт в меню Check For Updates:

  Или скачиваем со страницы загрузки: http://download2.mikrotik.com/routeros/winbox/3.1/winbox.exe

пятница, 29 января 2016 г.

Находим чужие DHCP-серверы в сети.

  Маршрутизаторы Mikrotik позволяют вычислить чужой, "левый", сторонний DHCP-сервер который находится в вашей сети и тем самым мешает вашим устройствам получать правильные IP-адреса. Такая ситуация может возникнуть, когда клиент, например, подсоединил свой домашний роутер не через WAN порт, а через LAN-порты, а ваша сеть не ориентированна на изоляцию клиента (VLANs, EoIP/VPLS Tunnels, Horizon Bridging/Private VLAN Edge(PVE)). Для этого в RouterOS существует настройка /ip dhcp-server alert:

четверг, 28 января 2016 г.

Mikrotik News January 2016 (Issue #70)

Newsletter 70
  В этом выпуске новостной рассылки MikroTik:

- новый двухдиапазонный Wi-Fi-роутер 2.4 / 5GHz hAP ac lite, рекомендованная цена $49.95
- новые 5GHz точки доступа со встроенными секторными антеннами mANTBox 15s and 19s, рекомендованная цена $139
- самый маленький Mikrotik 2.4GHz mAP lite, рекомендованная цена $25
- CCR1009-8G-1S-PC пассивный маршрутизатор в стоечном корпусе, рекомендованная цена $425
- График конференций MUM MikroTik

понедельник, 25 января 2016 г.

System - Reset-Configuration: программный сброс настроек Mikrotik.

  Как произвести аппаратный сброс настроек мы рассматривать в этой статье, теперь я напишу как сделать программный сброс настроек нашего роутера Микротик чуть подробнее. Для этого заходим в WinBox, запускаем /system reset-configuration:



воскресенье, 24 января 2016 г.

Удаление всех записей в Firewall-Connections.

  При переключении канала интернета с главного на резервный полезно сбрасывать сессии, что-бы не было зависших соединений. Можно это сделать простым выключением и включением Firewall-Connections:
/ip firewall connection tracking set enabled=no
:delay 5s
/ip firewall connection tracking set enabled=auto

вторник, 19 января 2016 г.

Следим за начальством: оповещение при регистрации в сети.

  Обычный офис, есть штат сисадминов, есть начальство, которое ходит на работу, как мы все знаем, не по графику. Было бы довольно неплохо сисадмину знать, когда начальство в офисе, а когда нет. 
  Задача стояла следующая: когда начальник приходит в офис - оповещать сисадмина об этом знаменательном событии =). Так как сейчас все повсеместно пользуются смарфонами, то при появлении на работе начальника - его смартфон автоматически регистрируется в Wi-Fi сети предприятия (конечно, если у него он всегда включен). Это был как раз наш случай. Значит по этому событию мы можем сделать оповещение!
  Для этого создаем скрипт:
# вводим локальную переменную с MAC-адресом смартфона начальника
:local MAC CC:CC:CC:CC:CC:CC;
# вычисляем время, и отбираем значение "час"
:local time [/system clock get time];
:local hour [: pick [/system clock get time] 0 2];
# если время с 9 до 18 (время работы админов), ищем в регистрационном листе Wi-Fi наш MAC.
:if ($hour >= 9 and $hour <= 18)  do={:local MACdetect [interface wireless registration-table find mac-address=$MAC];

воскресенье, 17 января 2016 г.

mAP lite: спичечный коробок из Риги.

  На сайте routerboard.com появился новый, самый маленький, маршрутизатор Mikrotik. Он настолько маленький, что больше похоже на спичечный коробок, чем на маршрутизатор. Инженерам Mikrotik даже пришлось использовать специальный, тонкий порт RJ-45, что-бы обеспечить маленькую ширину, всего 11мм!

 

пятница, 15 января 2016 г.

Отключаем светодиоды (leds) и beeper: тихий режим Mikrotik.

  Иногда бывают случаи когда нужно отключить светодиоды в оборудовании Mikrotik + сделать "тихий режим", что-бы при загрузке/перезагрузке роутер не напоминал про себя. Например, наш роутер RB951UI-2HND стоит в квартире, через него "домашний интернет" улетает в wifi-точку доступа, которая раздает этот интернет в соседние частные дома. Роутер стоит на видном месте и не должен мешать хозяевам.
  Отключаем светодиоды в /system leds:

четверг, 14 января 2016 г.

Port knocking Mikrotik используя Web Proxy.

  Я думаю все знают что такое port knocking, но на всякий случай напишу. Port knocking - метод внешнего открытия портов путем обращения к маршрутизатору генерируя определенные пакеты на известные открытые порты. Играет роль именно последовательность отосланных пакетов, их размер и порт на который они обращаются. Иными словами, порт является по-умолчанию закрытым, но  только до тех пор, пока на него не поступит заранее определённая последовательность пакетов данных, которая "заставит" порт открыться.
  Основная цель - предотвратить злоумышленнику сканирование вашего устройства на наличие потенциально пригодных для использования уязвимостей, делая сканирование порта.  И только из-за того, что злоумышленник не посылает правильную последовательность - защищенные порты остаются закрыты.
  Естественно, в Mikrotik такую возможность реализовать можно, в интернете по этому поводу написано много статей. Например, официальная WiKi приводит в пример эту статью. Они предлагают для доступа на ваш маршрутизатор постучать последовательно по 9000, а потом по 6000 порту для открытия доступа к маршрутизатору. Постучать можно через nmap command, установив knockd package в linux или через браузер. В других статьях описывается открытие портов через протокол icmp, используя ICMP-пакеты (пинг) разных размеров пакета в определенной последовательности. Метод довольно защищенный, но достаточно неудобен. Вообщем, использование Port knocking сводится к настройке, пару-тройку дней тестирования, и отключения, т.к. он требует дополнительных манипуляций до подключения, времени на который, как правило нет. ICMP запросы требуют командной строки или спец-по, простукивания по разным портам - аналогично. 
  Задача у меня стояла такая - сделать безопасный доступ к роутеру Mikrotik с любой точки планеты, с любого компьютера, смартфона, планшета, с любого интернета, будь то HOTSPOT в аэропорту, или любая другая сеть. Для этого был выбран сервис www-ssl.

вторник, 5 января 2016 г.

Failover маркированных клиентов.

  Имеем роутер Mikrotik, к нему приходят два ISP и две группы пользователей - "важные" и "не очень важные" клиенты. Они разделены в разные подсети.

  • wan2 - основный канал интернета, он же является каналом по дефолту для нашего роутера. через него ходит в интернет группа пользователей "важные".
  • wan1 - резервный канал интернета, он является резервным для микротика, через него ходит в интернет группа пользователей "не очень важные".

  Задача.

  • организовать доступ к микротику одновременно и с wan2 и с wan1 из-вне;
  • организовать переключение при падении основного канала на резервный и переключение назад при восстановлении;
  • организовать переключение маркированных клиентов при падении их интернета с wan1 на wan2, при возобновлении - переключение назад.