Tuesday, March 28, 2017

Практика настройки Mikrotik для чайников

Подготовка


Все описанное тестировалось на 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 и нажимаем [].




Консольная версия

Отключаемся и заходим на устройство под новым пользователем.

Настройка провайдера


Провайдер будет подключаться в первый порт 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].



Консольный вариант

Подключаем кабель провайдера в первый порт устройства.

Подмена 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


Тоже простой вариант, но потребуется уточнить у провайдера следующие параметры (значение указаны в качестве примера):
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].







Консольный вариант


Настройка PPPoE


PPPoE — туннельный протокол для которого не требуется предварительная настройка IP. Конечно, у провайдера может быть пиринг с другими сетями или доступ в свою сеть без ограничения по скорости, которые работают вне PPPoE интерфейса и требуют добавления отдельного маршрута (DualAccess или Russian PPPoE в SOHO роутерах), но подобная конфигурация выходит за рамки HOWTO для начинающих.

Для конфигурации PPPoE потребуется узнать логин и пароль для подключения к сети (обычно выдаются при заключении договора).

Добавляем туннельный интерфейс: [PPP]➙[+]➙[PPPoE Client].

На вкладке [Genaral] указываем имя интерфейса Name=tap1-wan и интерфейс провайдера Interface=eth1-wan.

На вкладке [Dial Out] указываем логин и пароль для подключения, остальные опции по скриншотам.





Консольный вариант

Важно: Если вы используете 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, логин и пароль.


Консольный вариант

Важно: Если вы используете 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-lan: [Interfaces]➙[ether5]➙[Name: eth5-lan]➙[OK];
Переименовываем ether2-ether4 и устанавливаем для них master port: [Interfaces]➙[ether2-4]➙[Name: eth2-4-lan; Master Port=eth5-lan]➙[OK].




Консольный вариант

Интересный момент. Средствами 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]







Консольный вариант

Теперь все локальные Ethernet и wlan интерфейсы объединены под именем br1-lan.

Безопасность беспроводной сети


Вещь муторная(точнее муторно ее описывать), но необходимая.

Добавляем профиль безопасности и указываем пароль для беспроводного подключения: [Wireless]➙[Security Profiles]➙[+]
Name — название профиля;
WPA/WPA2 Pre-Shared Key — ключи для WPA/WPA2(пароль от wi-fi);
Остальное по скриншоту, в завершении [OK].


Консольный вариант


Активируем и настраиваем беспроводной интерфейс: [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 телефон не получит, но подключение должно установиться). 







Консольный вариант


Настройка ip, dhcp-server


Добавляем ip на интерфейса br1-lan: [IP]➙[Addresses]➙[+]➙[Address: 192.168.10.1/24; Interface: br1-lan]➙[OK]



Консольный вариант


Создаем пул адресов для dhcp: [IP]➙[Pool]➙[+]➙[Name: dhcp-pc; Addresses:192.168.10.100-192.168.10.200]➙[OK]



Консольный вариант


Включаем прослушку 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).

Консольный вариант


Настройка сервера доменных имен


Если вас не устраивают DNS от провайдера можно добавить в список свои (можно полностью убрать провайдерские DNS выключив опцию Use peer DNS в соответствующих подключениях).

Включаем прослушку DNS запросов: [IP]➙[DNS]➙[Allow Remote Requests: yes]➙[OK]



Консольный вариант

Теперь локальная сеть работает, перезапускам сетевой интерфейс (или 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]


УсловияДействие
#ChainSrc. AddressDst. AddressProtocolDst.PortIn. IterfaceOut. InterfaceConnection MarkConnection State
0Inputicmpaccept
1Input192.168.10.0/24tcp80,8291,22br1-lannewaccept
2Inputtcp80eth1-wanallow_innewaccept
3Input192.168.10.0/24udp53,123br1-lannewaccept
4Inputestablished,relatedaccept
5Output[!]Invalidaccept
6Forward192.168.10.0/24br1-laneth1-wannew, establishedaccept
7Forward192.168.10.0/24eth1-wanbr1-lanestablished,relatedaccept
8Inputreject
9Outputreject
10Forwardreject

Вкладка [NAT]

УсловияДействие
#ChainSrc. AddressProtocolDst.PortIn. IterfaceOut. Interface
0srcnat192.168.10.0/24eth1-wanmasquerade
1dstnattcp9999eth1-wanredirect
To ports: 80

Вкладка [Mangle]

УсловияДействие
#ChainProtocolDst.PortIn. IterfaceConnection State
0preroutingtcp9999eth1-wannewmark connection
New Connection Mark: allow_in

Консольный вариант

Теперь интернет должен быть доступен, если вам этого достаточно то закрывайте HOWTO и пользуйтесь, если хотите узнать больше дальше пойдет рад дополнений.

Дополнение 1. Имя устройства


Даем устройству имя: [System]➙[Identity]➙[Name: MikRouter]➙[OK]
И задаем его в dns: [IP]➙[DNS]➙[Static]➙[+]➙[Name: mikrouter; Address:192.168.10.1]➙[OK]
Теперь к устройству можно обращаться по доменному имени mikrouter, но только из локальной подсети.
Консольный вариант


Дополнение 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]➙[Packages]➙[Check for updates]➙[Channel: current]➙[Download&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]



Консольный вариант


Дополнение 5. Отключаем лишние службы


Оставим winbox/http/ssh, остальные можно будет включить при необходимости: [IP]➙[Services] выделяем как на скриншоте и нажимаем [x].



Консольный вариант


Дополнение 6. Отключаем обнаружение и ограничиваем доступ по mactelnet


В winbox есть средства обнаружения устройств находящихся в одной физической сети с ПК, это удобно, но зачем соседям знать что у нас за устройство?

Отключаем: [IP]➙[Neighbor]➙[Discovery Interfaces]. Можно оставить обнаружение для br1-lan (локальная сеть), можно убрать на ваш выбор. Для новых интерфейсов обнаружение включено по умолчанию, не стоит от этом забывать.
Консольный вариант


Теперь ограничим доступ по mac-адресу(winbox и mactelnet): [Tools]➙[MAC Server]➙[Telnet Interfaces]
Отключаем([x]all и добавляем br1-lan.
Переходим в [Winbox Interfaces] и повторяем.

Консольный вариант


Дополнение 7. Включаем UPnP


Многие p2p приложения и online игры требуют UPnP (служба динамического открытия портов) для нормальной работы.

Включаем: [IP]➙[UPnP]➙[Enabled: yes]
Добавляем интерфейсы: [Interfaces]➙[+]
External: eth1-wan;
Internal: br1-lan.
Консольный вариант


Дополнение 8. Оверклокинг


Если число устройств в сети возросло настолько, что роутер перестал справляться, можно немного разогнать процессор: [System]➙[RouterBOARD]➙[Settings]➙[CPU Frequency: 750 MHz]

Для RB 951G — это максимальная частота работы CPU.

Консольный вариант

Дополнение 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.