Темы
Управление оборудованием 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
Управление осуществляется при помощи нескольких инструментов:
- WinBox — утилита, позволяющая администрировать устройства MikroTik со встроенной операционной системой RouterOS и вести наблюдение за их работой. Данная утилита доступна под операционные системы Windows, MacOS и с недавних пор Linux
- WebFig — веб-интерфейс для доступа к настройкам RouterOS, который используется как альтернатива утилите WinBox. WebFig и WinBox имеют схожие интерфейсы и позволяют получить доступ к большинству возможностей RouterOS. Для использования веб-интерфейса нужен только браузер с поддержкой JavaScript. Поддерживает работу по протоколам как HTTP так и HTTPS
- SSH — стандартный способ настройки поддерживается и оборудованием MikroTik. Именно этот способ управления будет основным в этой серии заметок
- Telnet — так же доступен, но не рекомендован к использованию в боевых условиях из-за своей небезопасности (рекомендуется отключать при начальной настройке)
Поскольку в дистрибутиве 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Код: Выделить всё
firewall-cmd --add-service=mndp --permanent
firewall-cmd --add-source-port=20561/udp --permanent
firewall-cmd --reloadКод: Выделить всё
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Если подключились сразу утилитой mactelnet то можно приступить к полной настройке устройства
Вся дальнейшая работа по настройке маршрутизатора будет проходить в Command Line Interface по протоколу SSH или MAC-Telnet.
Установим скорость и дуплекс на всех интерфейсах, а так же зададим соответствующие комментарии
Код: Выделить всё
/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
}Код: Выделить всё
/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 {
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
Код: Выделить всё
/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В выше описанном примере IPv6 назначен интерфейсу смотрящему в локальную сеть статически как обычному хосту, без анонсирования префикса.Примечание: При некоторых условиях доступ по MAC-адресу к сброшенному устройству невозможен. У меня эта ситуация возникла из-за работы RouterOS на виртуальной машине VirtualBox. WinBox на хостовой машине (linux) выдавал сообщение об ошибке "ERR: Could not connect, MacConnection syn timeout." Доступ был получен по link local address ipv6. Эта же проблема отсутствовала при попытке подключиться с гостевой системы Windows
В качестве очередного примера приведу настройку 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-префикс к своему внутреннему интерфейсу (по умолчанию bridge1).
Код: Выделить всё
/ipv6 address add address=2001:470:28:37e:: interface=bridge-local advertise=yesКод: Выделить всё
/ipv6 nd set [ find default=yes ] advertise-dns=yesНастройка идентичности помогает сделать управление сетью более организованным и удобным. Это позволяет администраторам, назначив уникальное имя (идентификатор) маршрутизатору или другому устройству MikroTik в сети, проще идентифицировать устройство при его настройке, разборе журналов событий. Строка может быть любой, но удобней если она будет совпадать с доменным именем устройства
Код: Выделить всё
/system/identity set name=ros.test.ruЕсли Вы намерены использовать Radius-сервер для аутентификации пользователей, то создавать локальных пользователей не нужно. Из-за предосторожности всё же рекомендую создать встроенную учетную запись с произвольным именем и сложным паролем, а встроенного admin'а отключить или удалить.
Код: Выделить всё
/user/add name=UserAdmin password=123456 group=fullКод: Выделить всё
/user/disable adminКод: Выделить всё
/user/remove adminДля авторизации ssh по ключу передаем его на роутер. Создав нового пользователя на предыдущем шаге используем его для передачи ключа на роутер
Код: Выделить всё
scp .ssh/id_route.pub UserAdmin@ros:
ssh rosКод: Выделить всё
/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Код: Выделить всё
Host ros
HostName ros.free-adm.ru
User UserAdmin
IdentityFile /home/user/.ssh/mt_ed25519.pem
IdentitiesOnly=yesСоздадим пул 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.254DNS-сервер (Domain Name System) играет ключевую роль в локальной сети по нескольким причинам:
- Преобразование имен в IP-адреса: DNS позволяет пользователям использовать понятные имена (например, http://www.example.com) вместо числовых IP-адресов (например, 192.168.1.1). Это упрощает доступ к ресурсам в сети, особенно для пользователей, не знакомых с IP-адресацией.
- Упрощение управления сетью: В больших локальных сетях может быть много устройств с различными IP-адресами. DNS позволяет администраторам легко управлять именами устройств, что упрощает процесс администрирования и мониторинга.
- Локальные ресурсы: DNS-сервер может быть настроен для обслуживания локальных доменных имен, что позволяет пользователям в сети легко находить и подключаться к локальным ресурсам (например, принтерам, серверам и другим устройствам) без необходимости запоминать IP-адреса.
- Кэширование: DNS-серверы могут кэшировать результаты запросов, что ускоряет доступ к часто используемым ресурсам и снижает нагрузку на внешние DNS-сервисы. Это может значительно улучшить производительность сети.
- Управление доступом: С помощью DNS можно реализовать различные механизмы управления доступом, включая фильтрацию по доменным именам и перенаправление запросов на определенные IP-адреса в зависимости от нужд организации.
- Упрощение сетевых настроек: В локальных сетях с DHCP (Dynamic Host Configuration Protocol) 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Код: Выделить всё
/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
}Код: Выделить всё
/ip dns set servers=""для 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=""Выставляем ограничение на службы и Отключаем неиспользуемые сервисы
Код: Выделить всё
/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Код: Выделить всё
/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
Код: Выделить всё
/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 является важной практикой в области безопасности. Вот несколько причин, почему это рекомендуется:
- Снижение поверхности атаки: Каждый открытый порт представляет собой потенциальную уязвимость. Отключая неиспользуемые порты, вы уменьшаете количество возможных точек входа для злоумышленников, что снижает риск успешной атаки.
- Защита от несанкционированного доступа: Открытые сервисные порты могут быть использованы для несанкционированного доступа к устройству. Если вы не используете определенные службы, их лучше отключить, чтобы предотвратить возможность доступа через них.
- Уменьшение нагрузки на устройство: Открытые порты могут генерировать ненужный трафик и увеличивать нагрузку на устройство. Отключение неиспользуемых сервисов помогает оптимизировать производительность устройства.
- Упрощение управления: Чем меньше сервисов и портов открыто, тем проще управлять устройством и отслеживать его состояние. Это также облегчает диагностику и мониторинг.
- Соответствие стандартам безопасности: Многие организации и стандарты безопасности (например, PCI DSS) требуют отключения неиспользуемых сервисов и портов как часть политики безопасности.
- Защита от уязвимостей: Некоторые сервисы могут иметь известные уязвимости, которые могут быть использованы злоумышленниками. Отключение этих сервисов помогает защитить устройство от атак, использующих эти уязвимости.
Код: Выделить всё
/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Ограничение MNDP (MikroTik Neighbor Discovery Protocol) в локальной сети может быть обосновано несколькими причинами, связанными с безопасностью, производительностью и управляемостью сети. Вот некоторые из основных аспектов:
- Безопасность:
- Уязвимости: MNDP может быть использован злоумышленниками для получения информации о вашей сети, включая типы устройств, их IP-адреса и другие параметры. Ограничение MNDP на локальную сеть помогает предотвратить утечку этой информации за пределы защищенной среды.
- Атаки: Если MNDP доступен извне, это может создать возможности для атак, таких как подделка соседей или атаки "человек посередине" (MITM).
- Производительность:
- Избыточный трафик: MNDP генерирует дополнительный сетевой трафик. Если протокол не ограничен, он может привести к увеличению нагрузки на сеть, особенно в больших или перегруженных сетях. Ограничение его использования может помочь снизить ненужный трафик и улучшить общую производительность сети.
- Управляемость:
- Контроль доступа: Ограничение MNDP только на локальную сеть позволяет администраторам лучше контролировать, какие устройства могут взаимодействовать друг с другом. Это упрощает управление сетью и позволяет избежать случайных конфликтов или проблем с конфигурацией.
- Упрощение диагностики: При ограничении MNDP локальной сетью администраторы могут легче отслеживать и диагностировать проблемы, поскольку все взаимодействия происходят в пределах контролируемой среды.
- Соблюдение нормативных требований:
- В некоторых случаях организации могут быть обязаны соблюдать определенные стандарты безопасности и защиты данных. Ограничение MNDP локальной сетью может помочь в соблюдении таких требований, предотвращая ненадлежащий доступ к сетевым устройствам.
- Изоляция сетевых сегментов:
- - В больших сетях может быть полезно изолировать различные сегменты сети для повышения безопасности и управления. Ограничение MNDP на локальную сеть помогает обеспечить, чтобы устройства в разных сегментах не могли обнаруживать друг друга ненадлежащим образом.
Ограничиваем область видимости для протокола MNDP локальной сетью
Код: Выделить всё
/ip/neighbor/discovery-settings/set discover-interface-list=LANПодключаемся к 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- 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