6 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Serial Port Usage

Serial Port Usage

  • 1 Usage possibilities for serial ports in RouterOS
  • 2 Preparations
  • 3 Accessing a serial device from within RouterOS
  • 4 Accessing a serial device directly by SSH / telnet / mac-telnet
  • 5 Accessing a serial device as if it were physically connected to your PCs’ COM port
    • 5.1 Configuring the RouterOS part
    • 5.2 Configuring your PC
  • 6 Caveats
    • 6.1 Losing serial console access
    • 6.2 RouterBOOT entering the game
  • Автор: Уваров А.С.
  • 08.07.2019

Проброс портов — на первый взгляд тривиальная повседневная задача, которая не должна вызывать никаких затруднений. Действительно, в бытовых роутерах это так, но если речь идет об оборудовании Mikrotik, то сложности могут не заставить себя ждать. А все потому, что RouterOS дает в руки администратора богатые сетевые возможности, требуя в ответ понимания работы сетей хотя бы на базовом уровне. Конечно, можно настроить все по готовой инструкции, но гораздо лучше понимать каждое свое действие, и именно для тех, кто хочет разобраться предназначена эта статья.

Проброс портов

Проброс, он же форвардинг, портов — что это такое? Это технология, которая позволяет обращаться к узлам, находящимся за маршрутизатором путем перенаправления трафика для определенных портов с внешнего адреса маршрутизатора на внутренний адрес узла в локальной сети. Это становится возможным благодаря технологии NAT.

Давайте рассмотрим небольшую схему, которая поможет понять принцип действия проброса портов.

Допустим, некий удаленный ПК хочет обратиться к нашему веб-серверу, который находится за маршрутизатором в локальной сети. Но обратиться он может только по внешнему адресу маршрутизатора (в нашем примере 192.168.3.113), на который мы пробросили порт 80 веб-сервера. Поэтому он формирует пакет, в котором адресом назначения выступает маршрутизатор и отправляет его получателю, в качестве адреса источника он указывает собственный адрес.

Маршрутизатор, получив такой пакет выполняет замену адреса назначения с собственного, на адрес веб-сервера, также, при необходимости, он может изменить и порт назначения. После чего пакет отправляется в локальную сеть и достигает веб-сервера. Данные о преобразовании заносятся в специальную таблицу трансляции NAT.

Нужно ли менять адрес отправителя? Нет, если маршрутизатор выступает основным шлюзом сети, а в подавляющем большинстве случаев это так. Веб-север обработает запрос, а так как он ничего не знает о сети получателя, то обратный пакет будет направлен шлюзу по умолчанию, т.е. назад нашему маршрутизатору.

Маршрутизатор на основании данных таблицы трансляции выполнит обратное преобразование, заменив на этот раз адрес источника с внутреннего адреса веб-сервера, на свой внешний адрес и отправит пакет запросившему его узлу.

На первый взгляд все понятно, поэтому перейдем к практике. В RouterOS в качестве сетевого фильтра используется iptables, поэтому далее мы будем оперировать его терминами. В таблице NAT используются две цепочки: PREROUTING — в которую попадают все пришедшие на маршрутизатор пакеты и POSTROUTING — через нее проходят все прошедшие через устройство пакеты. В PREROUTING нам доступно действие dst-nat (DNAT), которое позволяет изменить адрес назначения пакета, в POSTROUTING будут доступны src-nat (SNAT) и masquerade, которые позволяют изменить адрес источника пакета.

Мы не даром заостряем на этом особое внимание, так как непонимание процесса прохождения пакета по цепочкам сетевого фильтра способно привести к значительным затруднениям, когда вроде-бы все правила составлены верно, но ничего не работает.

Так для пакета от клиента к веб-серверу и обратно порядок прохождения цепочек будет следующим:

Обратите внимание, что пакет не попадает в цепочки INPUT и OUTPUT, которые используются для собственных пакетов маршрутизатора.

Как правильно выполнить настройку? Перейдем в IP — Firewall — NAT и добавим следующее правило: Chain — dstnat (читай PREROUTING), Dst. Address — 192.168.1.113 — внешний IP-адрес нашего роутера, Protocol — tcp — используемый протокол, если сервис может использовать несколько протоколов, скажем TCP и UDP — потребуется создать отдельное правило для каждого протокола, Dst. Port — 80 — порт, на котором маршрутизатор будет принимать внешние соединения.

На закладке Action укажите: Action — dst-nat — выполняем замену адреса получателя, To Addresses — 192.168.186.195 — внутренний адрес веб-сервера, To Ports — 80 — порт, на котором веб-сервер принимает соединения. Если внешний и внутренний порт совпадают, то последний можно не указывать.

Либо выполните в терминале:

Но это еще не все, после PREROUTING пакет попадет в цепочку FORWARD, в которой, если вы настраивали роутер по нашей инструкции, запрещены любые внешние пакеты, кроме инициированных из локальной сети соединений.

Создадим новое правило. IP — Firewall — Filter Rules, где добавим: Chain — forward — цепочка FORWARD, Protocol — tcp, Dst. Port — 80 — протокол и порт, In. Interface — ether5 — внешний интерфейс вашего роутера. Так как по умолчанию в новых правилах стоит действие accept, на закладку Action можно не переходить.

Располагаться данное правило должно выше правила, запрещающего транзитный трафик из внешней сети во внутреннюю.

Обратите внимание, что если вы пробрасываете порт с изменением номера, скажем внутренний 3389 (RDP) на внешний 3390, то в правиле брандмауэра вы всегда должны указывать внутренний порт, т.е. 3389, так как пакет уже прошел цепочку PREROUTING и данные о получателе в нем уже изменены на адрес и порт внутреннего сервера.

Читать еще:  Просто о сложном или изучаем PHP7! Циклы for, while и do while

Из терминала это можно сделать командами:

Осталось только проверить работу наших правил, попробуем получить доступ к веб-серверу со внешнего узла:

Как видим, все прекрасно работает.

Hairpin NAT

Все это хорошо, но ровно до тех пор, пока мы не попытаемся получить доступ по внешнему адресу из внутренней сети. Вообще, таких ситуаций следует избегать, предпочтительно использовать для доступа доменные имена и двойной горизонт DNS, когда для внешних пользователей одно и тоже имя разрешается во внешний адрес, а для внутренних — во внутренний. Но это возможно не всегда. Попробовав же обратиться изнутри по внешнему адресу, мы получим ошибку соединения:

Почему так происходит? Давайте рассмотрим еще одну схему:

Первая ее часть нам уже знакома, узел отправляет запрос на внешний адрес маршрутизатора, он заменяет адрес назначения адресом внутреннего сервера и отправляет пакет к нему, адрес отправителя остается неизменным. А вот дальше начинается самое интересное, веб-сервер видит, что отправитель находится в ним в одной сети и отправляет ответ ему напрямую. Но отправитель направлял запрос на внешний адрес сервера и ждет ответа именно от него, поэтому ответный пакет, отправителем которого указан внутренний адрес веб-сервера будет отброшен и связь установить не удастся.

Что же делать? Очевидно, что нужно каким-то образом заставить веб-сервер отвечать не напрямую клиенту, а пересылать пакет обратно маршрутизатору. Здесь нам на помощь придет действие src-nat (SNAT), которое позволяет изменить адрес отправителя, находящееся в цепочке POSTROUTING. В терминах Mikrotik данная настройка носит наименование Hairpin NAT.

Чтобы понять, как это работает мы подготовили следующую схему:

Теперь наш маршрутизатор не только изменяет адрес назначения, но и адрес источника, указывая в его качестве собственный внутренний IP. Обработав такой пакет веб-сервер отправит его обратно к маршрутизатору, который выполнит обратные преобразования (согласно таблице трансляции) и оправит его получателю. А так как отвечать будет именно тот узел, к которому был отправлен запрос, то в данном случае все будет работать.

Для настройки на Mikotik перейдем в IP — Firewall — NAT и добавим: Chain — src-nat (POSTROUTING), Src. Address — 192.168.186.0/24 — диапазон вашей локальной сети, Dst. Address — 192.168.186.195 — внутренний адрес веб-сервера, Protocol — tcp, Dst. Port — 80 — протокол и порт.

Обратите внимание, что в качестве адреса и порта назначения мы указываем внутренние адрес и порт, так как пакет уже прошел цепочку PREROUTING, где данные получателя были изменены. К сожалению, не все это понимают, во многих инструкциях в сети в данном правиле фигурирует внешний адрес, стоит ли говорить, что такое правило работать не будет.

Затем переходим на закладку Action и указываем: Action — src-nat (SNAT), To Addresses — 192.168.186.1 — указываем внутренний адрес нашего маршрутизатора. Если вы используете на внешнем интерфейсе другой порт, то обязательно укажите его в поле To Ports, если порты совпадают, то делать это необязательно.

Через терминал данное правило можно создать следующим образом:

Во многих иных статьях для данного правила используется действие masquerade, давайте разберемся в чем разница. В первом приближении оба действия делают одно и тоже — изменяют адрес источника пакета, но src-nat работает только со статическими адресами, зато позволяет указать в качестве источника любой адрес, masquerade работает с динамическими адресами, но в качестве адреса источника может использовать только адрес того интерфейса, с которого уходит пакет. За счет того, что masquerade при каждом запросе определяет адрес интерфейса — это действие требует больше вычислительных ресурсов, нежели src-nat.

В нашем случае все адреса статические, поэтому использование src-nat здесь будет более уместно.

Правило создано, проверим его работу:

Если вы нигде не допустили ошибок — все будет работать, как и предполагалось.

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

Сброс пароля на Mikrotik с сохранением конфигурации, или инструкция по восстановлению доступа к RouterOS после взлома

Не можете попасть в настройки своего роутера Mikrotik и у Вас версия RouterOS 6.29-6.42?
Тогда, вероятнее всего, Ваше оборудование подверглось взлому!
Я бы разделил разновидность нанесённого вреда хакерами в данном случае на три категории:

  1. Лёгкий вред: после проведенной атаки был изменён Identity, закрыты порты 8192, 80, 443, зато открыт порт 22, пароль администратора оставлены без изменений;
  2. Средний вред: все перечисленные выше порты открыты, но пароль администратора изменён;
  3. Тяжёлый вред: пароль администратора изменён, закрыты порты ssh, www, www-ssl Winbox. Доступ только через serial-port и MAC-Winbox.

Я столкнулся со всеми тремя проблемами. Взломаны были как обычные маршрутизаторы на платформе MIPS так и серьезные на PowerPC (ppc).

Легкий взлом

Последствия такой атаки быстро устраняются. Для этого подключаемся к оборудованию по ssh, и введя команду /ip service print, видим, что сервисы, просто-напросто, отключены (Disable).

Читать еще:  Основные параметры выбора Повер-банка

Следующей командой выключаем сервис winbox. Остальные подключаются по аналогии или с помощью winbox’а. Убедитесь, что выполнение предыдущей команды прошло успешно.

После этого можно подключаться к оборудованию через Winbox, поменять все пароли, выполнить резервное копирование конфигурации и обновить RouterOS.

Средний

Последствия среднего взлома без сторонней программы устранить нельзя. Если интерфейс webfig остается доступным, а пароль злоумышленник изменил, то для восстановления доступа понадобится загрузить программу RouterScan. Официальный сайт: http://stascorp.com/load/1-1-0-56
Скачиваем на компьютер, распаковываем и запускаем. Откроется окно программы. Найдите строку Enter IP Ranges to scan. Справа от этой фразы кликаем по кнопке [E]. Затем в открывшемся диалоговом окне стираем всё и вводим IP-адрес своего роутера. После этого нажимаем кнопку Start Scan.

После сканирования прога выведет связку «Login-Password»


После чего необходимо, как и в первом случае, подключаться к оборудованию, изменить пароли доступа к маршрутизатору, сохранить на компьютер резервную копию конфигурации и установить update.

Тяжелый

А вот тут придется попотеть!
Если первые два типа решаются легко, то для устранения третьей категории взлома понадобится прибегнуть к эксплуатации уязвимости.

Уязвимость, которая эксплуатируется для восстановления паролей описал в статье на своей страничке специалист по кибербезопасности Alireza Mosajja, с ником n0p. https://n0p.me/winbox-bug-dissection/. Он же является автором скрипта для чтения паролей с роутера бездеструктивным методом.

Итак, в RouterOS начиная с версии 6.29 и заканчивая 6.42 с помощью скрипта написанного на Python’е и размещенного в общем доступе на Github, возможно увидеть текущий пароль админа при условии, если порт для подключения с помощью Winbox открыт.

для RouterOS bugfix 6.40.8 и current 6.42.5 и данный метод не подходит

Для запуска понадобится Python с pwntools. Я воспользовался уже установленной версией Ubuntu 16.04 LTS, где скрипт заработал, что называется, «из коробки» — сразу, не потребовав до установить pwntools. Для более ранних дистрибутивов без pwntools воспользуйтесь инструкцией, приведенной в официальной документации к pwntools.
В примере скачиваем в домашнюю директорию пользователя:
после завершения скачивания у Вас появится вложенные папки github.com/BigNerd65/WinboxExploit/archive/master.zip . Далее распаковываем скаченный архив.

на выходе получится директория WinboxExploit, в которой содержится, интересующий нас скрипт WinboxExploit.py. Запускается всего с одним параметром — IP-адресом, либо MAC-адрес роутера. И если все пройдет успешно, вы увидите историю паролей, применявшихся на роутере, где последний текущий. Важно! Перед применением обязательно удостоверьтесь, что указываемый в параметре скрипта адрес принадлежит вашему собственному роутеру!

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

Очень надеюсь, что данная статья поможет вам сохранить часы жизни и нервные клетки.

Подготовительная настройка

Сначала необходимо настроить сам MikroTik, чтобы через консольный порт можно было подключиться к другому устройству.

  • Подключаемся на наш MikroTik через ssh или WinBox, запускаем Terminal
  • Проверяем есть ли у нас консольный порт и чем он занятв нашем случае он занят Serial Console.

  • Освобождаем порт
  • еще раз проверяемтеперь видно что порт свободен и можно продолжить.
    По окончании не забудьте обратно включить console, в противном случае не сможете подключиться к этому устройству через консольный порт. Подробнее в конце статьи.

  • Соединяем наш Mikrotik с другим устройством с помощью roll-over кабеля через консольные порты. Есть два варианта подключения к удаленному устройству через наш MikrotTik:
  • вариант 1: Через Winbox и терминал на самом MikroTik

    1. подключаемся к удаленному устройству, в данном случае это MikroTik
    2. нажимаем Enter и. видим наш удаленный маршрутизатор.
    3. производим необходимую настройку удаленного устройства

  • чтобы отключиться нажимаем Ctrl+A и Q
  • вариант 2: Через ssh клиента используя Special Login

    Special Login – настройка на ROS позволяющая по сети подключиться к устройству подключенному к консольному порту MikroTik.

    1. Подключаемся и через Terminal настраиваем special login
    2. запускам ssh клиента и указывая ip адрес нашего MikroTik-а (того, к которому есть доступ по сети и на котором настраивали special login)
    3. авторизуемся под именем serial и нажимаем Ener

    еще раз Enter и мы уже видим приглашение удаленного устройства

    для отключения также нажимаем Ctrl+A и Q

  • После того как все сделаем, не забываем отключить special loginсмотрим номер пользователя serialудаляем пользователя serial
  • Дополнительные настройки DHCP сервера.

    Для дополнительных настроек кликните два раза по созданному серверу, в результате откроется окно где можно изменить или добавить дополнительные настройки.

    Рассмотрим настраиваемые здесь опции.

    Name-Любое имя

    Interface – сетевой интерфейс на котором настроен сервер, может быть как физическим так и vlan или bridge.

    Lease Time Время аренды ip, по истечении которого сетевому устройству будет выдан новый.

    Address Pool диапазон из которого будут выдаваться ip для сетевых устройств, настраивается в IP->Pool.

    Src.Address используется если на интерфейсе настроено несколько ip, здесь прописываем рабочий DHCP.

    authoritative принимает следующие параметры

    yes — если клиент запросит IP, Микротик ему сразу же ответит. Причём если устройство ранее получало IP другого DHCP в сети, то Микротик пошлёт ему пакет DHCPNAK заставляющий обновить ему свой IP

    No — если клиент ранее получавший IP с другого DHCP запросит адрес у Микротика то он его проигнорирует

    After 2s delay — если клиент запросит IP недоступный на Mikrotik он будет его игнорировать 2 секунды, а далее пошлёт DHCPNAK и присвоит IP из своего диапазона. Своим клиентам Микротик отвечает мгновенно.

    Читать еще:  Обзор браузера Opera

    After 10s delay — если клиент запросит IP адрес недоступный на Mikrotik он будет его игнорировать 10 секунд, а далее пошлёт DHCPNAK и присвоит IP адрес из своего диапазона. Своим клиентам Микротик отвечает мгновенно.

    Bootp Support принимает значения

    none — не реагировать на запросы BOOTP

    static — предлагать только статические лизинг для BOOTP

    dynamic — предлагать статическую и динамическую аренду для BOOTP

    leasescript в этом окне можно добавить исполняемый скрипт, например при подключении компьютера заносить всю информацию в лог.

    add arp for leases — автоматически заполняет ARP таблицу, соответствием MAC — IP.

    always broadcast — Всегда отправляйте широковещательные пакеты, даже если IP-адрес назначения известен. При включении этой опции возможна дополнительная нагрузка на сеть L2.

    Use Radius — Указывает использовать ли RADIUS server для аккаунтинга и аренды адресов.

    На Вкладке Networks, кликаем два раза по созданному серверу и рассмотрим опции.

    Address – здесь все понятно, ip Микротика

    Gateway – шлюз выдаваемый сетевым устройствам

    Netmask – маска сети

    DNS Servers – ДНС выдаваемые сетевым устройствам

    Domain – Имя домена сети

    Boot File Name имя загрузочного файла, используется если включена загрузка по сети через tftp.

    Options – дополнительные опции, как настроить рассмотрим ниже.

    Привязка клиентов по MAC адресу

    Если необходимо что бы клиент получал всегда один и тот же ip, то можно зарезервировать ip адрес за MAC адресом, для этого переходим во вкладку IP->DHCP Server, в открывшемся окне выбираем вкладку Leases, у нас откроется список клиентов.

    Кликаем левой кнопкой мыши по нужной записи и нажимаем кнопку Make Static.

    После этого буква D напротив этого клиента должна исчезнуть.

    Теперь MAC клиента будет привязан к постоянному ip.

    На этой вкладке также можно узнать и о статусе подключенных пользователей

    waiting — пользователь не в сети, ожидается подключение.

    testing — проверка использования этого адреса или нет (только для динамической аренды) путем опроса его с тайм-аутом 0,5 с

    authorizing — ожидание ответа от сервера радиуса

    busy — этот адрес назначается статически клиенту или уже существует в сети, поэтому он не может быть арендован, например если на компьютере настроить ip вручную.

    offered — сервер предложил адрес пользователю, но не получил подтверждение от пользователя.

    bound — адрес назначен пользователю и используется, будет освобожден по истечении времени аренды.

    Настройка options

    Если необходимо настроить опции, например option 82 использующаяся для привязки IP к порту, или option 66 указывающая ip tftp сервера.

    Для настройки переходим на вкладку «Options» и жмем кнопку добавить (красный крест)

    Заполняем поля открывшегося окошка.

    Name-название, вводим любое имя

    Code – код опции, 66, 82 и т.д.

    Value – адрес ресурса, например tftp сервера

    Важно: проверьте версию RouterOS, от этого будет зависеть синтаксис данной настройки.
    Для версий с 6.0 -6.7, значение IP нужно вводить, используя одинарные ковычки — ’10.10.10.10’
    Для версий от 6.8, значение IP нужно вводить, используя следующий синтаксис — s’10.10.10.10’

    После нажатия кнопки Apply поле Raw Value заполнится автоматически, жмем OK, должна появится строчка нашей опции

    Теперь переходим вкладку «Networks» и два раза кликаем по нужному серверу.

    В открывшемся окне, в пункте Options, выбираем нужную нам опцию, созданную на первом шаге. После чего нажимаем кнопку ОК и настройка опции на этом закончена.

    Обучающий курс по настройке MikroTik

    Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Блокирование сайтов по IP-адресу

    Фаервол позволяет заблокировать сайт по его IP-адресу. Узнать IP-адрес сайта можно в Windows, набрав в консоли команду nslookup имя сайта, например nslookup vk.com.

    Чтобы выполнить команду nslookup в маршрутизаторе MikroTik, откройте меню New Terminal и выполните команду-аналог put [:resolve vk.com]

    Сайты социальных сетей имеют много серверов с разными IP-адресами и вышеуказанные команды могут не показать адреса всех серверов. Поэтому лучше всего с помощью онлайн сервисов whois узнать, какие сети принадлежат данной социальной сети. Например, Vkontakte Ltd принадлежит сеть 87.240.128.0/18 и 93.186.224.0/22.

    В поиске IP-адресов также поможет сервис bgp.he.net

    После того, как мы узнали нужные нам IP-адреса, выполните в терминале MikroTik следующие команды:

    Блокирование социальных сетей довольно трудоемкий процесс, поскольку социальные сети открывают дубликаты своих сайтов с другими именами и IP адресами серверов. Продвинутые пользователи обходят ограничения еще с помощью сайтов анонимайзеров. Поэтому блокируя доступ к социальным сетям, вам также придется выискивать сайты анонимайзеры и тоже их блокировать.

    Вам помогла эта статья?

    Приглашаем пройти обучение в нашем тренинг-центре и научиться настраивать оборудование MikroTik на профессиональном уровне! Узнайте расписание ближайших курсов и бронируйте место!

    Должно получиться вот так:

    И запрещаем с этих подсетей соединения на WAN-порт маршрутизатора:

    Разрешаем все уже установленные подключения (connection state=established):

    Разрешаем все зависимые подключения (connection state=related):

    Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector