Задача

Мне нужно настроить squid в качестве промежуточного прокси, чтобы он принмал запросы от клиентов и перенапрвлял их на вышестоящий прокси, который требует аутентифкации по протоколу Kerberos.

Реализация

Мой Squid работает на Ubuntu 20.04, которая введена в домен с помощью samba, то есть файл /etc/krb5.conf уже настроен и DOMAIN.LOCAL прописан в нем как default realm.
Создадим keytab с помощью утилиты ktutil:

$ ktutil
ktutil:  addent -password -p user.name@DOMAIN.LOCAL -k 1 -e RC4-HMAC
Password for user.name@DOMAIN.LOCAL: 
ktutil:  wkt keytab.file.name
ktutil:  q

В результате - в текущей директории будет файл с хешем пароля пользователя, от имени которого squid будет аутентифицироваться на вышестоящем upstream parent proxy.
Дальше - скопируем этот файл в директорию сквида и дадим ему прав на чтение этого файла:

sudo cp ./keytab.file.name /etc/squid/
sudo chown proxy:proxy /etc/squid/keytab.file.name

Теперь в конфиге сквида нужно прописать parent proxy:

cache_peer parent-proxy.domain.local parent 3128 0 no-query default login=NEGOTIATE

Или, если вышестоящий прокси не умеет digest и netdb-exchange

cache_peer srv-proxy.rdleas.ru parent 3128 0 default no-query no-digest no-netdb-exchange login=NEGOTIATE

Тип аутентификации задается выражением login=NEGOTIATE.
Теперь нужно указать сквиду где ему брать keytab. Для этого в его окружении должна прописаться переменная KRB5_KTNAME, значение которой - это путь до keytab-файла.
В Ubuntu сервисы запускает systemd, поэтому создаю файл /etc/systemd/system/squid.service.d/krb.conf с таким содержимым:

[Service]
Environment="KRB5_KTNAME=/etc/squid/keytab.file.name"

Всё. Обновляем конфигурацию systemd и перезапускаем squid:

sudo systemctl daemon-reload
sudo service squid restart

Если что-то идет не так, то добавляем в конфиг такое:

debug_options ALL,2

И читаем лог. Логи работы с parent proxy будут в /var/log/squid/cache.log

Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/настройка_аутентификации_kerberos_для_сервиса_systemd.txt
  • Last modified: 2020/11/19 20:22
  • by admin