Установка и настройка Dansguardian с мультигрупповой фильтрацией и Squid с NTLM на Debian Etch
Введение
Это подробное how-to описывает установку и настройку Dansguardian с мультигрупповой фильтрацией, Squid с NTLM-аутентификацией, ipmasq и dnsmasq для организации полноценного интернет-шлюза в малых и средних сетях. Ожидается наличие двух сетевых интерфейсов: один внешний для интернета, второй внутренний для локальной сети.
Ключевые термины в одной строке:
- Dansguardian — фильтр веб-контента, применяет политики и списки блокировок.
- Squid — HTTP-прокси, обеспечивает кэширование и контроль доступа.
- NTLM — протокол аутентификации Windows, используемый для интеграции с доменом.
- dnsmasq — компактный DNS/ DHCP-ретранслятор для локальной сети.
- resolvconf — система управления /etc/resolv.conf при динамических соединениях.
- Samba/Winbind/Kerberos — инструменты для подключения Linux-сервера к Active Directory.
Требования и архитектура
Требования к оборудованию и сети:
- Сервер с двумя NIC: eth0 — внешний (получает IP от провайдера или статический), eth1 — внутренний, статический 192.168.1.1/24.
- Debian Etch установлен с базовой системой.
- Домен Active Directory с контроллером домена доступным по сети.
Схема работы в общих чертах:
- Клиенты локальной сети направляют трафик через шлюз (прозрачный прокси или явный прокси).
- Squid обслуживает прокси-запросы и выполняет NTLM-аутентификацию по домену.
- Dansguardian фильтрует контент на основе групповых политик.
- dnsmasq обеспечивает локальный DNS/DHCP и интеграцию с resolvconf при динамических upstream DNS.
Подготовка базовой системы
Установите Debian Etch с минимальным набором пакетов. Убедитесь, что у вас есть физический или виртуальный доступ к консоли. После базовой установки выполните настройку сетевых интерфейсов: eth0 — внешний, eth1 — внутренняя 192.168.1.1/24.
По умолчанию SSH может не быть установлен, установите его:
apt-get install ssh openssh-serverПосле установки SSH вы сможете продолжить настройку по SSH.
Важно: в Etch обнаружен баг с ClamAV, который замедляет старт Dansguardian. Мы возьмём более новую версию ClamAV из backports, чтобы избежать задержек.
Отредактируйте /etc/apt/sources.lst и добавьте следующие репозитории:
deb http://download.webmin.com/download/repository sarge contrib
deb http://www.backports.org/debian etch-backports main contrib non-freeЧтобы apt брал только пакеты ClamAV из backports, создайте или отредактируйте /etc/apt/preferences и добавьте:
Package: clamav
Pin: release a=etch-backports
Pin-Priority: 999
Package: clamav-base
Pin: release a=etch-backports
Pin-Priority: 999
Package: clamav-freshclam
Pin: release a=etch-backports
Pin-Priority: 999
Package: libclamav2
Pin: release a=etch-backports
Pin-Priority: 999Обновите apt и установите нужные пакеты, а также ключи репозиториев:
apt-get update
apt-get install debian-backports-keyring
apt-get install dnsmasq webmin squid dansguardian samba winbind krb5-user libcompress-zlib-perl resolvconf ntp ntpdateВ процессе установки вам предложат несколько вопросов. Примеры правильных ответов (с учётом регистра):
- Укажите рабочую группу сервера: EXAMPLEDOMAIN
- Использовать WINS из DHCP?: No
- Kerberos servers for your realm: domaincontroller.EXAMPLEDOMAIN.LOCAL
- Administrative server for your Kerberos realm: domaincontroller.EXAMPLEDOMAIN.LOCAL
Переконфигурируйте Kerberos при помощи:
dpkg-reconfigure krb5-configи введите:
- Default Kerberos version 5 realm: EXAMPLEDOMAIN.LOCAL
- Does DNS contain pointers to your realm’s Kerberos Servers?: Yes
Настройка resolvconf и dnsmasq
Для стабильной работы Kerberos и интеграции с AD важно, чтобы локальный /etc/resolv.conf содержал корректный поиск домена и DNS-серверы контроллера домена. Редактируйте:
/etc/resolvconf/resolv.conf.d/headДобавьте строку поиска, например:
search exampledomain.localПроверьте, чтобы /var/run/dnsmasq/resolv.conf содержал адреса правильных upstream DNS:
nameserver
nameserver
nameserver Отредактируйте /etc/dnsmasq.conf для производительности и безопасности:
nano -c /etc/dnsmasq.confВ файле раскомментируйте рекомендуемые строки (например 14, 16) и добавьте eth0 к опции, которая управляет интерфейсами. При желании можно включить DHCP-диапазон и дополнительные MX-записи — эти опции начинаются примерно с линии 100 и 307 соответственно.
Настройка времени через контроллер домена
Синхронизация времени критична для Kerberos. Отредактируйте /etc/ntp.conf:
nano -c /etc/ntp.confЗакомментируйте стандартные внешние сервера и вставьте ваш контроллер домена:
server domaincontroller.exampledomain.local iburstПерезапустите NTP или синхронизируйте вручную при необходимости.
Настройка Samba и присоединение к домену
Сделайте резервную копию текущего smb.conf и отредактируйте:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
nano -c /etc/samba/smb.confВнесите изменения конфигурации сети и безопасности:
- interfaces = 192.168.1.1/255.255.255.0 на строке, соответствующей настройкам интерфейсов
- security = ads
Добавьте параметры winbind и realm рядом с секцией домена:
winbind trusted domains only = yes
realm = EXAMPLEDOMAIN.LOCAL
winbind cache time = 3600Перезапустите службы и синхронизируйте время с контроллером домена:
net time set -S domaincontroller
/etc/init.d/samba restart
/etc/init.d/winbind restartПрисоединитесь к домену:
net ads join -U AdministratorПроверьте соединение и доступность учетных записей домена:
wbinfo -t
# ожидаемый вывод: checking the trust secret via RPC calls succeeded
wbinfo -u
# список пользователей домена
wbinfo -g
# список групп доменаНастройка Squid с NTLM и Dansguardian с мультигрупповой фильтрацией
Здесь приведён обзор и примеры конфигурации. Конкретные файлы расположены в /etc/squid/ и /etc/dansguardian/.
Основные идеи:
- Squid настроен как прозрачный или явный прокси и делегирует аутентификацию NTLM через winbind.
- Dansguardian работает перед Squid и фильтрует запросы по спискам URL и политике групп.
- Для мультигрупповой фильтрации используются шаблоны и правила, которые выбираются в зависимости от групп пользователя, получаемых через winbind или SMB.
Пример основных опций Squid для интеграции с winbind (упрощённый):
# /etc/squid/squid.conf
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_port 3128
cache_mem 256 MB
cache_dir ufs /var/spool/squid 1000 16 256
# если прозрачный режим
http_port 3128 transparentDansguardian конфигурируется через /etc/dansguardian/dansguardian.conf и соответствующие файлы в /etc/dansguardian/lists/. Для мультигрупповой логики можно использовать фазу авторизации: собирать имя пользователя от Squid/NTLM и выбирать один из наборов правил (blacklists/whitelists) в зависимости от роли или группы. Точная реализация зависит от версии Dansguardian; часто используются wrapper-скрипты, которые по username выбирают профиль фильтрации.
Тестирование и контроль работоспособности
Проверьте пошагово:
- DNS и время: nslookup domaincontroller, ntpstat или ntpdate -q domaincontroller.
- Samba/Winbind: wbinfo -t, wbinfo -u, wbinfo -g.
- Kerberos: kinit Administrator и klist для проверки билета.
- Squid: tail -f /var/log/squid/access.log и попытка HTTP-запроса с клиента.
- Dansguardian: /var/log/dansguardian/access.log и проверка фильтрации.
Краткие тест-кейсы:
- Аутентификация обычного доменного пользователя должна разрешать доступ в соответствии с его группой.
- Пользователь из группы «students» должен иметь более строгие фильтры, а из «staff» — более мягкие.
- Неавторизованный доступ должен быть блокирован.
Устранение неполадок
Частые проблемы и команды для диагностики:
- Kerberos не выдаёт билет: проверьте /etc/krb5.conf, DNS на контроллер домена, введите kinit Administrator.
- ntlm_auth не отвечает: убедитесь, что winbind запущен и net ads testjoin успешен.
- Dansguardian долго стартует: причина может быть старая версия ClamAV, используйте backports для обновления clamav.
- DNS меняется при pppd/dhcp: проверьте resolvconf и /var/run/dnsmasq/resolv.conf.
Лог-файлы для просмотра:
- /var/log/samba/log.*
- /var/log/squid/access.log, /var/log/squid/cache.log
- /var/log/dansguardian/access.log
- /var/log/syslog
Безопасность и рекомендации по жёсткой настройке
Рекомендации:
- Ограничьте доступ к административным интерфейсам (Webmin, Squid) по IP и SSL.
- Обновляйте пакеты безопасности и следите за обновлениями ClamAV.
- Минимизируйте права сервисных аккаунтов и используйте winbind с опциями кэширования.
- Настройте firewall (iptables) для разрешения только необходимых портов: 53(DNS), 80/443(HTTP/HTTPS проброс в proxy), 3128(Squid), 88(Kerberos), 445/139(Samba).
- Регулярно проверяйте логи на попытки обхода фильтрации.
Альтернативные подходы и когда этот способ не подходит
Альтернативы:
- Использовать SquidGuard вместо Dansguardian для менее тяжёлой фильтрации по URL.
- Применять коммерческие UTM-решения при большом объёме трафика и требовании поддержки.
- Использовать прокси на базе HTTP-автентификации вместо NTLM при отсутствии AD.
Когда этот подход не подойдёт:
- Большие предприятия с требованиями SLA и 24/7 поддержкой, где предпочтительнее коммерческое решение.
- Среды с высокой нагрузкой, где Squid/Dansguardian на одном сервере не справятся без масштабирования.
Контрольные списки по ролям
Администратор сети:
- Установить Debian Etch и настроить eth0/eth1.
- Установить и настроить dnsmasq, resolvconf, NTP.
- Присоединить сервер к AD через Samba и Winbind.
- Настроить Squid и Dansguardian, реализовать политику по группам.
- Настроить firewall и бэкапы конфигурации.
Служба поддержки:
- Проверить доступ пользователя и его группу в AD через wbinfo.
- Просмотреть логи Dansguardian и Squid для инцидентов.
- При проблемах с логином — проверить winbind и Kerberos.
Критерии приёмки
Система считается готовой к эксплуатации, если выполнены условия:
- Сервер присоединён к домену и wbinfo возвращает пользователей и группы.
- NTLM-аутентификация через Squid успешна для тестовой учётной записи.
- Dansguardian корректно применяет политики в зависимости от групп.
- DNS и время стабильно разрешаются через контроллер домена.
Сводка
Это руководство описывает полный цикл развертывания шлюза с фильтрацией и доменной аутентификацией на Debian Etch. Основные этапы: установка базовой системы, подготовка apt и backports для ClamAV, настройка dnsmasq и resolvconf, конфигурация NTP, присоединение к AD и настройка Squid + Dansguardian. Тщательное тестирование и мониторинг логов помогут стабилизировать систему.
Важно: для продакшена рассмотрите вопросы резервирования, мониторинга и регулярного обновления компонентов.
Похожие материалы
Троян Herodotus: как он работает и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить