[Из песочницы] Практика настройки Mikrotik для чайников
Есть задача: настроить устройство на базе RouterOS в качестве замены SOHO роутера для дома или небольшого офиса. Это HOWTO, потому технических подробностей будет минимум, Next-Next-Next-Ok и вы получаете готовое к работе устройство, так что приступаем.
Подготовка
Все описанное тестировалось на RouterBOARD RB 951G-2HnD, но может служить инструкцией по конфигурации любого устройства на базе RouterOS 6.25 и выше. Для конфигурации устройства вам потребуется фирменная утилита winbox (для windows), либо mactelnet-client (для linux), конечно у RouterOS есть telnet/http/ssh, но пока про них забываем.
Подключаем ПК к пятому порту Mikrotik (вообще можно использовать любой, кроме первого), переворачиваем устройство и видим на наклейке со штрих-кодом диапазон mac адресов, последний относится к пятому порту, вводим его в окно подключения winbox, либо используем как аргумент mactelnet. Пользователь admin, пароль отсутсвует.
Появится предложение: сохранить базовую конфигурацию, либо обнулить устройство. Выбираем [Remove Configuration]. Устройство перезагрузится.
Добавление пользователя
Первым делом создаем нового пользователя и удаляем admin’а, да об этом все забывают.
Переходим: [System]➙[Users]➙[+].
Name: логин;
Group: full (полный доступ);
Password: пароль;
Confirm Password: пароль еще раз.
Подтверждаем нажатием на [Ok].
В таблице с пользователями выделяем admin и нажимаем [➖].
/user add name=логин group=full password=пароль
/user remove admin
Отключаемся и заходим на устройство под новым пользователем.
Настройка провайдера
Провайдер будет подключаться в первый порт RouterBOARD, остальные четыре и беспроводной интерфейс отданы под домашнюю подсеть 192.168.10.0/24, адрес роутера в домашней подсети: 192.168.10.1, клиентам сети будут раздаваться адреса из диапазона 192.168.10.100–192.168.10.200.
Способы соединения с провайдером бывают различные, и если на физическом уровне у нас Ethernet (даже если он идет от xDLS-модема), то в качестве сетевых протоколов может быть IPoE (Static или DHCP), PPPoE, L2TP, PPTP или их комбинации (вообще PPTP, L2TP без настроенного IP работать не смогут), в добавок ко всему может быть привязка по mac адресу. Постараюсь рассмотреть наиболее частые случаи.
Но для начала переименовываем интерфейс ether1 в eth1-wan, для удобства: [Interfaces]➙[Ether1]➙[Name: eth1-wan]➙[OK].
/interface ethernet set [find default-name=ether1] name=eth1-wan
Подключаем кабель провайдера в первый порт устройства.
Подмена mac-адреса
Не скажу, что все провайдеры используют привязку по mac, но встречаются такие довольно часто, особенно если используется IPoE для привязки IP и защиты от халявщиков.
Подмену можно совершить только через командный режим, так что нажимаем [New Terminal] и вводим:
/interface ethernet set eth1-wan mac-address=00:11:22:33:44:55
где 00:11:22:33:44:55 — mac зарезервированный у провайдера.
Автоматическое получение настроек средствами DHCP.
Наиболее простой вараиант: [IP]➙[DHCP Client]➙[+]➙[Interface: eth1-wan]➙[OK].
/ip dhcp-client add interface eth1-wan disabled=no
Статическая настройка IP
Тоже простой вариант, но потребуется уточнить у провайдера следующие параметры (значение указаны в качестве примера):
IP (ip адрес): 192.0.2.10;
mask (маска): 255.255.255.0(или /24);
gateway (шлюз): 192.0.2.1;
DNS1: 192.0.2.2;
DNS2: 192.0.2.3.
Добавляем IP на интерфейс: [IP]➙[Addresses]➙[+]➙[Address: 192.0.2.10/255.255.255.0; Interface: eth1-wan]➙[OK];
Добавляем default route: [IP]➙[Routes]➙[+]➙[Dst.Address:0.0.0.0/0; Gateway:192.0.2.1; Check gateway: ping; Distance: 1]➙[OK];
Добавляем DNS: [IP]➙[DNS]➙[Servers: 192.0.2.2; 192.0.2.3]➙[OK].
/ip address add address=192.0.2.10/255.255.255.0 interface=eth1-wan
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 check-gateway=ping distance=1
/ip dns set servers=192.0.2.2,192.0.2.3
Настройка PPPoE
PPPoE — туннельный протокол для которого не требуется предварительная настройка IP. Конечно, у провайдера может быть пиринг с другими сетями или доступ в свою сеть без ограничения по скорости, которые работают вне PPPoE интерфейса и требуют добавления отдельного маршрута (DualAccess или Russian PPPoE в SOHO роутерах), но подобная конфигурация выходит за рамки HOWTO для начинающих.
Для конфигурации PPPoE потребуется узнать логин и пароль для подключения к сети (обычно выдаются при заключении договора).
Добавляем туннельный интерфейс: [PPP]➙[+]➙[PPPoE Client].
На вкладке [Genaral] указываем имя интерфейса Name=tap1-wan и интерфейс провайдера Interface=eth1-wan.
На вкладке [Dial Out] указываем логин и пароль для подключения, остальные опции по скриншотам.
/interface pppoe-client add interface=eth1-wan name=tap1-wan disabled=no user=логин password=пароль use-peer-dns=yes add-default-route=yes default-route-distance=0
Важно: Если вы используете PPPoE, то в дальнейшем используйте вместо eth1-wan интерфейс tap1-wan.
Настройка L2TP/PPTP
Вот мы и подошли к самому богатому на подводные камни способу подключения. Оба протокола настраиваются схожим образом, но требуют предварительной настройки IP (средствами DHCP, либо статически). Проблема mikrotik в том, что задав адрес сервера доменным именем, он распознает его в адрес один раз и будет использовать только данный адрес, если адрес поменяется (либо провайдер использует RoundRobin DNS и сервер будет перегружен), то велика вероятность остаться без интернета. Со стороны провайдера тоже могут быть забавные вещи, например DNS сервера доступные только из локальной сети, либо необходимость заранее прописать статический маршрут до сервера PPTP/L2TP, если вам посчастливилось стать клиентом желто-полосатого провайдера, можете смело скачивать и изучать соответствующую инструкцию. Вариант с DualAccess L2TP/PPTP тоже возможен.
Но будем считать, что у вас все хорошо, IP адрес получили средствами DHCP, узнать у провайдера: логин, пароль и сервер vpn, можно приступать к настройке.
Добавляем интерфейс PPTP/L2TP: [PPP]➙[+]➙[PPTP Client или L2TP Client].
На вкладке [General] указываем имя подключения: Name=tun1-wan.
На вкладке [Dial out] указываем сервер PPTP или L2TP, логин и пароль.
/interface pptp-client add name=tun1-wan disabled=no connect-to=сервер_vpn user=логин password=пароль add-default-route=yes default-route-distance=1 profile=default
Важно: Если вы используете L2TP/PPTP, то в дальнейшем используйте вместо eth1-wan интерфейс tun1-wan.
А как-же Yota?
А просто. Если вам попался USB модем, то скорее всего он будет определяться как ethernet интерфейс в [Interfaces]➙[LTE] и достаточно забирать с него IP средствами DHCP. Но для первичной активации модем придется подключить к ПК. Не знаю со всеми моделями модемов так или мне попался неудачный, но без предварительной активации на ПК работать он отказывался.
Другие 3G/4G модемы
Если модем не определяется как сетевая карта, но Mikrotik его видит в [System]➙[Resources]➙[USB], то потребуется создать PPP подключение для интерфейса usb1, в некоторых ситуациях устройство необходимо прежде перевести в режим модема AT командой (ищите на соответствующих форумах). В любом случае вариантов великое множество, один из них описан здесь.
Подготовка интерфейсов для локальной сети
На данный момент интерфейсы ether2-ether5 и wlan1 работают независимо друг от друга, их необходимо объединить в единую среду передачи данных.
Ethernet интерфейсы можно объединить на аппаратном уровне, что повысит скорость передачи данных и снизит нагрузку на CPU (по сравнению с программным мостом). В качестве master port будет использоваться ether5, можно назначить любой, но если появится еще один провайдер, то логично будет подключить его во второй порт (и отключить на нем master port).
Переименовываем ether5 в eth5-wan: [Interfaces]➙[ether5]➙[Name: eth5-lan]➙[OK];
Переименовываем ether2-ether4 и устанавливаем для них master port: [Interfaces]➙[ether2–4]➙[Name: eth2–4-lan; Master Port=eth5-lan]➙[OK].
/interface ethernet set [find default-name=ether5] name=eth5-lan
/interface ethernet set [find default-name=ether2] name=eth2-lan master-port=eth5-lan
/interface ethernet set [find default-name=ether3] name=eth3-lan master-port=eth5-lan
/interface ethernet set [find default-name=ether4] name=eth4-lan master-port=eth5-lan
Интересный момент. Средствами master port можно объединить интерфейсы принадлежащее одному чипсету, на старших моделях чипсетов может быть несколько (колонка switch), интерфейсы с разных чипсетов объединяются через программный Bridge, ну или пачкордом.
Теперь все локальные Ethernet интерфейсы объединены под именем eth5-lan.
Wireless интерфейс существует отдельно от Ethernet, для объединения потребуется прибегнуть к программному мосту (bridge).
Создаем интерфейс моста: [Bridge]➙[+]➙[Name: br1-lan]➙[OK];
Добавляем интерфейсы: [Bridge]➙[Ports]➙[+]➙[Interface: eth5-lan; Bridge: br1-lan]➙[OK]
[Bridge]➙[Ports]➙[+]➙[Interface: wlan1; Bridge: br1-lan]➙[OK]
/interface bridge add name=br1-lan
/interface bridge port add interface=eth5-lan bridge=br1-lan
/interface bridge port add interface=wlan1 bridge=br1-lan
Теперь все локальные Ethernet и wlan интерфейсы объединены под именем br1-lan.
Безопасность беспроводной сети
Вещь муторная (точнее муторно ее описывать), но необходимая.
Добавляем профиль безопасности и указываем пароль для беспроводного подключения: [Wireless]➙[Security Profiles]➙[+]
Name — название профиля;
WPA/WPA2 Pre-Shared Key — ключи для WPA/WPA2(пароль от wi-fi);
Остальное по скриншоту, в завершении [OK].
/interface wireless security-profiles add name=wpa2-protected mode=dynamic-keys authentication-types=wpa-psk,wpa2-psk unicast-chiphers=aes-ccm group-chiphers=aes-ccm wpa-pre-shared-key=ключ_wpa wpa2-pre-shared-key=ключ_wpa2
Активируем и настраиваем беспроводной интерфейс: [Wireless]➙[wlan1]➙[Enable].
На вкладке [Wireless]:
Mode: ap bridge;
Band: 2gHz-B/G/N. Если ваши беспроводные девайсы выпущены несколько лет назад, то логичнее выбрать 2gHz-B/G.;
Frequency: auto. В SOHO устройствах этот параметр называется Канал соответствие можно посмотреть по ссылке. Если не уверены что выбрать, оставляйте auto.;
SSID: Название точки доступа;
Wireless Protocol: 802.11;
Securiity Profile: wpa2-protect. Профиль созданный на предыдущем шаге.;
Bridge Mode: enabled;
Default Authenticate: yes;
Default Forward: yes;
Hide SSID: no. Можно скрыть точку доступа. Но не стоит считать это панацеей.;
Далее вкладка [Nstreme].
Отключаем все.
Как закончили, нажимаем [Ok] и пробуем подключиться (ip телефон не получит, но подключение должно установиться).
/interface wireless set wlan1 disabled=no ssid=MyRouter mode=ap-bridge band=2ghz-b/g/n frequency=2412 bridge-mode=enabled wireless-protocol=802.11 security-profile=wpa2-protect default-authentication=yes default-forwarding=yes hide-ssid=no
/interface wireless nstreme set wlan1 enable-nstreme=no enable-polling=no disable-csma=no
Настройка ip, dhcp-server
Добавляем ip на интерфейса br1-lan: [IP]➙[Addresses]➙[+]➙[Address: 192.168.10.1/24; Interface: br1-lan]➙[OK]
/ip address add address=192.168.10.1/24 interface=br1-lan
Создаем пул адресов для dhcp: [IP]➙[Pool]➙[+]➙[Name: dhcp-pc; Addresses:192.168.10.100–192.168.10.200]➙[OK]
/ip pool add name=dhcp-pc address=192.168.10.100-192.168.10.200
Включаем прослушку dhcp-запросов на интерфейсе br1-lan: [IP]➙[DHCP Server]➙[+]➙[Name: dhcp-pc; Interface: br1-lan; Lease Time: 08:00:00; Address Pool: dhcp-pc]➙[OK]
Теперь надо определиться какие параметры будут отдаваться по dhcp: [IP]➙[DHCP Server]➙[Networks]➙[+]
Address: 192.168.10.0/24;
Gateway: 192.168.10.1;
Netmask: 24;
DNS Servers: 192.168.10.1.
По окончанию [Ok].
На скриншоте в качестве NTP сервера указан адрес роутера, но в базовой поставке раздавать точное время Mikrotik не умеет, можно указать любой другой сервер из сети, либо добавить и настроить пакет ntp (описано в конце HOWTO).
/ip dhcp-server add name=dhcp-pc interface=br1-lan lease-time=08:00:00 address-pool=dhcp-pc
/ip dhcp-server network add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1 netmask=24
Настройка сервера доменных имен
Если вас не устраивают DNS от провайдера можно добавить в список свои (можно полностью убрать провайдерские DNS выключив опцию Use peer DNS в соответствующих подключениях).
Включаем прослушку DNS запросов: [IP]➙[DNS]➙[Allow Remote Requests: yes]➙[OK]
/ip dns set allow-remote-requests=yes
Теперь локальная сеть работает, перезапускам сетевой интерфейс (или dhcp-клиент) для получения ip от роутера и можно использовать для подключения по winbox/http/ssh/telnet/ftp/scp ip:192.168.10.1.
Между устройствами в локальной сети появилось связь, при попытке сделать ping до любого ресурса распознается его адрес, но доступ в интернет все еще отсутствует. Пришло время для последнего крупного пункта: настройки пакетного фильтра.
Пакетный фильтр
RouterOS является разновидностью ОС GNU/Linux, в качестве пакетного фильтра применяется netfilter, не могу сказать работает интерфейс напрямую с модулем ядра или с с использованием iptables, но разработчики постарались сделать синтаксис максимально приближенный к последнему.
Дабы не описывать каждую команду отдельно давайте немного разберемся. Пакетный фильтр настраивается в [IP]➙[Firewall], нас будут интересовать вкладки (таблицы в терминологии iptables) [Filter], [Nat] и [Mangle]. В каждую таблицу можно добавить ряд правил (как и везде кнопкой [+]), правила обрабатываются поочередно сверху вниз, поэтому порядок важен. Каждое правило состоит из Условий, разнесенных по трем вкладкам: General, Advanced, Extra и Действия, вкладка Action, есть еще статистика работы правила, но она нам не интересна. Правило может содержать множество условий, главное не делать их противоречивыми. Если проходя по правилам пакет подходит под все условия, он обрабатывается соответствующим действием и дальше не идет (на самом деле некоторые действия пропускают пакет дальше, просто запомните этот факт если планируете в будущем глубже разобраться с netfilter). В варианте для новичков нам будет достаточно условий из Вкладки General.
Какие будут настройки? У пользователей из локальной сети появится доступ в интернет. Доступ на mikrotik из локальной сети будет ограничен используемыми службами (web, winbox, ssh, dns, ntp), из внешней сети будет открыт доступ по web, но с измененным адресом порта на 9999.
Все необходимые правила описаны в виде таблиц, если боитесь ошибиться или просто лень, открывайте [New terminal] и копируйте в него строки из консольного варианта в конце раздела.
Вкладка [Filter]
Условия | Действие | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
# | Chain | Src. Address | Dst. Address | Protocol | Dst.Port | In. Iterface | Out. Interface | Connection Mark | Connection State | |
0 | Input | icmp | accept | |||||||
1 | Input | 192.168.10.0/24 | tcp | 80,8291,22 | br1-lan | new | accept | |||
2 | Input | tcp | 80 | eth1-wan | allow_in | new | accept | |||
3 | Input | 192.168.10.0/24 | udp | 53,123 | br1-lan | new | accept | |||
4 | Input | established, related | accept | |||||||
5 | Output | [!]Invalid | accept | |||||||
6 | Forward | 192.168.10.0/24 | br1-lan | eth1-wan | new, established | accept | ||||
7 | Forward | 192.168.10.0/24 | eth1-wan | br1-lan | established, related | accept | ||||
8 | Input | reject | ||||||||
9 | Output | reject | ||||||||
10 | Forward | reject |
Вкладка [NAT]
Условия | Действие | ||||||
---|---|---|---|---|---|---|---|
# | Chain | Src. Address | Protocol | Dst.Port | In. Iterface | Out. Interface | |
0 | srcnat | 192.168.10.0/24 | eth1-wan | masquerade | |||
1 | dstnat | tcp | 9999 | eth1-wan | redirect To ports: 80 |
Вкладка [Mangle]
Условия | Действие | |||||
---|---|---|---|---|---|---|
# | Chain | Protocol | Dst.Port | In. Iterface | Connection State | |
0 | prerouting | tcp | 9999 | eth1-wan | new | mark connection New Connection Mark: allow_in |
/ip firewall filter
add chain=input protocol=icmp
add chain=input connection-state=new dst-port=80,8291,22 in-interface=br1-lan protocol=tcp src-address=192.168.10.0/24
add chain=input connection-mark=allow_in connection-state=new dst-port=80 in-interface=eth1-wan protocol=tcp
add chain=input connection-state=new dst-port=53,123 protocol=udp src-address=192.168.10.0/24
add chain=input connection-state=established,related
add chain=output connection-state=!invalid
add chain=forward connection-state=established,new in-interface=br1-lan out-interface=eth1-wan src-address=192.168.10.0/24
add chain=forward connection-state=established,related in-interface=eth1-wan out-interface=br1-lan
add action=drop chain=input
add action=drop chain=output
add action=drop chain=forward
/ip firewall nat
add action=masquerade chain=srcnat out-interface=eth1-wan src-address=192.168.10.0/24
add action=redirect chain=dstnat dst-port=9999 protocol=tcp to-ports=80
/ip firewall mangle
add action=mark-connection chain=prerouting dst-port=9999 new-connection-mark=allow_in protocol=tcp connection-state=new
Теперь интернет должен быть доступен, если вам этого достаточно то закрывайте HOWTO и пользуйтесь, если хотите узнать больше дальше пойдет рад дополнений.
Дополнение 1. Имя устройства
Даем устройству имя: [System]➙[Identity]➙[Name: MikRouter]➙[OK]
И задаем его в dns: [IP]➙[DNS]➙[Static]➙[+]➙[Name: mikrouter; Address:192.168.10.1]➙[OK]
Теперь к устройству можно обращаться по доменному имени mikrouter, но только из локальной подсети.
/system identity set name=MikRouter
/ip dns static add name=mikrouter address=192.168.12.10
Дополнение 2. Настройка времени
Настраиваем часы: [System]➙[Clock]➙[Time]➙[Time Zone Name: Часовой пояс; Time: Текущее время; Date: Текущая дата]➙[OK]
Дополнение 3. Обновление
Обновляем устройство и добавляем пакеты.
Заходим на сайт Mikrotik и загружаем архив с обновлениями (Extra Packages) для своего роутера. Распаковываем и оставляем следующие (6.30.2 — актуальная версия на момент написания, обновления выходят достаточно часто):
advanced-tools-6.30.2-mipsbe.npk
dhcp-6.30.2-mipsbe.npk
multicast-6.30.2-mipsbe.npk
ntp-6.30.2-mipsbe.npk
ppp-6.30.2-mipsbe.npk
routing-6.30.2-mipsbe.npk
security-6.30.2-mipsbe.npk
system-6.30.2-mipsbe.npk
user-manager-6.30.2-mipsbe.npk
wireless-6.30.2-mipsbe.npk
В Winbox открываем [Files] и перетаскиваем средствами drag’n'drop указанные выбранные пакеты (в качестве альтернативы можно загрузить через web-интерфейс, либо по ssh средствами scp).
Для обновления достаточно перезагрузить устройство: [System]➙[Reboot]➙[Yes]
/system reboot
В дальнейшем для обновления не обязательно загружать пакеты: [System]➙[Packages]➙[Check for updates]➙[Channel: current]➙[Download&Install]
/system package update download
/system package update install
Дополнение 4. Настройка ntp
В предыдущих дополнениях мы настроили часы и добавили пакет NTP, теперь его необходимо настроить.
Включаем ntp-client и задаем адреса серверов (можно задать свои любимые) точного времени: [System]➙[NTP Client]➙[Enabled: yes; Primary: 48.8.40.31; Secondary:91.206.16.4]➙[OK]
Включаем прослушку ntp запросов: [System]➙[NTP Server]➙[Enabled: yes]➙[OK]
/system ntp client set enabled=yes primaty-ntp=48.8.40.31 secondary-ntp=91.206.16.4
/system ntp server set enabled=yes
Дополнение 5. Отключаем лишние службы
Оставим winbox/http/ssh, остальные можно будет включить при необходимости: [IP]➙[Services] выделяем как на скриншоте и нажимаем [x].
/ip service
set telnet disabled=yes
set ftp disabled=yes
set api disabled=yes
set api-ssl disabled=yes
set https disabled=yes
set www-ssl disabled=no
set winbox disabled=no
set www disabled=no
Дополнение 6. Отключаем обнаружение и ограничиваем доступ по mactelnet
В winbox есть средства обнаружения устройств находящихся в одной физической сети с ПК, это удобно, но зачем соседям знать что у нас за устройство?
Отключаем: [IP]➙[Neighbor]➙[Discovery Interfaces]. Можно оставить обнаружение для br1-lan (локальная сеть), можно убрать на ваш выбор. Для новых интерфейсов обнаружение включено по умолчанию, не стоит от этом забывать.
/ip neighbor discovery
:foreach i in=[find] do={
set $i discovery=no
}
Теперь ограничим доступ по mac-адресу (winbox и mactelnet): [Tools]➙[MAC Server]➙[Telnet Interfaces]
Отключаем ([x]) all и добавляем br1-lan.
Переходим в [Winbox Interfaces] и повторяем.
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=br1-lan
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=br1-lan
Дополнение 7. Включаем UPnP
Многие p2p приложения и online игры требуют UPnP (служба динамического открытия портов) для нормальной работы.
Включаем: [IP]➙[UPnP]➙[Enabled: yes]
Добавляем интерфейсы: [Interfaces]➙[+]
External: eth1-wan;
Internal: br1-lan.
/ip upnp
set enabled=yes
/ip upnp interfaces
add interface=eth1-wan type=external
add interface=br1-lan type=internal
Дополнение 8. Оверлокинг
Если число устройств в сети возрасло на столько, что роутер перестал справляться, можно немного разогнать процессор: [System]➙[RouterBOARD]➙[Settings]➙[CPU Frequency: 750 MHz]
Для RB 951G — это максимальная частота работы CPU.
/system routerboard settings set cpu-frequency=750MHz
Дополнение 9. Резервная копия настроек
Бекап настроек никогда не будет лишним: [Files]➙[Backup]
Name: имя файла (без расширения);
Password: пароль (если не указывать будет использован пароль от пользователя);
Don’t Encrypt: если нет необходимости шифровать бекап.
/system backup save name=router6.30.2 dont-encrypt=yes
Для восстановления достаточно скопировать файл на другое устройство (желательно той-же серии и с той-же версией RouterOS).
Зайти в [Files]➙[Restore] и выбрать файл.
/system backup load name=router6.30.2.backup
P.S. Если примут, напишу продолжение HOWTO про практику настройки резервирования и прочие хитрости с RouterOS.