RouterOS: Настройка системы

Записки и примеры конфигураций IOS/RouterOS

Модератор: ROOT

RouterOS: Настройка системы

Сообщение ROOT » 29 ноя 2024, 20:43

Оглавление


Темы
 Управление оборудованием MikroTik 
 Начальная настройка 
 Настройка портов Ethernet 
 Создание моста 
 Создаём interface-list'ы 
 Назначение IPv4 и IPv6 адресов и задание маршрутов 
 Идентичность для устройства 
 Настраиваем пользователей 
 Добавляем SSH ключ 
 DHCP-Server 
 DNS-Server для локальной сети 
 Ограничиваем и отключаем неиспользуемые сервисы 
 Временная зона, NTP Client и Server для локальной сети 
 Доступ к роутеру по SMB/CIFS 
 Отключаем неиспользуемые сервисные порты 
 Ограничения для mac-server и mac-winbox 
 Ограничение MNDP локальной сетью 
 Подключаемся к Radius Server 
 Графики статистики 
 Обновление RouterOS 
Дополнительные материалы
RouterOS: Настройка Firewall


 Управление оборудованием MikroTik 
Управление осуществляется при помощи нескольких инструментов:
  • WinBox — утилита, позволяющая администрировать устройства MikroTik со встроенной операционной системой RouterOS и вести наблюдение за их работой. Данная утилита доступна под операционные системы Windows, MacOS и с недавних пор Linux
  • WebFig — веб-интерфейс для доступа к настройкам RouterOS, который используется как альтернатива утилите WinBox. WebFig и WinBox имеют схожие интерфейсы и позволяют получить доступ к большинству возможностей RouterOS. Для использования веб-интерфейса нужен только браузер с поддержкой JavaScript. Поддерживает работу по протоколам как HTTP так и HTTPS
  • SSH — стандартный способ настройки поддерживается и оборудованием MikroTik. Именно этот способ управления будет основным в этой серии заметок
  • Telnet — так же доступен, но не рекомендован к использованию в боевых условиях из-за своей небезопасности (рекомендуется отключать при начальной настройке)
Подготовка рабочего места в Linux
Для начала скачиваем WinBox с сайта MikroTik для Linux или под нужную Вам иную операционную систему необходимой разрядности. Если на рабочей станции, с которой планируется осуществлять управление, включен firewall, то нужно открыть udp source-port 20561 и tcp 8291 port для работы с протоколом MikroTik Neighbor Discovery Protocol MNDP. Этот шаг очень важен и даёт возможность находить соседние устройства (Neighbor) и подключаться по MAC-адресам.
Поскольку в дистрибутиве Fedora нет готового пакета для установки MAC-Telnet, то скачиваем исходники с github и собираем программу своими силами
Код: выделить все
wget http://github.com/haakonnessjoen/MAC-Telnet/tarball/master -O mactelnet.tar.gz
tar zxvf mactelnet.tar.gz
cd haakonness*/
./autogen.sh
make all install

Открываем доступ по mndp (Mikrotik Neighbor Discovery Protocol) для обнаружения устройств в сети. Для установления подключения по MAC-адресу в Winbox и mactelnet нужно открыть порт источника udp 20561.
Код: выделить все
firewall-cmd --add-service=mndp --permanent
firewall-cmd --add-source-port=20561/udp --permanent
firewall-cmd --reload

Перечислю список портов используемых при управлении оборудованием MikroTik:
Код: выделить все
5678/udp - Mikrotik Neighbor Discovery Protocol
8291/tcp - Winbox GUI
20561/udp - MAC Winbox GUI (source-port)
6343/tcp - Default OpenFlow port
8080/tcp - HTTP Web Proxy
8728/tcp - API
8729/tcp - API-SSL



 Начальная настройка 
При помощи WinBox подключаемся к устройству по MAC-адресу с именем admin и пустым паролем. Первое что будет предложено это ознакомиться с лицензией:
Код: выделить все
Do you want to see the software license? [Y/n]: n

Рекомендую пропустить просмотр лицензии так как она очень длинная и на её пролистывание уходит слишком много времени. Далее будет предложено поменять пароль, устанавливаем новый пароль. Далее переходим IP => Addresses и настраиваем IP адрес на интерфейсе к которому подключились проводом. Это пожалуй два желательных действия которые нужно сделать для обеспечения доступа по SSH.
Если подключились сразу утилитой mactelnet то можно приступить к полной настройке устройства
Вся дальнейшая работа по настройке маршрутизатора будет проходить в Command Line Interface по протоколу SSH или MAC-Telnet.


 Настройка портов Ethernet 
Установим скорость и дуплекс на всех интерфейсах, а так же зададим соответствующие комментарии
Код: выделить все
/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
}

Если требуется изменить MAC адреса, то воспользуемся следующей командой:
Код: выделить все
/interface/ethernet set ether1 mac-address=01:23:45:67:89:00



 Создание моста 
Создаём МОСТ с 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 auto-mac=no 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'ам
Код: выделить все
/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 и IPv6 адресов и задание маршрутов 
&&&Задаем адрес, шлюз IPv4 и 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
/ipv6/address add address=2000:2cc0:13b1:3333::14 advertise=no interface=ether1

/ip/route add check-gateway=ping comment="Default Gateway 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/route add check-gateway=ping comment="Default Gateway to ISP IPv6" 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

В выше описанном примере IPv6 назначен интерфейсу смотрящему в локальную сеть статически как обычному хосту, без анонсирования префикса.
В качестве очередного примера приведу настройку IPv6 от туннельного брокера. Hurricane Electric предоставляет готовые к использованию команды для RouterOS в разделе "Примеры конфигураций":
Код: выделить все
/interface 6to4 add comment="Hurricane Electric IPv6 Tunnel Broker" disabled=no \
 local-address=194.105.56.170 mtu=1280 name=sit1 remote-address=216.66.80.90
/ipv6 route add comment="" disabled=no distance=1 dst-address=2000::/3 gateway=2001:470:27:37e::1 scope=30 target-scope=10
/ipv6 address add address=2001:470:27:37e::2/64 advertise=no disabled=no eui-64=no interface=sit1

Эти команды настроят сам туннель - маршрутизатор сможет подключаться к узлам IPv6, но конечные пользовательские устройства (компьютеры, планшеты, телефоны) еще не будут иметь возможности подключения к IPv6.
Чтобы иметь возможность назначать IPv6-адреса своим клиентам, вы должны добавить маршрутизируемый IPv6-префикс к своему внутреннему интерфейсу (по умолчанию bridge1).
Код: выделить все
/ipv6 address add address=2001:470:28:37e:: interface=bridge-local advertise=yes

Включите рекламу DNS-сервера через сетевое обнаружение
Код: выделить все
/ipv6 nd set [ find default=yes ] advertise-dns=yes

После этого включите IPv6 на устройстве, и у вас должно появиться подключение IPv6. http://ipv6-test.com можно использовать для проверки подключения IPv6.


 Идентичность для устройства 
Настройка идентичности помогает сделать управление сетью более организованным и удобным. Это позволяет администраторам, назначив уникальное имя (идентификатор) маршрутизатору или другому устройству MikroTik в сети, проще идентифицировать устройство при его настройке, разборе журналов событий. Строка может быть любой, но удобней если она будет совпадать с доменным именем устройства
Код: выделить все
/system/identity set name=ros.test.ru



 Настраиваем пользователей 
Если Вы намерены использовать Radius-сервер для аутентификации пользователей, то создавать локальных пользователей не нужно. Из-за предосторожности всё же рекомендую создать встроенную учетную запись с произвольным именем и сложным паролем, а встроенного admin'а отключить или удалить.
Код: выделить все
/user/add name=UserAdmin password=123456 group=full

Отключаем пользователя admin
Код: выделить все
/user/disable admin

Или удаляем его
Код: выделить все
/user/remove admin



 Добавляем SSH ключ 
Для авторизации ssh по ключу передаем его на роутер. Создав нового пользователя на предыдущем шаге используем его для передачи ключа на роутер
Код: выделить все
scp .ssh/id_route.pub UserAdmin@ros:
ssh ros

Затем импортируем переданный ключ на роутере и задаём предпочтительный тип (Ed25519) для ключа.
Код: выделить все
/user/ssh-keys import user=UserAdmin public-key-file=id_route.pub
/user/ssh-keys print
/ip/ssh set host-key-type=ed25519

Смотрим полученный результат
Код: выделить все
/ip/ssh print

С целью упрощения использования SSH рекомендую использовать файл настройки SSH-клиента ~/.ssh/config, где можно указать параметры для подключения.
Код: выделить все
Host ros
    HostName ros.free-adm.ru
    User UserAdmin
    IdentityFile /home/user/.ssh/mt_ed25519.pem
    IdentitiesOnly=yes



 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



 DNS-Server для локальной сети 
DNS-сервер (Domain Name System) играет ключевую роль в локальной сети по нескольким причинам:
  1. Преобразование имен в IP-адреса: DNS позволяет пользователям использовать понятные имена (например, http://www.example.com) вместо числовых IP-адресов (например, 192.168.1.1). Это упрощает доступ к ресурсам в сети, особенно для пользователей, не знакомых с IP-адресацией.
  2. Упрощение управления сетью: В больших локальных сетях может быть много устройств с различными IP-адресами. DNS позволяет администраторам легко управлять именами устройств, что упрощает процесс администрирования и мониторинга.
  3. Локальные ресурсы: DNS-сервер может быть настроен для обслуживания локальных доменных имен, что позволяет пользователям в сети легко находить и подключаться к локальным ресурсам (например, принтерам, серверам и другим устройствам) без необходимости запоминать IP-адреса.
  4. Кэширование: DNS-серверы могут кэшировать результаты запросов, что ускоряет доступ к часто используемым ресурсам и снижает нагрузку на внешние DNS-сервисы. Это может значительно улучшить производительность сети.
  5. Управление доступом: С помощью DNS можно реализовать различные механизмы управления доступом, включая фильтрацию по доменным именам и перенаправление запросов на определенные IP-адреса в зависимости от нужд организации.
  6. Упрощение сетевых настроек: В локальных сетях с DHCP (Dynamic Host Configuration Protocol) DNS-сервер может автоматически обновлять записи о новых устройствах, что облегчает настройку и уменьшает вероятность ошибок.
  7. Поддержка служб: Многие сетевые службы, такие как электронная почта, веб-серверы и другие приложения, зависят от DNS для корректной работы. DNS обеспечивает необходимую инфраструктуру для правильного функционирования этих служб.
DNS-сервер является важным компонентом локальной сети, который упрощает работу пользователей и администраторов, улучшает производительность и обеспечивает более эффективное управление сетевыми ресурсами.
Опция 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 dns set servers=""

Убираем все DNS-серверы не относящиеся к DOH:


для CloudFlare (1.1.1.1):
Код: выделить все
/tool fetch url=https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
/certificate import file-name=DigiCertGlobalRootCA.crt.pem passphrase=""
/ip dns set allow-remote-requests=yes cache-max-ttl=10m use-doh-server=https://1.1.1.1/dns-query verify-doh-cert=yes
/ip dns set servers=""

Нам здесь уже не нужны статические записи DNS, как для google, поскольку в ссылке используется IP адрес, а не имя как для google.


 Ограничиваем и отключаем неиспользуемые сервисы 
Выставляем ограничение на службы и Отключаем неиспользуемые сервисы
Код: выделить все
/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
}



 Временная зона, NTP Client и Server для локальной сети 
Устанавливаем временную зону
Код: выделить все
/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



 Доступ к роутеру по SMB/CIFS 
Активируем доступ к выделенной папке по протоколу SMB/CIFS
Код: выделить все
/ip/smb/users add name=serg password=newpassword
/ip/smb set enabled=yes interfaces=bridge1
/ip/smb/shares set [ find default=yes ] directory=sata1 disabled=no

смена пароля для пользователя
Код: выделить все
/ip/smb/user set [find name="serg"] password=MSpaSSwd



 Отключаем неиспользуемые сервисные порты 
Отключение неиспользуемых сервисных портов в MikroTik является важной практикой в области безопасности. Вот несколько причин, почему это рекомендуется:
  1. Снижение поверхности атаки: Каждый открытый порт представляет собой потенциальную уязвимость. Отключая неиспользуемые порты, вы уменьшаете количество возможных точек входа для злоумышленников, что снижает риск успешной атаки.
  2. Защита от несанкционированного доступа: Открытые сервисные порты могут быть использованы для несанкционированного доступа к устройству. Если вы не используете определенные службы, их лучше отключить, чтобы предотвратить возможность доступа через них.
  3. Уменьшение нагрузки на устройство: Открытые порты могут генерировать ненужный трафик и увеличивать нагрузку на устройство. Отключение неиспользуемых сервисов помогает оптимизировать производительность устройства.
  4. Упрощение управления: Чем меньше сервисов и портов открыто, тем проще управлять устройством и отслеживать его состояние. Это также облегчает диагностику и мониторинг.
  5. Соответствие стандартам безопасности: Многие организации и стандарты безопасности (например, PCI DSS) требуют отключения неиспользуемых сервисов и портов как часть политики безопасности.
  6. Защита от уязвимостей: Некоторые сервисы могут иметь известные уязвимости, которые могут быть использованы злоумышленниками. Отключение этих сервисов помогает защитить устройство от атак, использующих эти уязвимости.
В целом, отключение неиспользуемых сервисных портов является важным шагом в обеспечении безопасности сетевой инфраструктуры и помогает защитить устройства от потенциальных угроз.
Код: выделить все
/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-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



 Ограничение MNDP локальной сетью 
Ограничение MNDP (MikroTik Neighbor Discovery Protocol) в локальной сети может быть обосновано несколькими причинами, связанными с безопасностью, производительностью и управляемостью сети. Вот некоторые из основных аспектов:

  1. Безопасность:
    • Уязвимости: MNDP может быть использован злоумышленниками для получения информации о вашей сети, включая типы устройств, их IP-адреса и другие параметры. Ограничение MNDP на локальную сеть помогает предотвратить утечку этой информации за пределы защищенной среды.
    • Атаки: Если MNDP доступен извне, это может создать возможности для атак, таких как подделка соседей или атаки "человек посередине" (MITM).
  2. Производительность:
    • Избыточный трафик: MNDP генерирует дополнительный сетевой трафик. Если протокол не ограничен, он может привести к увеличению нагрузки на сеть, особенно в больших или перегруженных сетях. Ограничение его использования может помочь снизить ненужный трафик и улучшить общую производительность сети.
  3. Управляемость:
    • Контроль доступа: Ограничение MNDP только на локальную сеть позволяет администраторам лучше контролировать, какие устройства могут взаимодействовать друг с другом. Это упрощает управление сетью и позволяет избежать случайных конфликтов или проблем с конфигурацией.
    • Упрощение диагностики: При ограничении MNDP локальной сетью администраторы могут легче отслеживать и диагностировать проблемы, поскольку все взаимодействия происходят в пределах контролируемой среды.
  4. Соблюдение нормативных требований:
    • В некоторых случаях организации могут быть обязаны соблюдать определенные стандарты безопасности и защиты данных. Ограничение MNDP локальной сетью может помочь в соблюдении таких требований, предотвращая ненадлежащий доступ к сетевым устройствам.
  5. Изоляция сетевых сегментов:
    • - В больших сетях может быть полезно изолировать различные сегменты сети для повышения безопасности и управления. Ограничение MNDP на локальную сеть помогает обеспечить, чтобы устройства в разных сегментах не могли обнаруживать друг друга ненадлежащим образом.
Таким образом, ограничение MNDP локальной сетью является важной мерой для повышения безопасности, улучшения производительности и упрощения управления сетевой инфраструктурой.
Ограничиваем область видимости для протокола MNDP локальной сетью
Код: выделить все
/ip/neighbor/discovery-settings/set discover-interface-list=LAN



 Подключаемся к Radius Server 
Подключаемся к Radius Server для авторизации на устройстве
Код: выделить все
/radius add address=195.0.1.3 secret=password 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

Перезагрузить маршрутизатор.
Администрирование Fedora Linux + настройка сети и прочая IT-Ботва


Для желающих поддержать
Карта SB: 5469 4009 6510 2267


Лучше ужасный конец, чем ужас без конца!
Аватар пользователя
ROOT
Администратор
 
Сообщений: 436
Зарегистрирован: 01 авг 2011, 09:36
Откуда: Моск. обл., г. Железнодорожный

Вернуться в CISCO / MikroTik

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron