Сисадминство

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

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

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

Установка

Сначала нам понадобится iso-образ, который надо записать на болванку. Установка в привычном смысле этого слова является необязательным процессом. m0n0wall прекрасно функционирует будучи загруженным с CD, при этом все свои настройки он хранит в xml-файле на дискете или любой USB-флешке, которую вы подоткнете к ПК. Имхо — удобно. Итак, вставляем CD-диск, дискету или USB-флешку в ПК и включаем всё это хозяйство. На данном этапе сетевухи лучше к сети пока не подключать. После непродолжительной загрузки перед нами появится вот это: Надо пройти начальную настройку, а именно сконфигурировать хотя бы ту сетевую карту, которая «смотрит» в локальную сеть. Для этого бодренько нажимаем кнопку «1» и Enter, после чего перед вами появится список доступных сетевых карт компа. Как я уже говорил выше, их должно быть как минимум две штуки (см скриншот):У сетевух есть свои имена (выделено желтым на картинке). На скриншоте нас мастер установки спрашивает, хотим ли мы использовать 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 через удобный WEB-интерфейс.

Настройка

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

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

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

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

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

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

General Setup

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

Interfaces (assign)

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

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

DHCP-server

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

Firewall

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

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


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

Traffic shaper

Еще одна интересная функция m0n0wall — ограничение скорости (шейпер), которое настраивается посредством специальных правил. Скорость можно ограничить на всю сеть, для выбранного компьютера, для отдельного протокола и т.д. Короче, настраивается эта функция достаточно гибко. Давайте взглянем на основной экран traffic shaper’а.Для включения этой функции ставим галку «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-интерфейса:
Перечислю наиболее интересные и нужные опции для работы:

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

Выставляем нужные цифры и жмем кнопку Save. Наш набор появится в таблице, а рядом с ним кнопка в виде листочка:
Жмем на неё, после чего откроется файл, который будет содержать коды всех пяти созданных нами ваучеров:
Каждый код можно распечатать на отдельную бумажку и раздавать гостям по необходимости.
Как вы наверное уже догадались, наборов можно создать несколько, т.е. одни ваучеры будут, например, сроком на 1 час, другие ваучеры на 4 часа и т.д. — все зависит от ваших потребностей и фантазии.
Например, вы знаете, что в каком-то наборе все ваучеры использованы. Чтобы обновить набор, достаточно зайти в него нажав кнопку с изображением «е» и затем просто нажать Save.

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

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

Остальное

Заключение

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: сетевые интерфейсы

Exit mobile version