pfSense – специализированный дистрибутив для создания роутеров и/или брандмауэров. Дистрибутив основан на ОС FreeBSD, а также в его основу вошел роутерный дистрибутив m0n0wall.
Официальная страничка проекта находится здесь.
pfSense приглянулся мне богатым набором функций и возможностью доустанавливать дополнительные наборы программ, а так же возможностью работать с 2 и более провайдерами. В статье опишу мой опыт установки и работы pfSense на моем “специфическом” железе 🙂
Для установки pfSense мне достался просто изумительный компьютер, как будто созданный для построения роутеров. Мобильный компьютер LEX на базе платы CI852A.
Характеристики компьютера:
- Процессор – Intel mobile Celeron 1000MHz
- Память – 1Gb
- Жесткий диск – 1Gb Compact Flash
- Сеть – 4 сетевых 10/100/1000
- Wifi – Mini PCI Intel PRO/Wireless 2200BG
Для выхода в интернет я использовал ADSL модем Dlink 2300U, настроенный в режиме моста и подключенного к LAN4. Это значит, что внешний IP интернета будет на сетевой нашего компьютера-роутера.
Локальный компьютер я подключен к LAN1.
Для наглядного представления сфотографировал девайс 😉
Установка pfSense
Я повторяться не буду, статей по установке pfSense достаточно много. Вот ссылка на установку с официального сайта.
Но в моем случае пришлось выбирать не “Quick/Easy Install”, а “Custom Install”, т.к. по умолчанию pfSense под swap раздел выделяет столько места, сколько у вас стоит оперативной памяти. У меня была flash HDD 1Gb и 1Gb памяти 🙂 Поэтому через выборочную установку я вручную задал 300Mb swap раздел, а остальное под систему. После установки система заняла на диске всего 250Mb. Так что если вы не собираетесь ставить кучу пакетов и хранить что-то значимое на pfSense, то 1Gb диска вам будет достаточно.
pfSense лучше и проще всего настраивать через web интерфейс. После того, как задан IP локального интерфейса в pfSense, соединяемся через браузер на этот локальный ip, вводим дефолтный логин/пароль – admin/pfsense и попадаем сразу же в конфигурационный wizard.
Какая либо специфическая настройка pfSense не требуется. Все шаги просты до безобразия 🙂 Прописать настройки WAN порта, убедится что этот интерфейс имеет выход в интернет – вот и вся основная настройка. По умолчанию роутер натит всю локальную сеть в интернет без каких-либо ограничений.
Обзор роутера pfSense
Что порадовало, так это простота и удобство web настроек дистрибутива. Продуманные настройки диагностики и online отображение используемой памяти, процессора и дискового пространства. Роутер без проблем определил все компоненты моего железа, я даже увидел интерфейс wifi карты.
И вот первая проблема, не могу соединиться по wifi с другими точками доступа, и не могу перевести wifi карточку в режим точки доступа (access point). А я планировал сделать из wifi карточки именно режим точки доступа, чтобы мой notebook или телефон могли выходить в интернет через роутер. Стал разбираться, и вот разочарование – моя wifi карточка Intel PRO/Wireless 2200BG не будет работать в режиме приема wifi соединений. А чтобы через эту карту в pfSense настроить простейшее соединение по wifi с другими точками надо будет еще и пошаманить с модулями ядра и конфигами pfSense – ссылка на howto.
Стал смотреть какие же карты поддерживают режим access point и через некоторое время набрел на подробный hardware list по поддержке wifi чипов карт в pfsense и возможные режимы их работы. А вот интересный документ о поддержке чипов wifi в unix.
Кому повезло и он увидел свой чип карты и поддержку режима HostAP, то вот по этой ссылке можно настроить точку доступа.
Очень надеюсь, кто задумает собирать себе роутерный дистрибутив с wifi картами первым делом заглянет в поддерживаемые чипы. Этот hardware list справедлив ко все роутерным дистрибутивам основанным на системе FreeBSD.
А кто решит пойти дальше и собрать wifi с N стандартом, то знайте, на сегодняшний момент никто не даст гарантии, что N режим заработает. Карточка будет работать, но только в режимах a/b/g. И для N требуется ставить уже не stable сборку pfsense, а пока находящуюся в разработке 2 версию сборки.
Вот эта USB карточка – tenda W311U N 150MHz поддерживается в сборках 2.0 и может работать в режиме точки доступа – это пока все, что я нашел про “N” режим + access point. В скором времени во 2 версии pfSense обещают работу wifi и в N режиме, так что N режим обязательно будет, это вопрос времени..
Ладно, с wifi проехали, пробуем pfsense под нагрузкой. Ставим торренты на закачку и смотрим загрузку системы. На удивление процессор и память сильно не загружены, есть небольшие прыжки до 50% по процессору, и 20% загрузки памяти.
Для тестов подключил notebook к LAN2 и проверил скорость перекачки фильмов между двумя локальными компьютерами. Хоть порты в роутере и гигабитные, но на компьютере и в notebook стояли 100Mb карты, поэтому тестирование получилось не на гигабите.
Вот тут меня ждало второе разочарование, загрузка процессора роутера pfSense 50% при скорости 5-5,5Mb/s. Вывод – для гигабитных портов нужен более мощный процессор, а не Mobile Celeron 1000Mhz. Скорость по сети на гигабитный портах должна быть от 30Mb/s, что явно не будет на данном компьютере..
В первый же день тестирований роутер pfSense самопроизвольно перегрузился при заходе на его web интерфейс 🙁 Также забегая вперед скажу, что перезагрузка роутера иногда наблюдалась и при постановке файла или торрента на закачку или все также при попытке захода в web интерфейс конфигурирования. Я думаю что это связано с тормозной системой flash карты на которой стоял дистрибутив pfSense (карта была древняя и внутренняя скорость работы была очень мала). Другого объяснения почему происходила перезагрузка я дать не могу.
В ходе тестирований дистрибутива были опробованы многие функции дистрибутива, но нареканий по ним не возникло. Все встроенные функции роутера хорошо отлажены и работают без нареканий.
Хочется заметить, что при включении ограничения пропускной способности – QOS включается и на обмен между локальными портами роутера, а не только между WAN-LAN.
Также мне немного показалось нелогичным в меню диагностики – DHCP можно не только смотреть какие ip адреса выданы, но и делать привязку ip к MAC адресам. Как по мне, логичнее было сделать меню DHCP в конфигурировании и там делать привязку MAC адрессов.
Установка пакетов программ, не вызывает сложностей и в меню web интерфейса появляется дополнительная менюшка по настройке этой программы. Из 5 поставленный программ, только в пакете proxy сервера squid были замечены проблемы. Во первых в менюшке web интерфейса не было его настроек, а ругалось на отсутствующий файл xml (пришлось файл найти в интернете и переписать его в нужное место), а во вторых после перезагрузок роутера proxy иногда не стартовал..
Вот небольшая галерея моих скриншотов снятых во время изучения pfSense.
Вывод: Сделать, то что я хотел используя pfSense не получилось. Больше всего напрягали непроизвольные перезагрузки. Поэтому pfSense был отложен до того момента, когда я найду нормальный винчестер для этого компьютера, а заодно и wifi карту поддерживающую точку доступа. Чтоб уж тестировать, так все 🙂
Но в целом дистрибутив мне очень понравился с точки зрения продуманности, простоты установки, красоты и удобства настройки web интерфейса. Кто еще не пробовал однозначно рекомендую попробовать..
Нашел перевод официальной книги по pfsense от Christopher M. Buechler
Главы доступны здесь http://shop.nativepc.ru/content/38-pfsense-oglav
Pfsense – хороший дистрибутив.
Есть мнение, что истинные мастера используют только чистую freebsd, а всякие сборки есть зло и ересь.
Однако если нужно быстро поднять шлюз так, чтобы работало – сенс это то что доктор прописал. К тому же по функциональности, удобству и внешнему виду не хуже чем многие аппаратные роутеры/фаерволлы, например тот же DFL-800.
А если, по Вашему примеру, поставить его на промышленный или просто компактный комп – вообще мегажелезко будет.
Еднственный минус – стандартный набор пакетов, которые можно установить из веб-морды не так уж велик, поэтому если захочется добавить, например, торрентокачалку, то придётся собирать её из-под чорной-чорной фряшной консоли. Возможно даже с бубнами.
полностью с вами согласен. но многое зависит от железа и версии pfsense. К сожалению на ветке 1.2.3 на моем железе было больше глюков чем пользы. Сейчас уже существует нова версия, но еще не пробовал..
Я ставил версию 2.0 amd64 на малыша Supermicro 5015A-PHF. Неплохо работает. Для небольшой конторы или для дома – самое оно, если лень настраивать чистую фряху. Попробуйте, вдруг понравится.
Задал вопрос на русском сообществе: http://ru.doc.pfsense.org/index.php/PFSenseDocs_ru:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0
Будьте любезны ответить.
ответить не смогу, я же не спец по этому дистрибутиву. Так сказать ставил на побаловаться 🙂