1. Введение pfSense
Поднятие прокси сервера. Начало
От себя могу сказать что когда встала задача как-то организовать осмысленный доступ пользователей в интернет (до этого стоял DIR-300, который пускал в интернет всех и каждого) я перепробовал множество вариантов. Задачи ставились такие:
- Прокси должен быть прозрачным, т.к. в организации используется множество специфичных программ, которые коннектятся через свои порты, обновляются, меняют порты, шифруют трафик, используют ЭЦП и прочее-прочее. А отлаживать работу этих программ через порт прокси сервера да ещё с логином/паролем совсем не хотелось.
- Если прокси прозрачный, то как-то нужно идентифицировать компьютеры использующие интернет. Это может быть интеграция с ActiveDirectory, авторизация по MAC-адресу или на крайняк по IP.
- ActiveDirectory — это конечно круто и наверно удобно, но я не хочу так делать по двум причинам:
- 1.Процесс интеграции мне слабопонятен, а вникать лень;
- 2. Контроллер домена у меня линуксовый и вертится на виртуалке. Вторичного контроллера нет. В случае сбоя буду восстанавливать из архивной копии (конечно это идиотская система, но сделать по-уму всё некогда), и, чую будут траблы с авторизацией пользователей после восстановления.
- MAC-авторизация мне больше всего нравится, т.к. работники предприятия сетевухи сами не меняют, да и про подмену MAC-адреса говорить не приходится.
- IP-авторизация — последний вариант, т.к:
- 1. Нужно ограничить пользователям смену IP-адреса (в принципе у меня почти никто не имеет права изменения IP)
- 2. Нужно всем назначать статические IP-адреса, т.к. DHCP их может периодически менять
- ActiveDirectory — это конечно круто и наверно удобно, но я не хочу так делать по двум причинам:
- Нужно иметь возможность ограничения скорости для клиентов (и крайне желательно не только по 80-му порту, т.к. некоторые ещё и торренты качать умудряются)
- Нужна детальная статистика — кто куда когда лазил
Самое первое что пришло на ум — настроить прокси сервер Squid. Решение хорошее, многофункциональное, можно сделать всё что хочется, но повозившись с ним некоторое время понял, что моих знаний решительно нехватает и настройка прокси сервера превратилась в мучение.
Решение на базе Windows мне не очень нравится, т.к. сама винда платная, да ещё прокси софт для винды в большинстве своем платный, а те что бесплатны не отвечают моим требованиям.
В общем пробовал я это:
- Windows
- 3proxy (не особо вникал, но чёта он мне сразу не понравился)
- Tmeter (хороший, на русском языке, с понятной статистикой, Firewall, NAT, DNS, DHCP, шейпер и много интересностей, НО ВИНДОВЫЙ — это минус)
- Linux
- Squid (уже говорил про него)
- ZeroShell (Вроде неплох, но чего-то не хватает. Наверное мануалов)
- m0n0wall (прародитель pfSense, по скриншотам в интернете он похож на ZeroShell. Поэтому его даже не качал)
- pfSense — Вот решение, которое мне понравилось. Достаточно много обсуждений в интернете, возможность установки дополнительных «плагинов». И вроде всем моим требованиям отвечает. Язык английский, но где-то в интернете есть руссификатор (не советую ставить так как все мануалы написаны для англоязычной версии)
Программный маршрутизатор pfSense
Возможности pfSense
Полный список возможностей pfSense можно найти на официальном сайте.
- Firewall(защита)
- Интуитивный WEB-интерфейс (конфигурируется из Интернет-бразузера)
- Помощник начальной установки
- Беспроводная точка доступа (должна быть установлена wifi карта)
- Возможность установки и защиты нескольких подсетей (например, можно ограничить трафик между различными отделами одной компании)
- Traffic Shaping(выделение определённой полосы под определённый тип трафика)
- Таблица состояний
- NAT(трансляция адресов)
- Резервирование
- CARP (failover) — специальный протокол от OpenBSD, позволяющий реализовать аппаратное резервирование. Два или более файерволлов могут быть сконфигурированы в отказоустойчивую группу. Если один из интерфейсов активного узла перестаёт функционировать, данный узел выводится из работы полностью и пассивный узел становится активным, обрабатывая весь трафик. pfSense так же имеет возможноть синхронизировать конфигурацию с активного узла на пассивный, таким образом, все изменения выполняются только на активном узле.
- pfsync — специальный протокол передающий состояния всех активных соединений с активного узла на пассивный в режиме реального времени. Это позволяет пассивному узлу обрабатывать весь трафик без потери соединений в случае если активный узел выбывает из работы.
- Loadbalancing — Разделение как входящей, так и исходящей нагрузки
- nmap, ping, traceroute из WEB-интерфейса
- VPN — IPsec, OpenVPN, PPTP
- PPPoE Server
- RRD — графическое представление нагрузки
- Real Time Information — Using AJAX
- Dynamic DNS
- Captive Portal
- DHCP Server и Relay
- Доступ к интерфейсу командной строки
- Wake on LAN
- Proxy Server
- встроенный sniffer — логирование пакетов
- Возможность сохранения и восстановления конфигурации из WEB-интерфейса
- Редактирование файлов из WEB-Интерфейса
Содержание
- 1. Введение pfSense
- 2. Установка pfSense
- 3. Настройка pfSense (разрешить ICMP)
- 4. Настройка L2TP в pfSense
- 5. Настройка прокси в pfSense
- 6. Интеграция pfSense в рабочую сеть
- 7. pfSense авторизация по MAC
- 8. pfSense ограничение скорости пользователей