Любая вещь должна быть функциональной и надёжной. Это касается как шариковой ручки, так и больших и сложных систем, в которых участвует не один десяток различных компонентов и где от работы одного зависит работа многих. В большинстве случаев в таких системах наблюдаются сбои несмотря на то, что они построены на хорошо отлаженных структурных единицах. Примеры противоположные этому встречаются достаточно редко, но их присутствие радует.
А сейчас зададим вопрос — что бы хотел получить администратор сети от своей работы? В большинстве случаев это стабильную работу оборудования, программного обеспечения и повышения зарплаты. В комплекте также идёт общая защищённость сети, мониторинг в реальном времени за процессами, лёгкость в настройке и управлении. Редко администратор обладает исчерпывающими знаниями во всех областях компьютерных знаний. Зачастую на изучение просто не остаётся времени, когда сроки исполнения работ поджимают. Специально для таких бедолаг пишутся тоны программного обеспечения, которое обещает в один момент сделать всё красиво, удобно и безопасно. Правда часто его исполнение желает лучшего.
Как-то, бродив по просторам Интернета, удалось наткнуться на любопытную вещь, написанную латышскими программистами. Ею оказалась роутерная операционная система 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 MX или аналогичный процессор с архитектурой x86. Стоит отметить, что многопроцессорные системы в данный момент не поддерживаются;
- RAM — минимум 32 MB оперативной памяти (максимум 1GB). Рекомендуется 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).
Для того, чтобы узнать систему с ней нужно поработать. Попытаемся установить и сделать следующую типовую настройку:
- нам нужно подключиться к провайдеру интернет-услуг с помощью протокола PPTP;
- создать VPN-сервер;
- настроить FireWall и дать возможность выхода клиентам через наш сервер в интернет.
Рассмотрим установку с CD, так как она является большинстве случаев наиболее простой.
Для создания загрузочного компакта нужно скачать ISO-файл и записать его на диск, что мы можем сделать с помощью одной из программ для записи дисков. После этого идём в BIOS, ставим там загрузку с CD и перезагружаем компьютер. Вот что предстанет перед нами после 30 секунд шуршания в CD-ROM`е.
Установка системы
И тут сразу проясняется несколько вещей по поводу минимальных требований к аппаратному обеспечению. При загрузке система инициализирует Linux-ядро, cледовательно вся система ни что иное, как очередной Linux-based дистрибутив, позиционирующийся как роутерная операционная система. Отсюда и Pentium 166 и ему подобное оборудование, на которое современная операционная система с такими возможностями попросту не встала бы. Интересным, однако, является тот факт, что разработчики, воспользовавшись ядром, не выложили его изменённую версию, чего требует лицензия GPL. Оставим это на их совести.
После начальной стадии установки система предлагает пользователю выбрать пакеты.
Выбор пакетов
Сказать, что разработчики не стали усложнять жизнь пользователю — ничего не сказать. Да и сама установка лишена неудобств и проблем. Выбираем всё, что нам может понадобиться и нажимаем на клавиатуре клавишу «i».
Внимание!!! Если у вас в системе несколько дисков, то нужно отключить все, кроме того, на который будет установлена система. В противном случае вам грозит форматирование первого попавшегося диска и установка системы именно на него.
Дальше программа спросит производить ли форматирование жесткого диска и оставить ли старые конфигурационные файлы. Последняя опция необходима, если у вас уже была установлена старая версия операционной системы и вы решили её обновить не потеряв при этом настроек.
В большинстве случаев установка не вызывает трудностей, поэтому сразу перейдём к настройке установленной системы. Для доступа к серверу можно использовать следующие средства:
- Локальная терминальная консоль — в двух словах некое подобие shell в Linux-системах на экране компьютера с ОС Mikrotik. В некоторых случаях является единственным способом добраться к серверу;
- Последовательный порт — вы можете подключиться к серверу, используя последовательный COM-порт со следующими настройками:скорость порта 9600 bit/s, 8 бит данных, 1 стоп бит, аппаратное управление потоком (RTS/CTS);
- Доступ по Telnet – возможен доступ по протоколу telnet на стандартный 23 TCP-порт;
- Доступ по SSH – доступ по SSH (secure shell) на стандартный 22 TCP (доступно при установке пакета«security«);
- MACTelnet – возможен доступ по MikroTik MAC Telnet протоколу;
- Winbox — Winbox графическая утилита, для работы с сервером. Обладает всеми необходимыми функциями и простым интерфейсом, что делает её незаменимым помощником. Работает на 8290 TCP-порту (или на 8291 если установлен пакет «security«).
Первоначальная настройка производится с помощью локальной терминальной консоли и со времён Mikrotik 2.8 не претерпела никаких изменений.
Установленная система
Для облегчения задачи разработчики позаботились о написании скриптовой утилиты setup, которая поможет настроить сетевые интерфейсы.
Работа программы setup
Отметим лишь, что достаточно настроить один интерфейс и назначить ему IP-адрес, чтобы продолжить конфигурирование в графическом режиме с помощью утилиты Winbox.
Winbox
Winbox, графическую утилиту для конфигурации сервера, можно скачать на сайте производителя или непосредственно набрав в браузере http://адрес.вашего.нового.сервера и выбрав соответствующий пункт на странице.
Вкратце опишем основные изменения в интерфейсе Winbox по сравнению с версией 2.8.
Внешний вид Winbox
Первое, что бросается в глаза-отсутствие иконок как в старой версии программы и появление новых пунктов меню:
- Bridge;
- Make Support.rif;
- Manual.
В версии дистрибутива 2.9, разработчики решили сгруппировать все настройки по работе с мостами в один пункт. Так же появилась генерация отчётов о состоянии системы в технологическом формате и пункт со справкой, которая никогда не будет лишней.
Вызывает интерес и новый стиль оформления как диалогов, так и элементов управления.
Новый интерфейс
Теперь группы опций можно удобно сворачивать. Учитывая то, что их заметно прибавилось со времён 2.8, эта функция оказалась весьма и весьма кстати. Также появилась возможность задавать диапазоны IP-адресов вида 192.168.2.20-192.168.2.81. В новой реинкорнации Winbox появилась кнопка «Remove», с помощью которой можно не закрывая окно удалить правило/аккаунт и кнопка «Copy». Понравилась добавленная возможность масштабирования окна с графиками в вертикальном направлении. Ещё одна приятная возможность-сохранение открытых окон.
В целом изменения в интерфейсе можно считать удачными. Из неудобств можно отметить отсутствие уже привычных иконок в меню и незначительные «подтормаживания» при открытии некоторых пунктов меню.
Перейдём к более детальной настройке нашей RouterOS, по ходу отмечая отличия версий 2.8 и 2.9.
Для начала настроим второй сетевой интерфейс, который у нас остался без IP-адреса. Сделаем это с помощью пункта меню IP->Addresses, предварительно проверив в «Interfaces», определилась ли вторая сетевая карта.
IP-адреса
В случае, если она не определилась, попробуйте вручную загрузить нужный драйвер, воспользовавшись терминальной консолью. По опыту отметим, что нормально определяются все Realtek на чипах RTL8139/8029, 3c50x, и некоторые ISA-карты. Ничего другого в руки не попадало, но в списке поддерживаемых чипов есть почти все современные. От себя можем посоветовать не брать слишком навороченные сетевые карточки. Вполне возможно, что в 12 MB дистрибутива к ним может не оказаться драйверов.
Создадим PPTP подключение к провайдеру услуг Интернет, щёлкнув пункт меню Interfaces и выбрав в выпадающем списке по нажатии на кнопку «+» пункт PPTP Client. Заполняем все необходимые поля, выбираем будет ли интерфейс использоваться шлюзом по умолчанию и нажимаем кнопку «OK». Если всё введено правильно — подключение заработает в чём вы сможете убедиться два раза кликнув на нём и перейдя на вкладку «Traffic».
Мониторинг трафика
Возможность мониторинга проходящего трафика — очень важная функция, базовые аспекты которой здесь неплохо реализованы.
В версии дистрибутива 2.9 можно наблюдать за загрузкой интерфейсов с помощью веб-браузера. Доступны графики загрузки за последний час, за день, за месяц и год. Для их просмотра достаточно набрать в адресной строке http://адрес.вашего.нового.сервера/, в нашем случае http://192.168.3.44/, и выбрать соответствующий пункт на странице приветствия.
Мониторинг через WEB
Так как Winbox отображает статистику только за несколько последних минут, функцию сложно не назвать полезной.
Следующим шагом нужно дать пользователям возможность подключаться к нашему новому серверу по протоколу PPTP. Для этого нужно включить PPTP Server в пункте меню «PPP», нажав на кнопку PPTP Server и установив флажок возле поля «Enabled». Остальные поля можно не трогать, так как в них указаны принятые параметры по умолчанию.
Настройки PPTP сервера
Теперь создадим один аккаунт для доступа к нашему серверу по VPN. Для этого нужно перейти на вторую закладку «Secrets» и нажав на кнопку со значком «+» в появившемся окне заполнить все поля. Подробнее остановимся на полях Local Address и Remote Address. После подключения клиента он получит адрес, указанный в первом поле, а сервер — указанный во втором. В нашем случае пускай это будут адреса 10.10.0.1 (сервера) и 10.10.0.2 (клиента).
Создание аккаунта клиента
Теперь перейдём к настройке Firewall. Складывается такое впечатление, что в его основе лежит всем известный Iptables, а всё остальное — просто скрипты, которые добавляют и удаляют правила в соответствии с действиями пользователя. Как бы то ни было, Firewall обладает огромным количеством функций, которые порой не под силу аппаратным решениям среднего уровня. Про отличия от версии 2.8 говорить не будем, так как их очень много. Начиная от изменений в интерфейсе (группировка схожих задач) и заканчивая огромным количеством появившихся новых возможностей.
Здесь не будем касаться настроек Firewall, отвечающих за безопасность, так как это отдельная глава хорошей книги, а просто вкратце пройдёмся по нужным правилам. Итак, нам нужно:
- запретить форвардинг (пересылка пакетов между интерфейсами);
- разрешить маскардинг нужных адресов на интерфейс, по которому мы получаем доступ в интернет;
- запретить широковещательные рассылки на порты 137-139, 445 для фильтрации нежелательного трафика.
Для (1) открываем пункт IP->Firewall. Переходим на первую вкладку и выбираем справа в выпадающем меню цепочку Forward. Потом добавляем правило, в котором указываем, что по умолчанию форвардинг для адреса 0.0.0.0 с такой же маской запрещён (Действие DROP на закладке ACTION). Стоит помнить, что Forwarding по-умолчанию всегда включен так же, как и все другие правила файервола. Другими словами ничего не запрещено.
Для (2) переходим на вкладку NAT и добавляем правило в котором говорим, что для IP адресов наших клиентов 10.10.0.0/32 (вся сеть) на интерфейс INTERNET нужно делать «masquerade».
Для (3) нужно создать правила в которых указать, что ко всему трафику, который идёт на TCP/UDP порты 137-139, 445 нужно применить DROP или REJECT.
Если вы всё сделаете правильно, то пользователь сможет без проблем подключиться к вашему серверу по протоколу VPN (PPTP) и получить доступ к ресурсам, предоставляемым провайдером Internet. Всё остальное (QoS, HTTP Proxy и пр.) не составит труда для профессионала.
При наличии определённой сноровки установка и настройка сервера заняла 20 минут.
Средства логирования
В системе присутствуют средства просмотра логов событий. Для работы в среде Windows была разработана функция удалённого логирования событий в журнал, который потом можно просмотреть в mmc-консоли. Для этого необходимо скачать и установить на машине с ОС Windows специальную утилиту, которая будет брать данные с Mikrotik`а и записывать их в системный журнал.
Radius и биллинг
Заслуживает внимания и возможность тесной интеграции с Radius-сервером, что позволяет установив на одном компьютере OS Mikrotik, а на второй Radius-сервер с биллинг-системой, организовать полноценную систему предоставления услуг связи и доступа в Интернет. Базовые возможности биллинга можно организовать скриптами и без Radius-сервера, но о полноценном и удобном использовании в таком случае речи быть не может.
Выводы
Несколько слов в пользу стабильности. Возможности проверить версию 2.9.10 не представилось возможным вследствие её недавнего выхода, но хотим заметить, что версия 2.8.22, которая уже больше года стоит на нашем сервере с указанной выше конфигурацией и обслуживая больше сотни клиентов пережила всего 2 перезагрузки (отключалось питание) и ни разу не проявила себя с плохой стороны. Загрузка процессора в часы пик составила 80% на Pentium 166 MMX, а потребление памяти 80 MB. Можно предположить, что в версии 2.9.10 эти показатели будут выше за счёт увеличения количества функций, но тотального повышения этих показателей ожидать не стоит.
Ознакомившись с новыми функциями и возможностями можно сделать следующий вывод:если вы уже имеете настроенный сервер с RouterOS Mikrotik, который вас полностью устраивает, то не стоит гнаться за модой и апгрейдить свою систему, чтобы просто посмотреть на неё. За увеличеничем количества функций и удобств могут появиться новые «глюки» и проблемы.
В целом система заслуживает громких аплодисментов и бурных оваций. В некоторых случаях один сервер, с установленной на него RouterOS Mikrotik, способен решить все задачи по обслуживанию, защите и предоставлению огромного количества необходимых сервисов как маленькой сети, так и предприятию с не одной сотней компьютеров.