Настройка кеширующего прокси-сервера в обычном и прозрачном режиме. Вывод статистики. Возможность фильтрации контента по протоколам HTTPS(S). Использование антивируса ClamAV.
Нам понадобятся:
- pfSense 2.4.3
И установленные пакеты:
- squid - кеширующий прокси-сервер;
- Lightsquid - отображение веб-отчета и статистика прокси в реальном времени SQStat;
- squidGuard - высокопроизводительный URL filter.
Default:
В этом режиме работы, необходимо, чтобы на клиентах вручную в настройках были указаны адрес прокси-сервера и используемый порт. Как итог, нет необходимости использовать "SSL Man In the Middle Filtering". Также будет возможность просматривать статистику и фильтровать контент по протоколам HTTP(S).
Настройка Squid Proxy Server:
Services -> Squid Proxy Server -> General
# Squid General Settings
Enable Squid Proxy - *;
Keep Settings/Data - *; Если этот параметр вкл., то, при удалении, обновлении или переустановке пакета, все данные и настройки будут сохранены.
Proxy Interface(s): loopback + LAN Interface;
Proxy Port - 3128;
Allow Users on Interface - *; Пользователям, подключенным к выбранному интерфейсу, разрешено использовать Squid. Иначе, необходимо добавить подсеть интерфейса в список разрешенных подсетей.
Resolve DNS IPv4 First - -; Помогает при проблемах в подключении к HTTPS сайтам.
# Logging Settings
Enable Access Logging - *;
Log Store Directory - /var/squid/logs;
Rotate Logs - (); Сколько дней будут храниться лог файлы.
# Headers Handling, Language and Other Customizations
Visible Hostname - localhost или N/A;
Administrator's Email - admin@localhost;
Error Language - ru;
X-Forwarded Header Mode - transparent;
Disable VIA Header - -;
URI Whitespace Characters Handling - strip;
Suppress Squid Version - *; Отключить отображение версии Squid в заголовках HTTP и страницах ошибок HTML;
Настройка Squid Proxy Reports:
Status -> Squid Proxy Reports
# Web Service Settings
Lightsquid Web Port - 7445;
Lightsquid Web SSL - *;
Lightsquid Web User - user;
Lightsquid Web Password - pass;
# Report Template Settings
Language - Russian;
Report Template - Base;
Bar Color - Orange;
# Reporting Settings and Scheduler
IP Resolve Method - IP;
Skip URL(s) - (); Убрать сайты из статистики. Пример: example.com|192.168.1.|example.net
Refresh Scheduler - 10Min(!); Период обновления данных;
- Нажимаем Save.
Проанализировать данные за сегодняшний день - Refresh;
Проанализировать все данные - Refresh Full;
Настройка SquidGuard Proxy Filter:
Services -> SquidGuard Proxy Filter -> Target categories
# General Options
Name - Deny_Sites;
Order - --;
Domain List - google.ru ya.ru; Домены указываются через пробел.
URL List - (); Конкретные ссылки.
Regular Expression - (); Фрагменты слов целевого URL.
Redirect mode - none;
Log - *;
-> Common ACL
# General Options
Target Rules List - (+)
- [Deny_Sites] - deny
- [all] - allow
Do not allow IP-Addresses in URL - *; Не разрешать IP-адреса в URL-адресе.
Redirect mode - int error page (enter error massage);
Redirect info - ();
Use SafeSearch engine - -;
Rewrite - none (rewraite not defined);
Log - *;
- Save;
-> General Settings
# General Options
Enable - *;
# Logging options
Enable GUI log - -;
Enable log - *;
Enable log rotation - -;
# Miscellaneous
Clean Advertising - -;
# Blacklist options
Blacklist - -;
- Save.
P.S. Чтобы активировать изменения конфигурации squidGuard, необходимо нажать кнопку "Apply" в разделе настроек "Services -> SquidGuard Proxy Filter -> General Settings -> # General Options".
Настройка Firewall:
Делаем так, чтобы клиентам, использующим прокси-сервер - был доступ к выходу в интернет, а не использующим - не было доступа.
Firewall -> Rules -> [Lan Interface]
- Создаем единственное правило:
# Edit Firewall Rule
Action - Pass;
Interface - [Lan Interface];
Address Family - IPv4;
Protocol - TCP;
# Source
Source - [Lan Interface net];
# Destination
Destination - [Lan Interface address];
Destination Port Range - 3128;
- Save.
Transparent:
Прозрачный режим прокси-сервера работает без дополнительной настройки на клиентах.
Перед внесением изменений в настройки, останавливаем сначала сервис "SquidGuard Proxy Filter", а затем "Squid Proxy Server". И приступаем к настройке.
Cert. Manager:
Создаем ключ центра сертификации.
System -> Cert. Manager -> CAs -> Add
# Create / Edit CA
Descriptive name - Squid_CAs
Method - Create an internal Certificate Authority;
# Internal Certificate Authority
- Заполняем данные. (в State or Province можно ввести: N/A).
Настройка Squid Proxy Server:
Для того, чтобы иметь возможность фильтровать HTTPS запросы необходимо включить "HTTPS/SSL Interception".
Services -> Squid Proxy Server -> General
# Transparent Proxy Settings
Transparent HTTP Proxy - *;
Transparent Proxy Interface(s) - LAN Interface;
Bypass Proxy for Private Address Destination - *; Адреса (RFC 1918) передаются непосредственно через брандмауэр, а не через прокси-сервер.
# SSL Man In the Middle Filtering
HTTPS/SSL Interception - *;
SSL/MITM Mode - Splice All; Позволяет не устанавливать CAs сертефикат на клиенты.
SSL Intercept Interface(s) - LAN Interface;
SSL Proxy Compatibility Mode - Modern;
DHParams Key Size - 2048 (default);
CA - Squid_CAs;
Remote Cert Checks -
Certificate Adapt -
ClamAV:
Проверка сетевого трафика на вирусы.
Настройка:
Services -> Squid Proxy Server -> Antivirus
# ClamAV Anti-Virus Integration Using C-ICAP
Enable AV - *;
Client Forward Options - Send both client username and IP info (Default);
Enable Manual Configuration - disabled; Включается для ручной настройки.
Redirect URL - -; При обнаружении вируса, перенаправление на заданный URL.
Google Safe Browsing - *; База фишинговых и вредоносных сайтов от Google.
Exclude Audio/Video Streams - *; Отключение сканирования потокового видео и аудио.
ClamAV Database Update - never;
Regional ClamAV Database Update Mirror - Russia;
Optional ClamAV Database Update Servers - db.ru.clamav.net;
- Запускаем сервис.
Status -> Services -> clamd -> Start
Other:
Команды для очистки логов:
cp /dev/null /var/squidGuard/log/block.log
cp /dev/null /var/squidGuard/log/sg_configurator.log
cp /dev/null /var/squidGuard/log/squidGuard.log
cp /dev/null /var/squid/logs/access.log
cp /dev/null /var/squid/logs/cache.log
cp /dev/null /var/squid/logs/netdb.state
rm -r /var/lightsquid/report/*
rm -r /var/squid/cache/*
Проверка Proxy и работы антивируса ClamAV:
| Proxy Test | EICAR |