...
...
...

Mikrotik – еще одна ОС для маршрутизаторов на основе Linux

вступление

Любая вещь должна быть функциональной и надежной. Это касается как шариковой ручки, так и больших и сложных систем, в которых участвует не один десяток различных компонентов и где от работы одного зависит работа остальных. В большинстве случаев в таких сложных системах наблюдаются сбои, несмотря на то, что они построены на хорошо отлаженных структурных единицах. Примеры, противоположные этому, встречаются достаточно редко, но сам факт их присутствия радует.

А сейчас зададим вопрос - что бы хотел получить администратор сети от своей работы? В большинстве случаев это стабильное функционирование оборудования, программного обеспечения и повышение зарплаты. В комплекте также идет общая защищенность сети, мониторинг в реальном времени за процессами, легкость в настройке и управлении. Редко технический специалист обладает исчерпывающими знаниями во всех областях компьютерных знаний. Зачастую на изучение просто не остается времени, когда сроки исполнения работ поджимают. Специально для таких бедолаг пишутся тонны программного обеспечения, которое обещает в один момент сделать все красиво, удобно и безопасно. Правда часто его исполнение желает лучшего. Как-то, бродив по просторам Интернета, мне удалось наткнуться на любопытную операционную систему Mikrotik, написанную латышскими программистами. Малютка занимает всего 18 MB в ISO-образе и обладает широким списком возможностей. Меня больше всего из них заинтересовали позиции "PPTP server/client" и управление качеством обслуживания QoS (Quality of Service). С помощью этой связки можно было организовать полноценный VPN- сервер для выдачи своим клиентам интернет-канала с гарантированной полосой пропускания. Полный же список возможностей текущей версии 2.9.10 выглядит следующим образом.

функции для работы с TCP/IP

Firewall и NAT – мощные настройки фильтрации пакетов (применимо к P2P-соединениям), прекрасная реализация SNAT и DNAT, возможность классификации пакетов по:

- MAC-адресу источника;
- IP-адресам (возможность задания сетей);
- диапазонам портов;
- IP-протоколам;
- опциям протоколов (ICMP-типам, TCP-флагам и MSS);
- интерфейсам;
- внутренним цепочкам маркированных пакетов;
- ToS (DSCP);
- по содержимому пакетов;
- по размеру пакетов и др;

Routing – статическая маршрутизация, multi-path маршрутизация, маршрутизация на основе политик (совмещенная с файрволлом), реализация следующих протоколов динамической маршрутизации: RIP v1 / v2, OSPF v2, BGP v4.

Управление качеством обслуживания QoS – возможность динамического управления полосой пропускания. Задания минимальной, максимальной и Burst- скорости для IP-адреса, протокола, подсети, порта, цепочки, маркированной в файерволе. Возможность выбрать тип очереди. Доступны следующие возможные: PCQ, RED, SFQ, FIFO. Реализация осуществлена на основе известного пакета HTB.

Возможности HotSpot – построение plug&play точек коллективного пользования Internet на основе встроеных средств HotSpot с аутентификацией на RADIUS-сервере. Создание walled-garden зон, задания скорости, времени работы клиента и пр.

Протоколы PTP-туннелей - PPTP, PPPoE и L2TP с возможностями PAP, CHAP, MSCHAPv1 и MSCHAPv2 авторизации, RADIUS аутентификации и управления доступом, MPPE шифрования, PPPoE-компрессии, управления полосой пропускания и использования диффиренцированных правил файервола.

Создание простых туннелей - IP2IP-туннели, EoIP (Ethernet over IP).

Использование IPsec - IP security AH и ESP протоколы. MODP Diffie-Hellman группы 1,2,5. Алгоритмы хеширования MD5 и SHA1. DES, алгоритмы шифрования 3DES, AES-128, AES-192, AES-256. Perfect Forwarding Secrecy (PFS) MODP группы 1,2,5.

Proxy – встроеный кэширующий прокси сервер FTP и HTTP/HTTPS, прозрачное DNS- и HTTP-проксирование. Реализация SOCKS, возможность задания ACL (Access Control Lists), построение кэширующих сетей с помощью возможности parent proxy;

DHCP – базовая реализация DHCP-сервера и DHCP-релея, DHCP-клиента, возможность резервирования адресов, поддержка RADIUS.

VRRP – реализация VRRP.

UPnP - поддержка Universal Plug-and-Play.

NTP - Network Time Protocol (сервер и клиент). Возможности синхронизации с GPS-системой.

Monitoring/Accounting – мониторинг IP трафика в реальном времени. Логирование действией файрволла, действий пользователя и поведения системы в целом.

SNMP – доступ к функциям SNMP в режиме "только чтение".

M3P - MikroTik Packet Packer Protocol механизм компрессии трафика и увеличения пропускной способности интерфейсов в целом.

MNDP - MikroTik Neighbor Discovery Protocol. Поддержка Cisco Discovery Protocol (CDP).

Tools – встроеные сетевые утилиты для мониторинга и проверки текущего состояния сети.

функции для работы со вторым уровнем OSI

Беспроводные сети – поддержка беспроводных клиентов и точек доступа IEEE802.11a/b/g. Создание Wireless Distribution System (WDS), виртуальных точек доступа. Реализация 40 и 104-битного шифрования с WEP и WPA-аутентификацией клиентов. Возможность задания ACL. Авторизация клиентов на RADIUS-сервере. Поддержка роуминга и Access Point мостов.

Bridge – возможность создания мостов между интерфейсами с фильтрацией проходящего трафика.

VLAN – поддержка IEEE802.1q Virtual LAN на Ethernet и беспроводных интерфейсах, множественных VLAN-ов и построение VLAN-мостов.

Synchronous - V.35, V.24, E1/T1, X.21, DS3 (T3), протоколы PPP, Cisco HDLC, Frame Relay.

Asynchronous - serial PPP dial-in/dial-out; PAP, CHAP, MSCHAPv1 и MSCHAPv2 протоколы авторизации, RADIUS-авторизация и аккаунтинг. Модемные пулы до 128 портов. Возможность создания интерфейсов с вызовом по требованию.

ISDN - ISDN dial-in / dial-out с PAP, CHAP, протоколы авторизации MSCHAPv1 и MSCHAPv2.

RADIUS-авторизация и управление доступом на основе правил RADIUS-сервера.

SDSL – поддержка Single-line DSL.

Из описания становится ясно для чего данная ОС может применяться. Ее ниша - дешевая многофункциональная замена аппаратным маршрутизаторам третьего уровня. Конечно, программная реализация в большинстве случаев не такая надежная, как аппаратная, но поговорим об этом чуть позже. Для установки RouterOS Mikrotik система должна удовлетворять следующим требованиям:

CPU и материнская плата – частота процессора 100 МГц и выше. В данном случае подойдет Intel Pentium 133 или аналогичный процессор с архитектурой x86. Стоит отметить, что Mikrotik 2.9 не поддерживает многопроцессорные системы.

RAM - минимум 32 MB оперативной памяти (максимум 1 GB). Рекомендуется 64 MB и выше.

Устройство хранения информации - стандартный ATA/IDE-контроллер и носитель с минимум 64 MB места. Карты флэш-памяти и жесткие диски Microdrive могут быть подключены с помощью специального адаптера.

Согласитесь, что на список возможностей и аппаратных ресурсов смотреть немного непривычно. Подобное сочетание мало где можно увидеть. Выходит, что на уже никому не нужном железе можно собрать "конфетку", которая заменит шкаф оборудования ценой не один десяток вечнозеленых условных единиц.

Но перейдем от баснопений к делу и попытаемся установить это чудо на следующую машинку:

Процессор: Intel Pentium 166 MMX

Материнская плата: Noname на чипсете VT82C Apolo VP1

Память: 128 MB Hynix 133

Жесткий диск: Maxtor 200 MB

Сетевая карта: 3Com на чипе 3c905 RTL 8029AS (Rev.0)

Как видим, некоторому оборудованию уже больше 10 лет активной эксплуатации. Для теста была взята одна старая PCI сетевая карта на чипе Realtek RTL8029 и одна сравнительно новая на чипе 3Com 3c509. Цена всей коробки составила < $50. Посмотрим, что из нее можно будет выжать и смогут ли заявленные производителем системные требования удовлетворить потребности не малой сети почти с двумя сотнями компьютеров.

приступим к установке

Хочу обратить внимание, что устанавливать мы будем версию 2.8.24. Cо времен Mikrotik 2.8 процесс инсталляции системы ничуть не изменился, разве что появились некоторое количество дополнительных пакетов.

Всего разработчиками было реализовано четыре способа установки:

. установка с дискет;
. установка с CD;
. смешанная установка (с дискет + по сети);
. полная сетевая установка (нужна сетевая карта с возможностью загрузки по сети PXE).

Для того, чтобы узнать систему, с ней нужно поработать. Попытаемся установить и сделать следующую типовую настройку:

1. подключение к провайдеру интернет-услуг с помощью протокола PPTP;

2. создание VPN-сервер;

3. настройка файрволла и возможности выхода через наш сервер в Интернет.

Рассмотрим установку с CD, так как она является большинстве случаев наиболее простой.

Для создания загрузочного компакта нужно скачать ISO-файл и записать его на диск, что мы можем сделать с помощью одной из программ для записи дисков. После этого идем в BIOS, ставим там загрузку с CD и перезагружаем компьютер. Вот что предстанет перед нами после 30 секунд шуршания в CD- ROM`е.



Рис. 1. Установка системы.

И тут сразу проясняется несколько вещей по поводу минимальных требований к аппаратному обеспечению. При загрузке система инициализирует Linux- ядро, cледовательно Mikrotik суть ни что иное, как очередной Linux-дистрибутив, позиционирующийся как операционная система для маршрутизатора. Отсюда и Pentium 166 и ему подобное оборудование, на которое современная операционная система с такими возможностями попросту не встала бы. Некоторые зададутся вопросом - не нарушают ли разработчики лицензию GPL? При покупке лицензии за небольшую дополнительную плату вам вышлют компакт-диск с ПО, которое было использовано в дистрибутиве. Поэтому с лицензионной точки зрения Mikrotik чист.

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



Рис. 2. Выбор пакетов.

Сказать, что разработчики не стали усложнять жизнь пользователю - ничего не сказать. Да и сама установка лишена неудобств и проблем. Выбираем все, что нам может понадобиться, и нажимаем на клавиатуре клавишу "i".

Внимание!!! Если у вас в системе несколько дисков, то нужно отключить все, кроме того, на который будет установлена система. В противном случае вам грозит форматирование первого попавшегося диска и установка системы именно на него.

Дальше программа спросит, производить ли форматирование жесткого диска и оставить ли старые конфигурационные файлы. Последняя опция необходима, если у вас уже была установлена старая версия операционной системы и вы решили ее обновить, не потеряв при этом настроек.

В большинстве случаев установка не вызывает трудностей, поэтому сразу перейдем к настройке установленной системы. Для доступа к серверу можно использовать следующие средства:

- Локальная терминальная консоль - в двух словах - некое подобие shell в Linux-системах на экране компьютера с ОС Mikrotik. В некоторых случаях является единственным способом добраться к серверу.

- Последовательный порт - вы можете подключиться к серверу, используя последовательный COM-порт со следующими настройками: скорость порта 9600 bit/s, 8 бит данных, 1 стоп бит, аппаратное управление потоком (RTS/CTS).

Доступ по Telnet – возможен доступ по протоколу telnet на стандартный 23 TCP-порт.

Доступ по SSH – доступ по SSH (secure shell) на стандартный 22 TCP (доступно при установке пакета "security").

MAC Telnet – возможен доступ по протоколу MikroTik MAC Telnet.

Winbox - графическая утилита для работы с сервером. Обладает всеми необходимыми функциями и простым интерфейсом, что делает ее незаменимым помощником. Работает на 8290 TCP-порту (или на 8291 если установлен пакет "security").

Первоначальная настройка производится с помощью локальной терминальной консоли и со времен Mikrotik 2.8 не претерпела никаких изменений.



Рис. 3. Установленная система.

Для облегчения задачи разработчики позаботились о написании скриптовой утилиты setup, которая поможет настроить сетевые интерфейсы.



Рис. 4. Работа программы setup.

Отметим лишь, что достаточно настроить один интерфейс и назначить ему IP-адрес, чтобы продолжить конфигурирование в графическом режиме с помощью утилиты Winbox.



Рис. 5. Winbox.

Winbox, графическую утилиту для конфигурации сервера, можно скачать на сайте производителя или непосредственно набрав в браузере
http://адрес.вашего.нового.сервера и выбрав соответствующий пункт на странице.

Вкратце опишем основные изменения в интерфейсе Winbox по сравнению с версией 2.8.



Рис. 6. Внешний вид Winbox.

Первое, что бросается в глаза - отсутствие иконок как в старой версии программы и появление новых пунктов меню:

- Bridge;
- Make Support.rif;
- Manual.

В версии дистрибутива 2.9 разработчики решили сгруппировать все настройки по работе с мостами в один пункт. Так же появилась генерация отчетов о состоянии системы в технологическом формате и пункт со справкой.

Вызывает интерес и новый стиль оформления как диалогов, так и элементов управления.



Рис. 7. Новый интерфейс.

Теперь группы опций можно удобно сворачивать. Учитывая то, что их заметно прибавилось со времен 2.8, эта функция оказалась весьма и весьма кстати. Также появилась возможность задавать диапазоны IP-адресов вида 192.168.2.20-192.168.2.81. В новой реинкорнации Winbox появилась кнопка "Remove", с помощью которой можно не закрывая окно удалить правило/аккаунт и кнопка "Copy". Понравилась добавленная возможность масштабирования окна с графиками в вертикальном направлении. Еще одна приятная возможность - сохранение открытых окон.

В целом изменения в интерфейсе можно считать удачными. Из неудобств можно отметить отсутствие уже привычных иконок в меню и незначительные подтормаживания при открытии некоторых пунктов меню.

Перейдем к более детальной настройке нашей RouterOS, по ходу отмечая отличия версий 2.8 и 2.9.

Для начала настроим второй сетевой интерфейс, который у нас остался без IP-адреса. Сделаем это с помощью пункта меню IP->Addresses, предварительно проверив в "Interfaces", определилась ли вторая сетевая карта.



Рис. 8. IP-адреса.

В случае, если она не определилась, попробуйте вручную загрузить нужный драйвер, воспользовавшись терминальной консолью. По опыту отметим, что нормально определяются все Realtek на чипах RTL8139/8029, 3c50x и некоторые ISA-карты. Ничего другого в руки не попадало, но в списке поддерживаемых чипов есть почти все современные. От себя можем посоветовать не брать слишком навороченные сетевые карточки. Вполне возможно, что в 18 MB дистрибутива к ним может не оказаться драйверов.

Создадим PPTP-подключение к провайдеру услуг Интернет, щелкнув пункт меню Interfaces и выбрав в выпадающем списке по нажатии на кнопку "+" пункт PPTP Client. Заполняем все необходимые поля, выбираем, будет ли интерфейс использоваться шлюзом по умолчанию и нажимаем кнопку "OK". Если все введено правильно - подключение заработает, в чем вы сможете убедиться, два раза кликнув на нем и перейдя на вкладку Traffic.



Рис. 9. Мониторинг трафика.

Возможность мониторинга проходящего трафика - очень важная функция, базовые аспекты которой здесь неплохо реализованы.

В версии дистрибутива 2.9 можно наблюдать за загрузкой интерфейсов с помощью веб-браузера. Доступны графики загрузки за последний час, за день, за месяц и год. Для их просмотра достаточно набрать в адресной строке http://адрес.вашего.нового.сервера/, в нашем случае http://192.168.3.44/, и выбрать соответствующий пункт на странице приветствия.



Рис. 10. Мониторинг через веб.

Так как Winbox отображает статистику только за несколько последних минут, функцию сложно не назвать полезной.

Следующим шагом нужно дать пользователям возможность подключаться к нашему новому серверу по протоколу PPTP. Для этого нужно включить PPTP Server в пункте меню PPP, нажав на кнопку PPTP Server и установив флажок возле поля Enabled. Остальные поля можно не трогать, так как в них указаны принятые параметры по умолчанию.



Рис. 11. Настройки PPTP-сервера.

Теперь создадим один аккаунт для доступа к нашему серверу по VPN. Для этого нужно перейти на вторую закладку "Secrets" и нажав на кнопку со значком "+" в появившемся окне заполнить все поля. Подробнее остановимся на полях Local Address и Remote Address. После подключения клиента он получит адрес, указанный в первом поле, а сервер - указанный во втором. В нашем случае пускай это будут адреса 10.10.0.1 (сервера) и 10.10.0.2 (клиента). Для того, чтобы каждый раз не писать адрес сервера для виртуальных тоннелей, его можно указать один раз в нужном профиле на вкладке Profiles все того же пункта меню PPP в строке Local Address.

Система профилей позволяет гибко управлять группами ваших пользователей, быстро меняя параметры авторизации, шифрования, пространства адресов и других параметров сразу для всех или выбранных аккаунтов.



Рис. 12. Создание аккаунта клиента.

Теперь перейдем к настройке Firewall. Складывается такое впечатление, что в его основе лежит всем известный Iptables, а все остальное - просто скрипты, которые добавляют и удаляют правила в соответствии с действиями пользователя. Как бы то ни было, Firewall обладает огромным количеством функций, которые порой не под силу аппаратным решениям среднего уровня. Про отличия от версии 2.8 говорить не будем, так как их очень много. Начиная от изменений в интерфейсе (группировка схожих задач) и заканчивая огромным количеством появившихся новых возможностей.

Здесь не будем касаться настроек Firewall, отвечающих за безопасность, так как это отдельная глава хорошей книги, а просто вкратце пройдемся по нужным правилам. Итак, нам нужно:

1. запретить широковещательные рассылки на порты 137-139, 445 для фильтрации нежелательного трафика.

2. разрешить маскардинг или NAT нужных адресов на интерфейс, по которому мы получаем доступ в интернет;

3. Разрешить форвардинг для виртуальных IP-адресов наших клиентов.

4. запретить форвардинг (пересылка пакетов между интерфейсами) для всех остальных IP-адресов;

Для (1) нужно создать правила, в которых указать, что ко всему трафику, который идет на TCP/UDP порты 137-139, 445 нужно применить DROP или REJECT.

Это можно сделать командами

|/ip firewall filter add chain=forward protocol=udp dst-port=137-139 |
|/ip firewall filter add chain=forward protocol=tcp dst-port=445 |


Для (2) переходим на вкладку NAT и добавляем правило, в котором говорим, что для IP-адресов наших клиентов 10.10.0.0/32 (вся сеть) на интерфейс INTERNET нужно делать "masquerade" или NAT, если вы знаете, какой IP-адрес вам выдал провайдер и он статический.

|/ip firewall nat add chain=srcnat src-address=10.10.0.0/24 action=masquerade (в случае для маскардинга) |
|/ip firewall nat add chain=srcnat src-address=10.10.0.0/24 action=src-nat to-add |
|resses=193.0.0.193 (в случае с NAT, где 193.0.0.193 адрес, который вам выдает провайдер) |


Для (3) создадим список IP-адресов, которым разрешено пересылать через сервер пакеты и добавим в файервол для правила, первое из которых разрешит этим адресам отправлять пакеты, второе - принимать.

|/ip firewall address-list add address=10.10.0.1 list=allow_inet |
|/ip firewall address-list add address=10.10.0.2 list=allow_inet |


И так для каждого IP-адреса клиентов, которые мы указываем на вкладке Secrets раздела PPP.

|/ip firewall filter add chain=forward src-address-list=allow_inet action=accept |
|/ip firewall filter add chain=forward dst-address-list=allow_inet action=accept |


Для (4) открываем пункт IP->Firewall. Переходим на первую вкладку и выбираем справа в выпадающем меню цепочку Forward. Потом добавляем правило, в котором указываем, что по умолчанию форвардинг для адреса 0.0.0.0 с такой же маской запрещен (действие DROP на закладке ACTION). Стоит помнить, что Forwarding по-умолчанию всегда включен так же, как и все другие правила файрволла. Другими словами, ничего не запрещено.

|/ip firewall filter add chain=forward action=drop |

Данное правило должно находиться последним в списке правил. Если это не так - перетащите его мышкой в самый низ. В него будут попадать все пакеты, не попавшие под другие правила.

Если вы все сделаете правильно, то пользователь сможет без проблем подключиться к вашему серверу по протоколу VPN (PPTP) и получить доступ к ресурсам, предоставляемым провайдером Internet. Все остальное (QoS, HTTP Proxy и пр.) не составит труда для профессионала.

В дополнение к сказанному хотелось бы отметить, что у многих почему-то возникает много проблем, когда в описанной схеме нужно сделать портмаппинг (опубликовать какой-то порт внутреннего компьютера для доступа извне).

Это делается одной простой строкой в файрволле

|/ip firewall nat add chain=dstnat dst-address=193.0.0.193 protocol=tcp dst-port= |
|3389 action=dst-nat to-addresses=10.10.0.2 to-ports=3389 |


Где 193.0.0.193 – IP-адрес, который виден из интернета, 10.10.0.2 – IP-адрес компьютера вашего клиента после того, как он устанавливает VPN- соединение с сервером. Описанное правило разрешает подключаться по RDP (Remote Desktop Protocol) к компьютеру, находящемуся внутри виртуальной сети.

При наличии определенной сноровки установка и настройка сервера заняла 20 минут.

средства логирования

В системе присутствуют средства просмотра логов событий. Для работы в среде Windows была разработана функция удаленного логирования событий в журнал, который потом можно просмотреть в mmc-консоли. Для этого необходимо скачать с сайта разработчика и установить на машине с ОС Windows специальную утилиту, которая будет брать данные с Mikrotik`а и записывать их в системный журнал.

RADIUS и биллинг

Заслуживает внимания и возможность тесной интеграции с RADIUS-сервером, что позволяет, установив на одном компьютере OS Mikrotik, а на втором - RADIUS-сервер с биллинг-системой, организовать полноценную систему предоставления услуг связи и доступа в Интернет. Базовые возможности биллинга можно организовать скриптами и без RADIUS-сервера, но о полноценном и удобном использовании в таком случае речи быть не может.

выводы

Хотим заметить, что версия 2.8.22, которая уже больше года стоит на нашем сервере с указанной выше конфигурацией и обслуживая больше сотни клиентов пережила всего 2 перезагрузки (отключалось питание) и ни разу не проявила себя с плохой стороны. Загрузка процессора в часы пик составила 80% на Pentium 166 MMX, а потребление памяти 80 MB. Можно предположить, что в версии 2.9.10 эти показатели будут выше за счет увеличения количества функций, но тотального повышения этих показателей ожидать не стоит.

Ознакомившись с новыми функциями и возможностями можно сделать следующий вывод: если вы уже имеете настроенный сервер с RouterOS Mikrotik, который вас полностью устраивает, то не стоит гнаться за модой и апгрейдить свою систему, чтобы просто посмотреть на нее. С увеличеничем количества функций и удобств могут появиться и новые проблемы, хотя разработчик и старается оградить своих клиентов от них.

В целом система заслуживает громких аплодисментов и бурных оваций. В некоторых случаях один сервер с установленной на него RouterOS Mikrotik способен решить все задачи по обслуживанию, защите и предоставлению огромного количества необходимых сервисов как маленькой сети, так и предприятию с не одной сотней компьютеров.



Александр Кузьмицкий, www.drivermania.ru.


© Сетевые решения