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

Прокси-сервер в pfSense

Третий по счету обзор о pfSense будет посвящен настройке прокси-сервера в этом программном маршрутизаторе. Дополнительно мы покажем вам, как снять статистику с прокси, т.е. как узнать кто и в каких количествах использует интернет.
Предыдущие наши обзоры pfSense смотрите по ссылкам:

  1. Введение в pfSense
  2. Установка pfSense
  3. Сетевые интерфейсы в pfSense
  4. [этот обзор] Прокси-сервер в pfSense
  5. Прокси-сервер в pfSense — Часть 2: антивирус и фильтры доступа
  6. MultiWAN в pfSense — подключение к двум провайдерам
  7. pfSense — настройка удаленного доступа (IPSec VPN) для iPhone, iPad

Установка

Для полного счастья нам надо установить два пакета. Делается это в меню Systempackets. Здесь есть две вкладки. Available Packages — доступные для установки пакеты. Installed Packges — уже установленные пакеты.

Что где находится, думаю, понятно. В Available Packages в списке найдите и установите следующие пакеты (обязательно в указанном порядке):

  1. squid — сам прокси-сервер. Там есть еще похожий пакет squid3 — его устанавливать не надо!
  2. lightsquid — модуль статистики

Настройка

Установили? Все три пакета должны отобразиться в списке в Installed packages. Идем в меню ServicesProxy server. Здесь, во вкладке General, расположены основные настройки.

Во-первых выбираем сетевой интерфейс LAN, чтобы только на нем прокси принимал запросы. Далее ставим галку Allow users on interface — разрешаем пользоваться прокси всем, кто подключается со стороны выбранного интерфейса.

Знаете как в интернете появляются анонимные прокси (в большинстве случаев)? Это когда админ забыл ограничить доступ к прокси только из своей локальной сети. Т.е. получается, что его прокси-сервером может пользоваться кто угодно из интернета в своих корыстных целях. Никогда не наступайте на эти грабли!

Следующая галка — Transparent proxy. Есть два основных режима работы сервера: обычный и прозрачный (transparent). По существу два режима отличаются тем, что в последнем варианте не нужно настраивать никакие опции прокси-сервера в броузерах на компьютерах локальной сети. Т.е. выходя в интернет со своего компа, человек думает, что подключен на прямую, а на самом деле — нет. Недостаток у прозрачного режима только один — нельзя сделать ограничения по логину и паролю на доступ в интернет. Т.е. либо все компьютеры сети выходят в интернет прозрачно либо никто не выходит. Либо пользуйтесь обычным режимом прокси-сервера с проверкой по логину и паролю для каждого человека.
На самом деле, прокси-сервер squid умеет работать в двух режимах одновременно, но в pfSense включить их одновременно через web-интерфейс нельзя. Можно попробовать вручную отредактировать конфигурационный файл. Мы проведем этот эксперимент в другой раз.
Если вы только начинаете изучать pfSense и вы раньше никогда не настраивали squid, то мы вам рекомендуем для начала попробовать режим transparent — он проще в настройке.
Давайте еще разберем несколько основных настроек, которые, кстати говоря, будут одинаково справедливы для обоих режимов работы прокси-сервера в pfSense:

  1. Enable logging — включить запись логов. Если вы собираетесь пользоваться статистикой, то обязательно включите.
  2. Log store directory — каталог хранения лог-файлов. Значение по умолчанию менять крайне не желательно.
  3. Log rotate — ротация логов. Делается для автоматического архивирования старых лог-файлов. Статистика прокси-сервера смотрится только из актуального лог-файла, а не из архивного. Поэтому интервал ротации нужно брать столько дней, когда лог перестает быть актуальным для вас, например, 2 месяца, т.е. 60 дней.
  4. Proxy port — порт, на котором будет работать прокси-сервер. Обычно ставится значение 3128.
  5. Language — язык, на котором будут отображаться различные сообщения для пользователей прокси-сервера. Обычно ставится Russian-1251.

И еще пара интересных опций, которые работают только в режиме Transparent:

  1. Bypass proxy for these source IPs — сюда можно вписать список компьютеров локальной сети через разделитель ; которым разрешено ходить в обход прокси-сервера.
  2. Bypass proxy for these destination IPs — сюда можно вписать список внешних ресурсов через разделитель ; до которых все компьютеры локальной сети смогут ходить напрямую (не через прокси).

После выставления всех опций не забываем нажать кнопку Save внизу страницы.
Давайте рассмотрим другие закладки. В Upstream Proxy указывается вышестоящий прокси-сервер. В закладке Cache Mgmt — настраивается кеширование. В закладке Access Control — можно прописать разрешенные и запрещенные есть. Вся эта закладка не имеет смысла, если мы установили опции Allow users on interface и Transparent proxy. В закладке Traffic Mgmt можно установить ограничения на максимальный размер скачиваемых и закачиваемых файлов. Имхо одна из самых полезных вещей 🙂
Закладка Auth Settings в режиме Transparent не работает вообще. Здесь настраиваются опции аутентификации.
Последняя закладка нужна для добавления пользователей, авторизованных на прокси-сервере в случае использования обычного режима работы.

Firewall

Какой бы мы режим не выбрали, нам нужно сделать так, чтобы доступ в интернет осуществлялся только через прокси-сервер. И прежде чем мы пойдем дальше, нам необходимо внести некоторые коррективы в правила фаервола. Если вы устанавливали pfSense по нашим предыдущим обзорам, то набор правил по умолчанию в закладке LAN меню FirewallRules у вас будет выглядеть следующим образом:

На данном этапе нужно удалить все правила кроме первого, которое нужно только для того, чтобы бы мы сами себе не заблокировали доступ на web-интерфейс pfSense. Удалить любое правило можно нажатием кнопки с изображением крестика справа от нужного правила. После удаления список правил получился вот такой:

Теперь добавим одно довольно простое правило, которое будет разрешать доступ с компьютеров локальной сети до машины с pfSense. Это делается кнопкой, я её указал стрелкой на скриншоте выше. Такое правило нужно по двум причинам как минимум:

  1. Чтобы на начальном этапе мы могли,например, пинговать роутер и выполнять любые другие необходимые диагностические действия.

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

После удаления старых правил и создания новых не забудте нажать кнопку Apply Changes вверху! Итоговый вид будет вот такой:

Теперь можно попробовать выйти в интернет с любого компьютера локальной сети. Весь трафик при этом будет проходить через прокси-сервер pfSense. Посетите несколько сайтов, попробуйте чито-нибудь скачать, кароче создайте вид бурной деятельности в интернете. Сейчас это нужно просто для того, чтобы создать некотрой объем записей в лог файле для нашей будущей статистики.

Статистика Lightsquid

Давайте посмотрим как ее настроить. Сначала пройдем в меню StatusProxy report.

На первой закладке Settings сделаем несколько манипуляций:

  1. Language — устанавливаем Russian
  2. IP resolve method — самый универсальный способ — Demo
  3. Refresh sheduler — интервал обновления статистики. Чем меньше интервал, тем больше будет нагружен pfSense. На этапе настройки и отладки мы рекомендуем минимально возможное значение — 10 мин, но затем лучше выбрать более рациональное значение, например, 60 мин.

Нажимаем внизу страницы кнопку Save, а после этого кнопку Refresh full. Затем перейдите на саму страницу статистики — вторая закладка Lightsquid report. Сначала там может появиться страница с ошибкой. Ничего страшного, оставьте ее в покое, просто чуть позже (минут через 10-15) попробуйте обновить страницу в броузере. Должно появиться примерно вот это:

Если у вас всё так, то значит что все настроено правильно. Статистика имеет довольно простой и на наш взгляд понятный интерфейс.

На этом пока всё. Если возникнут вопросы, пишите в комменты, поможем.

Смотрите продолжение:
Прокси-сервер в pfSense Часть 2: антивирус и фильтры доступа

Exit mobile version