Установка и настройка m0n0wall Печать
Автор: Administrator   
19.11.10 10:28
Установка и настройка m0n0wall


Расскажу немного о конфигурировании программного маршрутизатора m0n0wall. Неплохая штукенция на мой взгляд, отличается от аналогов чуть ограниченным числом функций и как следствие - меньшим количеством глюков и простотой. На момент написания статьи была доступна версия 1.32. Чуть больше описания о программных маршрутизаторах как таковых можно найти здесь. Официальный сайт проекта - http://m0n0.ch



Требования к железу:
Процессор - Пень-1 или лучше
Память - 64 Мб или больше
Жесткий диск - не обязательно
Любой привод CD-ROM
Привод FDD или USB-порты
Две сетевые платы или больше

m0n0wall не требует обязательной установки на жесткий диск. Система может каждый раз загружаться с компакт-диска и считывать файл конфигурации со сменного носителя (дискеты или USB-флешки). Это удобно тем, что если вы в будущем решите поменять ПК на другой, то вам не придется восстанавливать настройки. Требования к процессору и памяти даны минимальные и если вы собираетесь создавать много сложных правил фильтрации трафика и/или "резать" скорость соединений, то компьютер надо искать чуток посильнее.
На этой странице можно скачать образ ISO, который нужно будет записать на СD-R болванку. В BIOSе нужно выставить загрузку с CD-ROM.



Установка




Вставьте компакт диск в привод, дискету или USB-флешку. Оставив все сетевые платы не подключенными к какой-либо сети включаем ПК. После непродолжительной загрузки перед нами появится примерно такой экран:



Здесь отображается версия запущенного m0n0, его IP-адрес в локальной сети, список сетевых плат и пронумерованный список действий, которые можно произвести из этого экрана.
По умолчанию IP-адрес маршрутизатора в локальной сети будет 192.168.1.1. При этом m0n0 автоматически раздает IP-адреса всем компьютерам сети (т.е. является DHCP-сервером). Для начала идем в первый пункт меню, чтобы объяснить маршрутизатору какая сетевая плата у нас будет подключена к локальной сети (LAN), а какая к интернету (WAN). По ходу настройки m0n0 спросит про настройку VLANов - это можно пропустить, ответив n (что значит no). Далее отобразится список из двух сетевых плат. Тут мы нажмем кнопку a чтобы запустить механизм автоопределения. Маршрутизатор нас попросит подключить одну сетевую плату к локальной сети. Соединяем сетевуху с коммутатором и жмем Enter, предварительно убедившись, что индикатор подключения к сети на сетевухе загорелся. Затем снова нажимаем a и маршрутизатор попросит подключить вторую сетевую плату к интернету. Тут уже зависит от способа подключения: либо интернет приходит по такому же кабелю как и локальная сеть, либо модем соединяется с m0n0 патчкордом. Подключаем, смотрим что индикатор на сетевухе загорелся и нажимаем Enter. После этого еще раз просто нажимаем Enter и затем утвердительно жмем кнопку y, чтобы сохранить настройки и перезагрузиться.



Настройка

Как я уже говорил, на фоне других аналогичных решений, m0n0wall обладает достаточно простым интерфейсом для настройки. Конфигурирование осуществляется по локальной сети с любого другого компьютера через браузер.
При входе на 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-серверов
- изменить имя пользователя и пароль, который используется для доступа к настройкам.
- изменить часовой пояс

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





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






 

DHCP-server

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





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.
Таким образом, если кто-то будет сильно качать инфу с сайта, то задержек при пингах не будет.

Полезные разделы
В разделе VPN можно настроить PPTP-сервер, если мы хотим, чтобы компьютеры локальной сети получали доступ в интернет через PPTP туннель. В разделе Traffic graph можно посмотреть на статистику передачи информации по различным интерфейсам, а в разделе Diagnostics есть несколько отладочных инструментов, которые могут пригодиться для выявления ошибок в правилах фаервола или шейпера.

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

оригинал: тут

Последнее обновление 19.11.10 10:58