Гид по технологиям

Установка и настройка Dansguardian с мультигрупповой фильтрацией и Squid с NTLM на Debian Etch

7 min read Сетевые шлюзы Обновлено 22 Oct 2025
Dansguardian и Squid с NTLM на Debian Etch
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 с контроллером домена доступным по сети.

Схема работы в общих чертах:

  1. Клиенты локальной сети направляют трафик через шлюз (прозрачный прокси или явный прокси).
  2. Squid обслуживает прокси-запросы и выполняет NTLM-аутентификацию по домену.
  3. Dansguardian фильтрует контент на основе групповых политик.
  4. 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 transparent

Dansguardian конфигурируется через /etc/dansguardian/dansguardian.conf и соответствующие файлы в /etc/dansguardian/lists/. Для мультигрупповой логики можно использовать фазу авторизации: собирать имя пользователя от Squid/NTLM и выбирать один из наборов правил (blacklists/whitelists) в зависимости от роли или группы. Точная реализация зависит от версии Dansguardian; часто используются wrapper-скрипты, которые по username выбирают профиль фильтрации.

Тестирование и контроль работоспособности

Проверьте пошагово:

  1. DNS и время: nslookup domaincontroller, ntpstat или ntpdate -q domaincontroller.
  2. Samba/Winbind: wbinfo -t, wbinfo -u, wbinfo -g.
  3. Kerberos: kinit Administrator и klist для проверки билета.
  4. Squid: tail -f /var/log/squid/access.log и попытка HTTP-запроса с клиента.
  5. 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. Тщательное тестирование и мониторинг логов помогут стабилизировать систему.

Важно: для продакшена рассмотрите вопросы резервирования, мониторинга и регулярного обновления компонентов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Троян Herodotus: как он работает и как защититься
Кибербезопасность

Троян Herodotus: как он работает и как защититься

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти