Высокопроизводительный роутер для дома на базе PC и pfSense
02.12.2012В жизни каждого пользователя всемирной сети наступает момент когда … кхм, да что там, вы и сами знаете для чего нужны маршрутизаторы.
Для подавляющего большинства домашних пользователей подойдут хардварные маршрутизаторы SOHO класса, но задачи бывают разные – кому-то нужно разместить приватный VPN сервер, протолкнуть честные 100 Мбит, что-нибудь очень хитро запроксировать … ну а я, например, люблю торренты, только не те что вы подумали — у меня к торрентам своя особая, «серверная» любовь.
В общем, мне понадобился маршрутизатор способный держать несколько тысяч соединений и прогонять поток в 100 Мбит.
В наличии из заводских маршрутизаторов у меня были только слабенькие ZyXel 330, Trendnet 432 brp, D-Link DIR-300. Ни один из них не способен осилить и четверти нагрузки что мне требуется, по этому было принято решение сваять что-нибудь из завалявшегося дома компьютерного барахла.
Первым моим роутером стал Celeron 800 + 64 Mb PC133 SDRAM на GA-6VEM с HDD на 4 гигабайта.
На эту замечательную машинку как родной встал m0n0wall-mod и успешно работал с 2008 года по сей день.
Но бывают в нашей жизни такие моменты, когда хочется апгрейда, просто так, чтобы повозиться с новым железом.
Именно в такой момент я и наткнулся на завалявшиеся в моем любимом компьютерном магазине интеловские платки D945GCLF. Да, моделька устаревшая, но в плюсах у нее цена и достаточная для моих задач производительность. Было принято решение обновлять роутеры.
Для замены старых жужжащих винчестеров были приобретены переходники CF to IDE и карточки к ним, оперативка – по 1GB DDR2 на роутер.
На корпусах решил сэкономить и использовать старые, места в них с большим запасом для таких плат.
А вот тут вскрылась проблема – в одном из корпусов был БП без серого провода т.е. сигнала Power OK у меня нет, а без него осторожная интеловская материнка включаться опасалась. Ну и 4-pin для процессора нет, но это не страшно.
К сожалению, мне так и не удалось выяснить какой потенциал нужно подать на этот пин чтобы мать стартовала, за то получилось найти точно такой же БП с полным шлейфом.
В качестве софтовой части решил использовать pfSense.
Я давно следил за его развитием, например версию 1.2.3 я успешно расставил по филиалам и вязал по IPSEC с головным офисом. Вот только поддержки DHCP+PPTP на WAN у него никак не появлялось, а мой провайдер использует именно такой тип авторизации абонентов. К счастью версия 2.0 принесла много нового, в том и числе и возможность такого рода подключения – чем я и воспользовался.
Ставится pfSense очень дружелюбно: достаточно загрузиться с диска, выбрать Installer Mode и согласиться на Quick Install (ВНИМАНИЕ ! В режиме Quick Install автоматически будет выбран первый обнаруженный жесткий диск – отключите все лишнее !).
Далее загружаем свежую систему, указываем какую сетевую карту под какой интерфейс отдать, выдаем IP и переходим к настройке собственно Интернета — для этого у нас есть очень хорошо проработанный веб-интерфейс.
Кратко описываю основные моменты настройки, благо сложности тут почти нет:
указываем Hostname и Domain, для эстетического удовольствия
вбиваем свои любимые DNS-сервера либо ставим галку «Allow DNS server list to be overridden by DHCP/PPP on WAN» и получаем DNS от провайдера
ставим галку «Do not use the DNS Forwarder as a DNS server for the firewall», по названию вполне понятно что она делает
выставляем время и сохраняемсяSystem —> Advanced —> Admin access
ставим галку «Disable DNS Rebinding Checks», по моему опыту эта штука работает аномально (либо я не умею ее готовить)
Так же на этой странице есть много всего интересного, например перевод интерфейса на HTTPS и включение SSH на роутере.
System —> User manager
меняем дефолтный пароль pfsense пользователя admin
Создание подключения к Интернету описываю для Домашнего Интернета Билайн, т.е. DHCP+PPTP, для других провайдеров с аналогичной схемой то же должно подойти. Если вдруг нет – в русской ветке форума вам помогут.
Итак, идем в Interfaces —> assign —> PPPs и создаем подключения нажатием на «+»
Link type – PPTP, либо L2TP, это зависит от города и доступных серверов авторизации
Link interface – выбираем WAN, а не сетевой интерфейс
Вписываем логин и пароль от соединения в соответствующие поля.
Переходим на первую вкладку (Interface assignments) и нажатием на «+» добавляем новый интерфейс из созданного нами PPTP (L2TP) соединения. Сейчас он называется OPT1, но это исправимо.
Переходим в Interfaces —> OPT1, включаем его (Enable interface), после выбора типа – PPTP (L2TP) в открывшиеся поля подставятся данные из ранее созданного соединения.
Remote IP address – адрес VPN сервера провайдера, я предпочитаю вписывать IP, но должен понимать и домены.
В поле Local IP address я указываю адрес выданный по DHCP, т.к. поле обязательное, хотя в обсуждении на форуме говорят оставить его пустым.
При поднятии интерфейсов для каждого из них будет создан шлюз, чтобы по умолчанию ходить в Интернет заходим в System —> Routing и указываем быть дефолтным интерфейсу с PPTP соединением (OPT1).
Собственно всё, роутер в минимальной конфигурации у нас уже есть.
Рекомендую заглянуть в каждый уголок веб-интерфейса, тут много что можно настроить под свои нужды – функционал идущий из коробки очень богат.
Кроме того, на страничке System —> Packages —> Available packages можно выбрать что бы еще хотелось поставить, например мне очень приглянулся Zabbix Agent.
Отто Юльевич Шмидт