Про настройку Микротика и RoutOS написано огромное количество статей. Информации в них достаточно для настройки устройства для дома. Другое дело. когда речь идет о сети офиса. Мы решили собрать серию статей, в которых опишем необходимый функционал и методику его настройки.
Здравствуйте!
В интернете можно найти много статей по настройке разных конфигураций устройств MikroTik на RouterOS, но мало кто упоминает о некоторых подводных камнях, которые могут случаться. В этой серии статей я хотел бы описать настройку роутера MikroTik с нуля с применением некоторых фич, и с учетом всех сюрпризов, с которыми можно столкнуться в разных сценариях использования.
Содержание:
- Начало работы. Установка доп. пакетов
- Первичная настройка
- Настройка локальной сети
- Настройка выхода в интернет
- Настройка провайдеров
- Настройка маркировки пакетов
- Настройка Firewall и безопасности
- Дополнительные настройки (VPN туннель)
Для начала стоит определиться с конфигурацией сети и задачами:
Сеть состоит из одного управляемого POE коммутатора, нескольких телефонов и компьютеров, интернет приходит от двух операторов, один из них за биллингом, подсеть биллинга, пару облачных решений, два контроллера домена, один находится в облаке, поэтому сразу видим несколько задач:
- Научить Mikrotik работать с двумя операторами одновременно;
- Сделать доступ к биллингу и подсети биллинга;
- Сделать безопасную локальную сеть;
- При работе двух операторов сделать так, чтобы не отвалились некоторые сервисы;
- Подключить и настроить маршрутизацию между облачными сетями и наземными.
Начало работы. Установка доп. пакетов
Настройку начнем с самого начала, необходимо скачать утилиту Winbox с оф. сайта изготовителя, далее подключаем наше устройство к компьютеру и к любому порту роутера, в первый (или любой, на ваше усмотрение) порт втыкаем интернет.
Перед настройкой необходимо понять нужно ли нам еще что-то кроме того функционала, который есть, к примеру NTP сервер, или DUDE сервер, если не нужен, то пропускам этот пункт и сразу переходим к настройке.
Те, кому нужен дополнительный функционал заходим в WinBox и смотрим название нашего устройства, в нашем случае это RB750Gr3.
Заходим на официальный сайт, переходим в раздел " Software", скачиваем Netinstall.
На сайте ищем нужное нам устройство и скачиваем к нему Extra packages.
Распаковываем Netinstall, распаковываем в другую папку Extra packages, ставим такие настройки сетевой карты: ip адрес – 10.1.1.2, маска 255.255.255.0 (Эти данные по умолчанию рекомендуются производителем).
Далее запускаем программу Netinstall, нажимаем на Net booting, выставляем галочку напротив Boot server enabled, в Client Ip прописываем 10.1.1.4
Далее идем к нашему роутеру, находим у него кнопку reset, обычно она утоплена в корпус, для этого нужно использовать скрепку или нечто похожее. Выключаем Mikrotik, вставляем кабель от компьютера в 1 порт, зажимаем кнопку reset, вставляем питание в роутер и не отжимаем кнопку reset более чем на 10 секунд, пока все лампочки не погаснут.
Если все сделано правильно, то мы увидим наш Mikrotik.
Идем в папку с Extra packages, для начала найдем стандартные пакеты, они приложены в скриншоте:
К ним еще добавляем те пакеты, которые нам нужны (в данном случае это ntp server)
Идем в Netinstall, нажимаем Browse, выбираем папку, где все лежит
Далее нажимаем по нашему роутеру и выделяем все пакеты галочками:
После нажимаем install. Начнется процесс установки.
Как всего будет готово нажимаем boot, ждем перезагрузки и запускаем WinBox, ставим настройки нашего сетевого интерфейса по умолчанию.
Через WinBox находим наш роутер и нажимаем connect
Нужный пакет мы установили, начинаем настройку.
Первичная настройка
Для начала нам нужно настроить саму систему для работы, заходим в WinBox во вкладку Neighbors, в ней мы должны увидеть наш роутер, нажимаем на его Mac Address, в поле логин вводим admin, пароль оставляем незаполненным. Нажимаем Connect.
После загрузки мы увидим такое окно, это главное окно для управления роутером:
В первую очередь необходимо сбросить настройки. Заходим во вкладку system – reset configuration, ставим галочку напротив No Default Configuration – reset configuration.
На все вопросы жмем Yes и ждем перезагрузки, после так же по аналогии заходим на роутер.
Сброс конфигурации делается так как по умолчанию от производителя уже есть настройки, они имеют минимально необходимый функционал, достаточный для работы в домашнем использовании, но не достаточный для работы в небольшой компании, так как необходимы более гибкие настройки. Мы их настроим сами.
После запуска заходим во вкладку System – packages
Если вы не будете использовать протокол ipv6, то нам необходимо будет его выключить, так как в противном случае надо будет либо настраивать брандмауэр для этого протокола, либо будет большая брешь в безопасности, поэтому желательно его выключить. Для начала идем в system – packages и выключаем его выделением, а после нажатием disable. Пакет отключится после перезагрузки.
После надо будет обозвать наш роутер понятным именем, которое он будет транслировать во всю сеть, идем в System – identity и называем роутер как душе угодно. Я назвал "Mikrotik.mini" (видно на скриншоте).
После настраиваем время:
System – clock, ставим вашу дату и время, часовой пояс.
По умолчанию в роутерах Mikrotik работают все службы, такие как FTP, SSH, Telnet, для простой работы или настройки вам не потребуется использовать эти протоколы, так как WinBox содержит в себе весь функционал, который предлагают эти протоколы, поэтому для того, чтобы не оставлять дыры в безопасности нужно закрыть все неиспользуемые протоколы. Идем в ip – Services и отключаем все, кроме WinBox, порт WinBox лучше поменять на любой вам удобный, для того, чтобы перекрыть возможность взлома по стандартным портам.
Поменяем порт на произвольный, заходим на winbox, меняем порт на 54321, нажимаем Ok.
Последним в начальной настройке будет настройка идентификации пользователей, так как стандартный пользователь не содержит пароля, что позволяет кому угодно заходить на роутер, поэтому нужно поставить пароль на стандартного пользователя. В офисном использовании рекомендуется создать 1 или 2 дополнительных пользователя с полными правами и удалить пользователя Admin. Нажимаем System – users, нажимаем на Admin и меняем ему пароль, мы удалять пользователя Admin не будем, просто поставим доп. пароль и создадим еще одного пользователя.
Заходим, нажимаем правой кнопкой на admin и нажимаем password, вводим новый пароль и подтверждение пароля, нажимаем Ok.
После этого нажимаем + и создаем другого пользователя, вводим login, group выбираем full, вводим пароль и подтверждение пароля, после этого Ok.
После создания видим двух пользователей.
Первоначальная настройка закончена, переходим к настройке локальной сети.
Настройка локальной сети
Поскольку основная наша цель — создать сеть второго уровня модели OSI (сеть с коммутатором), то нам необходимо настроить функцию моста. Благодаря функции моста (mikrotik bridge) можно объединить несколько портов в один сегмент.
С этого момента процесс настройки будет показан как графически, так и консольно.
Переименовываем порты, добавляем к ним комментарии, чтобы было наглядно видно какой порт за что отвечает. Провайдеры в нашем случае будут подключаться к 1 и 2 порту, назовем их wan1 и wan2.
Заходим в interface , нажимаем на нужный нам порт и переименовываем его (переименовывать не обязательно, но для наглядности и понятности всего функционала и кто за что отвечает рекомендуется каждую вашу настройку обзывать понятным именем).
Либо консольно
/interface ethernet set [ find default-name=ether1 ] comment=Оператор1 name=wan1 set [ find default-name=ether2 ] comment=Оператор2 name=wan2
Так же отключим неиспользуемые порты и добавим комментарии к другим для их идентификации . (Порты отключаем для того, чтобы немного снизить нагрузку на процессор роутера. Отключение портов не обязательное, но показываю для наглядности).
Нажимаем на нужном интерфейсе правой кнопкой и нажимаем Comment.
Нажимаем на нужном интерфейсе и нажимаем красный крестик
Либо консольно
/interface ethernet set [ find default-name=ether3 ] comment=local /interface ethernet set [ find default-name=ether4 ] comment=Reserved /interface ethernet set [ find default-name=ether5 ] comment=Server /interface ethernet set [ find default-name=ether6 ] disabled=yes /interface ethernet set [ find default-name=ether7 ] disabled=yes /interface ethernet set [ find default-name=ether8 ] disabled=yes /interface ethernet set [ find default-name=ether9 ] disabled=yes /interface ethernet set [ find default-name=ether10 ] disabled=yes
В конце получаем такую картину:
Для удобства настройки firewall добавим еще интерфейс лист с портами операторов, называем его internet и после добавляем в него интерфейсы:
Либо консольно
/interface list add name=internet /interface list member add interface=wan1 list=internet /interface list member add interface=wan2 list=internet
После настройки интерфейсов необходимо создать bridge, и добавить в него все интерфейсы, кроме интерфейсов интернета. (Мост – это программная настройка, которая объединяет все порты в один свитч, используя мощности и ресурсы процессора. Обладает защитой от петель, поэтому запетлять роутер используя bridge у вас не получится. В Mikrotik так же есть чип коммутации, который так же умеет объединять порты в один сегмент, для него будут совершенно другие настройки и свои минусы. В простом офисном использовании на количество клиентов до 100 будет хватать процессора, поэтому рекомендуется использовать мост для стабильной работы сети.) P.S. Использование чипа коммутации для объединения портов будет рассмотрено в следующих статьях.
Для настройки моста в левой панели находим вкладку «Bridge», заходим в нее, дальше идет в «Bridge» и создаем новый мост. Называем понятным именем и ставим в ARP настройку proxy-arp.
При подключении по VPN вы можете неприятно удивиться, почему вы можете открыть страницу логина в роутер, 192.168.88.1 (если у вас такой), но не сможете открыть ни один внутренний ресурс. Штука в том, что надо включить proxy-arp на внутреннем интерфейсе, за которым есть нужный вам ресурс. У меня proxy-arp включен на весь bridge-local. Этот параметр позволяет взаимодействовать хостам, находящимся в разных сегментах сети, между друг другом.
ARP протокол работает с MAC адресами. Свой индивидуальный MAC адрес есть у каждой сетевой карты.
Добавляем интерфейсы в мост
Заходим во вкладку ports – нажимаем + и выбираем все интерфейсы:
Во время настройки вас может выкинуть, не пугаемся и просто перезаходим обратно
После получаем такую картину:
Либо делаем это консольно
/interface bridge add arp=proxy-arp name=bridge_local /interface bridge port add bridge=bridge_local interface=ether3 /interface bridge port add bridge=bridge_local interface=ether4 /interface bridge port add bridge=bridge_local interface=ether5 /interface bridge port add bridge=bridge_local interface=ether6 /interface bridge port add bridge=bridge_local interface=ether7 /interface bridge port add bridge=bridge_local interface=ether8 /interface bridge port add bridge=bridge_local interface=ether9 /interface bridge port add bridge=bridge_local interface=ether10
Далее нам необходимо создать DHCP сервер, дать ip нашему роутеру, после этого приступ к настройке выхода в интернет. DHCP сервер нужен для автоматической раздачи IP адресов и настроек для подключения к сети для устройств.
Для начала заходим в IP – Addresses – нажимаем «+», вводим нужный нам ip роутера, назначаем его на созданный bridge, вы можете вписать любой IP адрес на ваше усмотрение, главное чтобы он не пересекался с IP сети, который выдает провайдер:
Консольно
/ip Address add address=192.168.0.0/24 interface=bridge_local network=192.168.0.1
Нам осталось создать DHCP сервер и закинуть его на наш bridge.
Заходим в IP – DHCP Server – Network – нажимаем «+» и вводим данные нашей сети, это адрес сети, шлюз, маска сети, DNS сервера
DNS сервером может выступать все что угодно, но для того, чтобы сеть была управляемой рекомендуется либо использовать роутер как DNS сервер, либо использовать любые другие внутренние устройства, поддерживающие эти функции, к примеру контроллер домена. В нашем случае контроллера нет, поэтому будет использовать роутер как сервер DNS.
Консольно
/ip dhcp-server network add address=192.168.0.1/24 dns-server=192.168.0.1 gateway=192.168.0.1 netmask=24
После заходим в IP – Pool и создаем пул адресов, из которого будут выдаваться адреса для нашей сети, в поле addresses вводим диапазон адресов по типу 192.168.0.2-192.168.0.255 и нажимаем Ok.
Будем использовать диапазон в 249 адресов, ip 192.168.0.1 и диапазон 192.168.0.251-255 оставим под служебные устройства (серверы и прочие)
Консольно
/ip pool add name=dhcp_pool_all ranges=192.168.0.2-192.168.0.250
После переходим обратно в IP – DHCP server – DHCP и нажимаем «+»
Вводим имя сервера, выбираем интерфейсом наш мост, Lease Time – это время аренды, его можно поставить любым, но оптимальным будет 1 день ( запись вида 1 day 00:00:00), выбираем пул адресов, который создали на предыдущем шаге, нажимаем Ok, и у нас опять вылетает WinBox, после этого ждем пока компьютер получит IP адрес и после этого авторизуемся уже по IP.
Консольно
/ip dhcp-server add address-pool=dhcp_pool_all disabled=no interface=bridge_local lease-time=1d name=dhcp_aliance
Последним шагом будет добавление DNS серверов, либо ваших личных, либо которые предоставляет провайдер, либо любых других публичных. Эти DNS сервера будет использовать сам Mikrotik для выхода в интернет, и так же будет их использовать, выступая DNS сервером.
Заходим в IP – DNS и вводим сервера DNS
/ip dns set allow-remote-requests=yes servers=77.88.8.8,8.8.8.8
Настройка локальной сети окончена, переходим к настройке операторов.
Настройка выхода в интернет
Настройка провайдеров
Подключаться будем по статике, поэтому вводим статические настройки, которые предоставляет оператор, вы так же можете подключаться любым другим способом, в сети много мануалов.
Оборудование Mikrotik поддерживает USB модемы, поэтому можно подключаться и через него.
Приступ к настройке
Мы получили статические настройки, вида:
- IP адрес 192.168.1.104
- Маска 255.255.255.0 (24)
- Шлюз 192.168.1.1
- DNS 192.168.1.1
Заходим в ip – addresses и указываем ip адрес, который нам выдал оператор, не забываем указать маску
Делаем это для двух операторов.
На этом этапе следует так же добавить настройку в IP – routes, чтобы роутер знал маршруты через провайдеров, но так как у нас их два настройка будет происходить немного хитрее.
Маркировка пакетов
Мы плавно перешли к тому как будут работать у нас два оператора, можно выполнить простое резервирование канала или любую другую настройку, но наша задача в другом, нам необходимо работать через двух провайдеров одновременно, поэтому настроек больше и они сложнее, в первую очередь настроим маркировку пакетов, чтобы роутер мог понимать откуда прилетел ответ и куда отправлять.
Настройки будем производить через консоль, так как настроек очень много и будет намного удобнее скопировать и исправить парочку строк, чем настраивать все через графический интерфейс.
Начинаем настройку
#Пометим каждое соединение, пришедшее снаружи и адресованное нашему роутеру (тут меняем in-interface на ваш): /ip firewall mangle add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=cin_ISP1 /ip firewall mangle add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=cin_ISP2 #что бы отвечать через те же интерфейсы, откуда пришли запросы, поставим соответствующую роутинг-марку на каждое соединение. /ip firewall mangle add action=mark-routing chain=output connection-mark=cin_ISP1 new-routing-mark=rout_ISP1 passthrough=no /ip firewall mangle add action=mark-routing chain=output connection-mark=cin_ISP2 new-routing-mark=rout_ISP2 passthrough=no #добавим default gateway в каждую из промаркированных таблиц маршрутизации: /ip route add distance=1 gateway=10.100.1.254 routing-mark=rout_ISP1 check-gateway=ping /ip route add distance=1 gateway=10.200.1.254 routing-mark=rout_ISP2 check-gateway=ping #failover через второго провайдера для каждого из шлюзов /ip route add distance=2 gateway=10.200.1.254 routing-mark=rout_ISP1 /ip route add distance=2 gateway=10.100.1.254 routing-mark=rout_ISP2 #разделим трафик на две группы по исх. адресу и порту /ip firewall mangle add src-address=10.1.1.0/24 action=mark-routing chain=prerouting new-routing-mark=lan_out_ISP1 per-connection-classifier=src-address-and-port:2/0 /ip firewall mangle add src-address=10.1.1.0/24 action=mark-routing chain=prerouting new-routing-mark=lan_out_ISP2 per-connection-classifier=src-address-and-port:2/1 #добавим default gateway в каждую из промаркированных для LAN трафика таблиц маршрутизации: /ip route add distance=1 gateway=10.100.1.254 routing-mark=lan_out_ISP1 check-gateway=ping /ip route add distance=1 gateway=10.200.1.254 routing-mark=lan_out_ISP2 check-gateway=ping #failover через второго провайдера для каждого из шлюзов /ip route add distance=2 gateway=10.200.1.254 routing-mark=lan_out_ISP1 /ip route add distance=2 gateway=10.100.1.254 routing-mark=lan_out_ISP2
Важное замечание!
Возьмем 2 неравнозначных канала, например, 100 мбит и 50 мбит. Сбалансируем их через Nth, PCC или ECMP. Какую суммарную пропускную способность получим?
На самом деле — где-то около 100 мбит (самый слабый канал Х раз).
Происходит это потому, что mikrotik понятия не имеет о пропускной способности каналов, он ее не измеряет. Он просто делит трафик на относительно равные группы.
Побороть этот нюанс можно правильно проектируя группы исходящего трафика, с учетом пропускной способности каналов.
Для нашей конфигурации это:
/ip firewall mangle add src-address=10.1.1.0/24 action=mark-routing chain=prerouting new-routing-mark=lan_out_ISP1 per-connection-classifier=src-address-and-port:3/0 /ip firewall mangle add src-address=10.1.1.0/24 action=mark-routing chain=prerouting new-routing-mark=lan_out_ISP1 per-connection-classifier=src-address-and-port:3/1 /ip firewall mangle add src-address=10.1.1.0/24 action=mark-routing chain=prerouting new-routing-mark=lan_out_ISP2 per-connection-classifier=src-address-and-port:3/2
Настроим NAT для выхода в интернет:
/ip firewall nat add action=masquerade chain=srcnat out-interface-list=internet
После этого интернет должен заработать, но не все так просто, интернет то заработал, но теперь мы сталкиваемся с проблемой неработающей телефонии, в случае если SIP сервер находится в облаке, так же сталкиваемся с проблемами нерабочих банк клиентов и кучу других проблем, которые мы огребаем по ходу работы. Можно придумать много решений, мы остановимся на том же, на чем у нас работают два оператора, на маркировке пакетов:
#маркировка SIP трафика до определённого IP. Можно маркировать по портам, и выкидывать в нужный интерфейс, а можно маркировать по IP, что в конечном итоге дает тот же самый результат, но при этом не ломает нам другие гипотетические службы /ip firewall mangle add action=mark-routing chain=prerouting comment="Mark SIP test" dst-address= 11.1.1.1 new-routing-mark=SIP passthrough=no #failover для двух операторов /ip route add comment="SIP – wan1" distance=1 dst-address=11.1.1.1/24 gateway=10.1.1.1 routing-mark=SIP /ip route add comment="SIP – wan2" distance=2 dst-address=11.1.1.1/24 gateway=10.1.1.2 routing-mark=SIP
Так же обеспечим стабильную работу банк клиентов:
#Прикручиваем марку на порты HTTP, HTTPS и другие порты, используемые банк клиентами /ip firewall mangle add action=mark-routing chain=prerouting comment="Mark HTTPS" dst-port= 80,443,9999 new-routing-mark=HTTPS passthrough=no protocol=tcp /ip route add comment="HTTPS to wan1" distance=1 gateway=10.1.1.1 routing-mark=HTTPS /ip route add comment="HTTPS to wan2" distance=2 gateway=10.1.1.2 routing-mark=HTTPS
Прописываем по два маршрута с разным distance для того, чтобы в случае потери связи с первым оператором все перешло на второго
Остаётся совсем немного, прописать правила firewall
Настройка безопасности
Настроек так же много, но данный конфиг универсален и не требует доработок, разве что только пару правил прописать на разрешение связи с облачными службами
#Защищаемся от брутфорса /ip firewall filter add action=add-src-to-address-list address-list=bruteforse_blacklist address-list-timeout=1w3d chain=input comment="bruteforse add to blacklist" connection-state=new dst-port=22,23,3389 protocol=tcp src-address-list=bruteforse_stage3 /ip firewall filter add action=add-src-to-address-list address-list=bruteforse_stage3 address-list-timeout=1w3d chain=input comment="bruteforse add to stage3" connection-state=new dst-port=22,23,3389 protocol=tcp src-address-list=bruteforse_stage2 /ip firewall filter add action=add-src-to-address-list address-list=bruteforse_stage2 address-list-timeout=1w3d chain=input comment="bruteforse add to stage2" connection-state=new dst-port=22,23,3389 protocol=tcp src-address-list=bruteforse_stage1 add action=add-src-to-address-list address-list=bruteforse_stage1 address-list-timeout=2m chain=input comment="bruteforse add to stage1" сonnection-state=new dst-port=22,23,3389 protocol=tcp src-address-list=!alow_ssh #Разрешаем порты основных служб /ip firewall filter add action=accept chain=input dst-port=123,161,500,1701,4500 protocol=udp #Убираем из обработки брандмауэром хорошие подключения /ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related #Разрешаем хорошие и грохаем плохие /ip firewall filter add action=accept chain=forward connection-state=established,related /ip firewall filter add action=drop chain=forward connection-state=invalid /ip firewall filter add action=accept chain=input connection-state=established,related /ip firewall filter add action=drop chain=input connection-state=invalid #Разрешаем порты основных служб /ip firewall filter add action=accept chain=forward dst-port=123,5050-5070,9000-19000 protocol=udp #Разрешаем порты для SIP подключений /ip firewall filter add action=accept chain=forward dst-port=5050-5070 protocol=tcp #Разрешаем PING /ip firewall filter add action=accept chain=input protocol=icmp /ip firewall filter add action=accept chain=output protocol=icmp #Убиваем все что не разрешено (самое главное правильно для безопасности, без которого все настройки бессмысленны /ip firewall filter add action=drop chain=input in-interface-list=internet
Нам остаётся внести некоторые правила для безопасности, после чего ваш роутер будет полностью готов к функционированию:
/ip firewall raw add action=accept chain=prerouting protocol=udp src-port=123 /ip firewall raw add action=accept chain=prerouting dst-port=123 protocol=udp /ip firewall raw add action=accept chain=prerouting dst-port=123 protocol=tcp /ip firewall raw add action=accept chain=prerouting protocol=tcp src-port=123 /ip firewall raw add action=drop chain=prerouting comment="drop bruteforces" src-address-list=bruteforce_blacklist /ip firewall raw add action=drop chain=prerouting comment="drop DNS" dst-port=53 in-interface-list=internet protocol=udp /ip firewall raw add action=drop chain=prerouting comment="drop DNS" dst-port=53 in-interface-list=internet protocol=tcp #Выключаем ненужные сервисы для Mikrotik /ip firewall service-port set ftp disabled=yes set tftp disabled=yes set irc disabled=yes #Выключаем настройку роутера по MAC /tool mac-server set allowed-interface-list=none /tool mac-server mac-winbox set allowed-interface-list=none
Роутер настроен и полностью безопасен.
В настройки firewall можно вносить своё, а можно оставить как есть.
Но на самом деле настройка не до конца выполнена, мы не настраивали IPSec туннели, необходимо только тем, кто использует сервера в облаках.
Настройка IPSec туннелей
Для начала поднимаем VPN туннель на стороне провайдера облачных услуг и выясняем настройки шифрования, настройки внешнего IP, создаем общий ключ. В следующих статьях мы рассмотрим, как правильно поднять VPN-туннель со стороны Azure или Облакотеки.
Для настройки IPSec туннеля на вашей стороны у вас должен быть статический публичный IP адрес, иначе VPN потребуется поднимать другими способами.
Мы создали на стороне облаков VPN, выяснили все настройки, убедились в том, что у нас статика, после этого можно приступать к настройке.
Заходим в IP – IPSec – groups и создаем группы VPN, необходимо создавать по одной группе на каждый туннель: