Подготовка
Управление оборудованием MikroTik осуществляется при помощи нескольких инструментов
- WinBox — утилита, позволяющая администрировать устройства MikroTik со встроенной операционной системой RouterOS и вести наблюдение за их работой. Данная утилита доступна под операционные системы Windows, MacOS и с недавних пор Linux
- WebFig — веб-интерфейс для доступа к настройкам RouterOS, который используется как альтернатива утилите WinBox. WebFig и WinBox имеют схожие интерфейсы и позволяют получить доступ к большинству возможностей RouterOS. Для использования веб-интерфейса нужен только браузер с поддержкой JavaScript. Поддерживает работу по протоколам как HTTP так и HTTPS
- SSH — стандартный способ настройки поддерживается и оборудованием MikroTik. Именно этот способ управления будет основным в этой серии заметок
- Telnet — так же доступен, но не рекомендован к использованию в боевых условиях из-за своей небезопасности (рекомендуется отключать при начальной настройке)
Начальная настройка
При помощи WinBox подключаемся к устройству по MAC-адресу с именем admin и пустым паролем. В случае если будет предложено поменять пароль, устанавливаем новый пароль. Далее переходим IP => Addresses и настраиваем IP адрес на интерфейсе к которому подключились проводом. Это пожалуй два желательных действия которые нужно сделать для обеспечения доступа по SSH. Вся дальнейшая работа по настройке маршрутизатора будет проходить в CLI по SSH
Установим скорость и дуплекс на всех интерфейсах, а так же зададим соответствующие комментарии
- Код: выделить все
/interface ethernet {
set [ find default-name=ether1 ] advertise=100M-baseT-full comment="WAN PORT" disable-running-check=no
set [ find default-name=ether2 ] advertise=100M-baseT-full comment="On Bridge" disable-running-check=no
set [ find default-name=ether3 ] advertise=100M-baseT-full comment="On Bridge" disable-running-check=no
}
Создаём МОСТ с admin-mac взятом с интерфейса ether2
- Код: выделить все
:global BridgeName "bridge1"
:global SourceInterface "ether2"
:global AdminMac [/interface ethernet get [find where name=$SourceInterface] mac-address]
/interface bridge add admin-mac=$AdminMac comment="LAN Bridge" name=$BridgeName
/interface bridge port add bridge=$BridgeName interface=$SourceInterface
/interface bridge port add bridge=$BridgeName interface=ether3
# удаляем за собой переменные
:set sourceInterface
:set BridgeName
:set AdminMac
распределяем интерфейсы по interface-list'ам
- Код: выделить все
/interface list {
add comment=ISP name=WAN_IF
add comment="Local NetWork" name=LAN_IF
}
/interface list member {
add comment=ISP interface=ether1 list=WAN_IF
add comment="Local NetWork" interface=bridge1 list=LAN_IF
}
&&&Задаем адрес, шлюз IPv4 и dns servers. Задаем адрес и шлюз IPv6
- Код: выделить все
/ip/address add address=195.0.1.14/24 comment="WAN IPv4 Address" interface=ether1 network=195.0.1.0
/ip address add address=10.10.10.254/24 comment="LAN IPv4 Address" interface=bridge1 network=10.10.10.0
/ip/route add comment="Def route to ISP IPv4" disabled=no dst-address=0.0.0.0/0 gateway=195.0.1.254 routing-table=main suppress-hw-offload=no
/ipv6/address add address=2000:2cc0:13b1:3333::14 advertise=no interface=ether1
/ipv6/route add disabled=no distance=1 dst-address=::/0 gateway=2000:2cc0:13b1:3333::1 routing-table=main scope=30 suppress-hw-offload=no target-scope=10
Примечание: При некоторых условиях доступ по MAC-адресу к сброшенному устройству невозможен. У меня эта ситуация возникла из-за работы RouterOS на виртуальной машине VirtualBox. WinBox на хостовой машине (linux) выдавал сообщение об ошибке "ERR: Could not connect, MacConnection syn timeout." Доступ был получен по link local address ipv6. Эта же проблема отсутствовала при попытке подключиться с гостевой системы Windows
DHCP- Server
Создадим пул IP адресов, сервер, сеть и укажем передаваемые параметры для выдачи клиентам локальной сети 10.10.10.0/24
- Код: выделить все
/ip pool add comment="ranges addesses for Lan" name=dhcp_pool0 ranges=10.10.10.100-10.10.10.253
/ip dhcp-server add address-pool=dhcp_pool0 comment="Server For Lan" interface=bridge1 lease-time=1d name=dhcp1
/ip dhcp-server network add address=10.10.10.0/24 comment="Network config for Lan" dns-server=10.10.10.254 domain=test.ru gateway=\
10.10.10.254 ntp-server=10.10.10.254
Для авторизации ssh по ключу передаем его на роутер
- Код: выделить все
scp .ssh/id_route.pub ros:
ssh ros
Затем импортируем переданный ключ на роутере и задаём предпочтительный тип (Ed25519) для генерации ключа.
- Код: выделить все
/user/ssh-keys import user=admin public-key-file=id_route.pub
/user/ssh-keys print
/ip/ssh set host-key-type=ed25519
Смотрим полученный результат
- Код: выделить все
/ip/ssh print
Настраиваем пользователей
- Код: выделить все
/user/add name=UserAdmin password=123456 group=full
Отключаем пользователя admin
- Код: выделить все
/user/disable admin
Или удаляем его
- Код: выделить все
/user/remove admin
Для изменения MAC адреса применим следующую команду
- Код: выделить все
/interface/ethernet set ether1 mac-address=01:23:45:67:89:00
Для облегчения идентификации устройств настроим identity. Строка может быть любой, но удобней если она будет совпадать с доменным именем устройства
- Код: выделить все
/system/identity set name=ros.test
Опция allow-remote-requests вывешивает 53 порт на все интерфейсы (кэширующий dns-сервер). Нужно прикрыть 53 порт на внешнем интерфейсе в Firewall
- Код: выделить все
/ip dns set allow-remote-requests=yes cache-max-ttl=10m servers=195.0.1.254,2000:2cc0:13b1:3333::1
Настраиваем doh DNS сервера от Google
- Код: выделить все
/tool fetch url=https://curl.se/ca/cacert.pem
/certificate import file-name=cacert.pem passphrase=""
/ip dns set allow-remote-requests=yes cache-max-ttl=10m use-doh-server=https://dns.google/dns-query verify-doh-cert=yes
/ip/dns/static {
add address=8.8.8.8 comment="For doh-server" name=dns.google type=A
add address=8.8.4.4 name=dns.google type=A
add address=2001:4860:4860::8888 name=dns.google type=AAAA
add address=2001:4860:4860::8844 name=dns.google type=AAAA
add comment="forward requests to an authoritative server" forward-to=2000:2cc0:13b1:3333::3 match-subdomain=yes name=free-adm.ru type=FWD
add forward-to=195.0.1.3 match-subdomain=yes name=free-adm.ru type=FWD
}
Статические записи для google DNS были добавлены для установки связи с doh-server, так как не указаны сервера работающие по незащищённому 53 порту. Запись type=FWD направляет все запросы к хостам в домене free-adm.ru на авторитетный сервер отвечающий за зону.
Выставляем ограничение на службы и Отключаем неиспользуемые сервисы
- Код: выделить все
/ip service {
set telnet disabled=yes
set api disabled=yes
set api-ssl disabled=yes
set ftp address=195.0.1.3/32,2000:2cc0:13b1:3333::3/128
set www address=2000:2cc0:13b1:3333::/64,195.0.1.0/24
set ssh address=195.0.1.0/24,2000:2cc0:13b1:3333::/64
set www-ssl address=2000:2cc0:13b1:3333::/64,195.0.1.0/24 disabled=no
set winbox address=195.0.1.0/24,2000:2cc0:13b1:3333::/64
}
Устанавливаем временную зону
- Код: выделить все
/system clock set time-zone-autodetect=no time-zone-name=Europe/Moscow
Настраиваем NTP client и NTP server
- Код: выделить все
/system/ntp/client set enabled=yes
/system/ntp/client servers add address=194.190.168.1
/system/ntp/server set enabled=yes manycast=yes use-local-clock=yes
Вывод текущей даты, времени и временной зоны
- Код: выделить все
/system/clock print
Отключаем неиспользуемые сервисные порты (аналог helper)
- Код: выделить все
/ip/firewall/service-port {
set tftp disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
}
Ограничиваем mac-server и mac-winbox списком интерфейсов, и отключаем mac-ping
- Код: выделить все
/tool mac-server
set allowed-interface-list=LAN_IF
/tool mac-server mac-winbox
set allowed-interface-list=LAN_IF
/tool mac-server ping
set enabled=no
Активируем доступ к выделенной папке по протоколу SMB/CIFS
- Код: выделить все
/ip smb users add name=serg
/ip smb set enabled=yes interfaces=bridge1
/ip smb shares set [ find default=yes ] directory=sata1 disabled=no
Ограничиваем область видимости для протокола MNDP локальной сетью
- Код: выделить все
/ip/neighbor/discovery-settings/set discover-interface-list=LAN
Подключаемся к Radius Server для авторизации на устройстве
- Код: выделить все
/radius add address=195.0.1.3 comment="Login Radius Server" service=login src-address=195.0.1.14
/user/aaa set default-group=full use-radius=yes
Настраиваем отображение статистики по сетевым интерфейсам, а так же по загрузке CPU, RAM и Disk
- Код: выделить все
/tool graphing interface
add interface=ether1
add interface=bridge1
/tool graphing resource
add
Обновление системы RouterOS
Можно выбрать ветку из которой будет производиться обновление
- development
- long-term
- stable
- testing
- Код: выделить все
/system package update/set channel=stable
Проверить наличие обновление
- Код: выделить все
/system package update/check-for-updates
Установить обновление
- Код: выделить все
/system package update/install
Обновление аппаратной прошивки
Проверить наличие обновлений аппаратной прошивки:
- Код: выделить все
/system/routerboard/print
Установить обновления аппаратной прошивки в случае ее наличия:
- Код: выделить все
/system/routerboard/upgrade
Перезагрузить маршрутизатор.