суббота, 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.