Установка и настройка m0n0wall

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

В этом обзоре мы детально расскажем о процессе установки и настройки этого программного маршрутизатора. Минимальные системные требования у m0n0wall таковы, что я бы их обобщил до фразы «вряд ли вы у себя найдете настолько древний комп». Поэтому нет смысла забивать голову ненужными цифрами, а если вам приспичит их узнать, то сходите на официальный сайт проекта. Чтобы наш комп хорошо выполнял роль маршрутизатора, в него надо вставить одну (если уже есть встроенная) или две сетевых карты. Однако, не каждая встроенная сетевая плата может быть распознана операционкой роутера, поэтому я бы рекомендовал взять две дискретных карточки, тем более что цена самых простых образцов не превышает ста рублей. Давайте посмотрим на список основных возможностей нашего подопытного, а затем приступим к установке.

  • Настройка через WEB-интерфейс
  • Управление с консоли для установки IP-адреса локального интерфейса, сброса пароля, восстановления настроек по умолчанию, перезагрузки
  • Поддержка WiFi (при наличии в компе совместимой беспроводной сетевой карты), возможна работа в режиме точки доступа.
  • Captive portal
  • Поддержка VLAN’ов (стандарт 802.1q)
  • Поддержка IPv6
  • Фильтрация пакетов согласно правилам, логирование
  • NAT/PAT
  • DHCP-клиент, PPPoE, PPTP подключение к провайдеру
  • IPSec VPN сервер (IKE; поддержка мобильных клиентов и сертификатов)
  • PPTP VPN сервер (с возможностью авторизации на внешнем RADIUS-сервере)
  • Статические маршруты
  • DHCP-сервер и relay
  • Кэширующий DNS-форвардинг
  • DynDNS-клиент
  • SNMP-агент
  • QoS и ограничение скорости (шейпер)

Установка

Сначала нам понадобится iso-образ, который надо записать на болванку. Установка в привычном смысле этого слова является необязательным процессом. m0n0wall прекрасно функционирует будучи загруженным с CD, при этом все свои настройки он хранит в xml-файле на дискете или любой USB-флешке, которую вы подоткнете к ПК. Имхо — удобно. Итак, вставляем CD-диск, дискету или USB-флешку в ПК и включаем всё это хозяйство. На данном этапе сетевухи лучше к сети пока не подключать. После непродолжительной загрузки перед нами появится вот это: главное меню консоли m0n0wallНадо пройти начальную настройку, а именно сконфигурировать хотя бы ту сетевую карту, которая «смотрит» в локальную сеть. Для этого бодренько нажимаем кнопку «1» и Enter, после чего перед вами появится список доступных сетевых карт компа. Как я уже говорил выше, их должно быть как минимум две штуки (см скриншот):список сетевых адаптеров в консоли m0n0wallУ сетевух есть свои имена (выделено желтым на картинке). На скриншоте нас мастер установки спрашивает, хотим ли мы использовать VLAN’ы. Отвечаем НЕТ нажатием кнопок «n» и Enter. Далее нам предложат определить какая сетевая карта будет LAN (для подключения к вашей сети), а какая WAN (для подключения к интернету). Для этого нажмите «a» и Enter, затем воткните кабель вашей локальной сети в любую сетевую карту и нажмите Enter еще разок. На экране должна появиться надпись Detected link-up on interface…. Если так оно и есть, значит все ok и эта сетевая карта теперь будет называться LAN! Остается определить WAN. Для этого нажимаем «a» и Enter, втыкаем кабель от приходящего интернета в оставшуюся свободную сетевуху и жмем Enter еще раз. В ответ должны получить надпись Detected link-up on interface… второй раз. После этого нам предложат определить третью сетевуху. Если в компе её нет, то просто нажмите Enter, чтобы остановить мастера, а если есть и вы хотите её указать, то надо сделать это по аналогии с первыми двумя сетевыми картами. В заключении мы увидим главный вопрос — Do you want to proceed? (y/n). Нажимаем «y» и Enter и наш роутер отправится в перезагруз, чтобы применить все наши настройки. После перезагрузки надо настроить IP-адрес на LAN интерфейсе и включить DHCP-сервер. Нажимаем кнопку «2» и Enter. Нас попросят ввести IP-адрес. Вводим 192.168.1.1 и жмем Enter. Теперь надо указать маску для нашей сети. Просто наберите 24 и нажмите Enter. Последний вопрос — включить ли DHCP-сервер? Отвечаем ДА нажатием «y» и Enter. Теперь надо определить диапазон раздаваемых адресов. Вводите сначала 192.168.1.100, Enter, 192.168.1.199, Enter. После завершения работы мастера нужно будет еще раз нажать Enter, о чем он попросит соответствующей надписью на экране:

настройка локальной сети в консоли m0n0wall

Если вы дошли до этого места без проблем, то можете себя поздравить. Самая нудная часть работы проделана. Теперь можно подключить любой другой компьютер к локальной сети и настраивать m0n0wall через удобный WEB-интерфейс.

Настройка

При входе на web-интерфейс по локальному IP (по умолчанию он 192.168.1.1), система спросит логин и пароль (значения по умолчанию admin и mono соответственно). После входа в браузере отобразится страница состояния системы.

web-интерфейс m0n0wall

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

  1. Внешний интерфейс (WAN) получает IP адрес и сопутствующие параметры автоматически по DHCP.
  2. Весь трафик с локальной сети приходящий на внутренний интерфейс (LAN) пропускается куда угодно.
  3. Включен NAT, т.е. трафик из локальной сети идущий во вне транслируется от имени IP-адреса WAN.
  4. Любые запросы из вне на WAN-интерфейс блокируются.
  5. На LAN интерфейсе настроен DHCP-сервер, т.е. для компов локальной сети m0n0wall раздает IP-адреса.
  6. Администрирование разрешено только из локальной сети
  7. Часовой пояс настроен на ETC/UTC.

Подключаем интернет

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

Настройка WAN в m0n0wall

Нам на выбор предлагают 4 типа подключения: Static, DHCP, PPPoE, PPTP. Изобретать велосипед тут не нужно, лучше сделать всё в соответствии с инструкцией по подключению от провайдера. По завершению всех манипуляций не забываем нажать кнопку Save внизу страницы.Если настройки WAN выставлены корректно, то интернет станет доступен со всех компов локальной сети. В принципе можно больше ничего не настраивать, но в этом случае применение программного маршрутизатора не оправдывает себя. Поэтому, давайте пробежимся по другим разделам web-интерфейса.

General Setup

указываем DNS сервера в m0n0wall

Здесь можно:- поменять имя системы (параметр hostname)
— добавить список DNS-серверов (сюда надо вписать DNS-сервера вашего провайдера)- изменить имя пользователя и пароль, который используется для доступа к настройкам.- изменить часовой пояс

Interfaces (assign)

Если у вас больше двух сетевых плат, то помимо LAN и WAN будут доступны интерфейсы OPTx, где x — просто порядковый номер. Назначаются они автоматически, но мы можем это изменить, кликнув по надписи assign раздела Interfaces.

Назначение интерфейсов в m0n0wall

В сложных сетях трафик может передаваться в отдельных VLANах. Прописать их можно в соответствующей закладке. Итак, в разделе Interfaces у нас отображается каждый присутствующий на машине интерфейс. Кликая по названию интерфейса мы попадем в его настройки. Для каждого интерфейса за исключением WAN можно выставить только основной и дополнительный IP-адрес:Назначение IP-адреса интерфейса в m0n0wall

DHCP-server

Чтобы компьютеры локальной сети получали IP-адреса автоматически от m0n0wall, используется встроенный механизм, настройки которого можно найти в разделе DHCP-server. Здесь определяются диапазоны раздаваемых адресов, можно настроить время аренды адреса, настраивается привязка к интерфейсам маршрутизатора:Настройка DHCP-сервера в m0n0wallЕсли вам нужно, чтобы конкретному компьютеру всегда выдавался один и тот же IP-адрес, можно сделать привязку на основе MAC-адреса. Для этого переместитесь в самый низ страницы, там расположена специальная табличка для резервирования IP-адресов.

Firewall

Один из самых интересных разделов — Rules. Здесь мы можем создавать правила для фильтрации трафика. В правой части экрана отображается таблица с правилами, а над таблицей — закладки, количество которых равно количеству интерфейсов. Соответственно, весь входящий трафик на интерфейсах обрабатывается по правилам этих таблиц. Если мы посмотрим на правила по умолчанию, то для интерфейса WAN будет запрещен весь трафик из вне, в на интерфейсе LAN наоборот — весь трафик из локальной сети наружу (в интернет) разрешается. Сейчас мы добавим несколько правил на интерфейс LAN.

Имейте ввиду: правила работают «до первого совпадения!» Пришел на интерфейс пакет, m0n0wall смотрит таблицу правил для этого интерфейса и сравнивает параметры пакета с выставленными критериями. Правила перебираются начиная с самого верхнего. Как только пакет по параметрам удовлетворяет какому-либо правилу, то над этим пакетом выполняется действие, которое описано в этом правиле (pass, reject, block), перебор прекращается, а m0n0wall переходит к обработке следующего пакета. Например, если первым правилом у нас будет стоят «блокировать всё», а следующие по списку правила будут разрешать нужные типы данных, то у нас все равно будет все блокироваться, т.к. параметры любого пакета будут удовлетворять критериям первого правила.

Настройка firewall в m0n0wall
Итак, наши правила:
1. Разрешаем доступ из локальной сети до m0n0wall
2. Разрешаем доступ на сайты в интернете
3. Разрешаем прохождение протокола ICMP (пинги пр)
4. Запрещаем доступ из локальной сети куда угодно.
При таком наборе правил все компьютеры локальной сети будут иметь доступ в интернет на сайты, но при этом не будет работать, например, ICQ. Набор правил ограничивается только вашей фантазией. Что-то можно разрешать для всех компьютеров, а что-то только для избранных. Самое главное здесь не перестараться и случайно не заблокировать себя. Тогда будет проблематично вернуть настройки правил обратно.

Traffic shaper

Еще одна интересная функция m0n0wall — ограничение скорости (шейпер), которое настраивается посредством специальных правил. Скорость можно ограничить на всю сеть, для выбранного компьютера, для отдельного протокола и т.д. Короче, настраивается эта функция достаточно гибко. Давайте взглянем на основной экран traffic shaper’а.настройка шейпера в m0n0wallДля включения этой функции ставим галку «Enable traffic shaper». Работает это так: Представим, что канал передачи данных это труба, а данные — вода. Чтобы уменьшить количество проходящей воды нужно всего-лишь уменьшить диаметр трубы. В закладке Pipes как раз создаются «трубы» для прохождения трафика. Каждой «трубе» мы можем выставить ограничение по ширине канала (аналогия с диаметром). Я сделал всего одну трубу с шириной канала 512 Кбит/c. Большее количество «труб» имеет смысл делать тогда, когда у нас есть несколько каналов подключения к интернету. Пропускную способность трубы лучше устанавливать чуть меньшей чем ширина интернет-канала. На следующем этапе мы заходим в закладку Queues (очереди). Они нужны для того, что бы на входе трубы разделять трафик на очень важный и менее важный, т.е. какой тип трафика должен первым попасть в трубу, а какой подождет… При создании каждой очереди указывается её вес (значение приоритетности) от 1 до 100. Чем больше вес, тем важнее очередь.

Обратите внимание: сумма весов всех созданных очередей не должна быть больше 100!

Я сделал две очереди: одну с весом 90, другую с весом 10 для нашей единственной «трубы». Т.е. одна очередь для очень важного трафика, который в 90% случаев будет пропускаться первым, и менее важный трафик, который будет пропускаться в 10% случаев. Еще хочу обратить ваше внимание на то, что эти веса справедливы в тот момент, когда «труба» полностью загружена. Иными словами, если важный трафик в определенный момент времени отсутствует, то менее важный трафик вполне может занимать все 100% пропускной способности.
Теперь нужно сказать еще об одном важном моменте: ограничение скорости работает с исходящим трафиком, т.е. в нашем случае всё что пришло из интернета (входящий трафик на WAN) распределяется по очередям и выдается на выход интерфейса LAN (исходящий трафик). Осталось раскидать трафик по очередям. Делается это в закладке Rules. Я создал два правила: 1. трафик ICMP (пинги и пр) помещается в первую очередь с весом 90
2. трафик с интернет-сайтов помещается во вторую очередь с весом 10

Таким образом, если кто-то будет сильно качать инфу с сайта, то задержек в работе протокола ICMP не будет.

Удаленный доступ

Иногда нужно организовать удаленный доступ к локальной сети для компьютеров, которые находятся где-нибудь далеко. Для этого в m0n0wall можно запустить PPTP VPN или IPSec VPN сервер. Для начинающих я рекомендую остановиться на варианте PPTP. Как это настраивается мы подробно рассмотрим в другом обзоре.

Captive portal

Замечательнейшая вещь. Для тех кто не в теме поясню: captive portal — это специальный инструмент, с помощью которого можно контролировать использование интернета третьими лицами, например, гостями в вашей организации, которые иногда просят выпустить их во всемирную паутину. Второй вариант применения — доступа в интернет по времени, например в интернет-кафе или гостинице.
Как это работает: человек подключает свой компьютер к вашей сети, затем в своем браузере набирает адрес какого-нибудь интернет-сайта куда ему нужно зайти, а вместо этого у него открывается специальная страница, где нужно ввести либо логин и пароль либо специальный код доступа (ваучер). Логин с паролем или ваучер действительны определенное время, по истечении которого доступ автоматически закрывается. Это очень удобно, например, если к вам пришел человек и просит дать ему доступ в интернет на час — даете ему бумажку с кодом ваучера и всё. Ваучеры можно сгенерировать заранее в нужном количестве и на нужное время, напечатать бумажки с кодами и отдать, например, секретарю, пусть раздает кому нужно.
Давайте посмотрим как это настраивается. Зайдем в раздел Captive Portal WEB-интерфейса:
captive portal в m0n0wallПеречислю наиболее интересные и нужные опции для работы:

  • Галка Enable captive portal отвечает за включение и выключение функции.
  • Interface — на каком сетевом адаптере будет это работать. По умолчанию LAN.
  • Maximum concurrent connections — максимальное число одновременных подключений для одного пользователя и всех сразу. Значения по умолчанию 4 и 16 соответственно
  • Idle timeout — время, после которого подключенный клиент считается неактивным
  • Hard timeout — время, после которого неактивный клиент принудительно будет отключен
  • Галка Enable logout popup window — вывести в отдельное окно кнопку Logout, что позволит клиенту мгновенно завершить свое подключения не дожидаясь когда система отработает в автоматическом режиме по таймеру Hard timeout
  • Disable concurrent logins — от имени одного пользователя или ваучера одновременно можно работать только с одного компа
  • Enable per-user bandwidth restriction — ограничение максимальной входящей и исходящей скорости для каждого пользователя. Будет работать, если Traffic shaper активирован.
  • Authentication — доступно три опции: доступ без учетных данных, доступ по логину и паролю или по ваучеру, доступ с проверкой на внешнем RADIUS-сервере. Я выбрал второй вариант.
  • Portal page contents — здесь необходимо добавить страницу, куда гость будет вводить логин с паролем или код ваучера. Я уже подготовил шаблончик, вам остается его скачать и подцепить.

Если вы всё выставите так как описано выше и нажмете кнопку Save, а затем попытаетесь с любого компа своей локальной сети выйти в интернет, то перед вами появится вот такая форма:
страница captive portal в m0n0wallТеперь нам необходимо либо создать пользователей либо наштамповать ваучеров. Мы сделаем и то и то. Начнем с пользователей. Для этого перемещаемся на закладку Users и там нажимаем кнопку «+»:
создание пользователей для captive portal в m0n0wallЗатем можно ввести логин, пароль два раза, полное имя (русские буквы не поддерживаются) при необходимости и дату до которой этой пользователь будет работать:
свойства пользователя для captive portal в m0n0wallНажимаем кнопку Save и всё — можно пользоваться интернетом без ограничений от имени этого пользователя.
Теперь посмотрим как создавать ваучеры. Переходим на закладку Vouchers. Ставим галку Enable Vouchers, перемещаемся в конец страницы и жмем Save. После этого у нас появится кнопка «+» в таблице:
создание ваучеров для captive portal в m0n0wallВ этой таблице создаются наборы ваучеров. Давайте нажмем на кнопку «+» и посмотрим что к чему:
свойства ваучеров для captive portal в m0n0wall

  • Roll# — порядковый номер набора. Может быть от 0 до 65535.
  • Minutes per Ticket — сколько минут действует каждый ваучер
  • Count — сколько ваучеров будет в наборе.

Выставляем нужные цифры и жмем кнопку Save. Наш набор появится в таблице, а рядом с ним кнопка в виде листочка:
скачать созданные ваучеры для captive portal в m0n0wallЖмем на неё, после чего откроется файл, который будет содержать коды всех пяти созданных нами ваучеров:
список ваучеров для captive portal в m0n0wallКаждый код можно распечатать на отдельную бумажку и раздавать гостям по необходимости.
Как вы наверное уже догадались, наборов можно создать несколько, т.е. одни ваучеры будут, например, сроком на 1 час, другие ваучеры на 4 часа и т.д. — все зависит от ваших потребностей и фантазии.
Например, вы знаете, что в каком-то наборе все ваучеры использованы. Чтобы обновить набор, достаточно зайти в него нажав кнопку с изображением «е» и затем просто нажать Save.
обновление ваучеров для captive portal в m0n0wall
Если необходимо какой-либо комп выпускать в интернет без проверки в captive portal, то MAC-адрес этого ПК надо добавить на странице Pass-through MAC.
Если вы хотите сделать список «белых» ресурсов куда будет разрешен доступ без проверки в captive portal, то этот список адресов можно сформировать в закладке Allowed IP addresses:
белый список ресурсов для captive portal в m0n0wallПри добавлении IP-адресов в белый список обратите внимание на параметр Direction. Если вы выбираете значение From и указываете IP-адрес компьютера локальной сети, то ПК с этим IP-адресом будет беспрепятственно выходить в интернет на любые сайты. Этим правилом лучше не пользоваться. Если в поле Direction вы указываете значение To, и вводите IP-адрес какого-либо внешнего ресурса, то все компьютеры вашей локальной сети смогут попадать на этот ресурс без проверки в captive portal.

Проверить статус любого ваучера можно в разделе StatusCaptive portal, закладка Test Vouchers:
как проверить ваучер для captive portal в m0n0wallВставляем код ваучера в текстовое поле и нажимаем кнопку Submit.

Остальное

  • В разделе Traffic graph можно посмотреть графики нагрузки на сетевые интерфейсы.
  • Раздел Diagnostics содержит несколько отладочных инструментов, которые могут пригодиться для выявления ошибок в правилах firewall’а или шейпера. Здесь же можно протестировать валидность любого ваучера для Captive portal.
  • Все настройки связанные с WiFi недоступны через WEB-интерфейс, что, однако, не очень удобно. Будем надеяться, что в следующих версиях этот функционал появится.

Заключение

m0n0wall не обладает такими функциями, как резервирование интернет-канала при наличии нескольких подключений к разным провайдерам. Нет функции прокси-сервера, проверки трафика на вирусы, нет встроенного RADIUS-сервера, например, для организации защищенной Wi-Fi сети. Однако, для начинающих m0n0wall подходит идеально, и если вы сможете в нем разобраться, то пересесть на более продвинутое решение в будущем не составит труда. Если же вам нужен дополнительный функционал «из коробки», то я рекомендую посмотреть в сторону zeroshell и pfSense.

Крайний раз статья редактировалась 30.12.2011
Смотрите другие обзоры по программным маршрутизаторам:

m0n0wall как интерконнектор

Знакомство с zeroshell
Установка и настройка zeroshell
Настройка zeroshell: firewall, proxy, AV
Делаем Wi-Fi безопаснее с помощью zeroshell
Настройка zeroshell: ограничение скорости и QoS

Введение в pfSense
Установка pfSense
Настройка pfSense: сетевые интерфейсы

admin

Нужно войти чтобы оставить комментарий.