CentOS: настройка Cntlm

Автор: | 09/23/2013
 

centos-logo-01Cntlm — это прокси-сервер, позволяющий проводить NTLM-авторизацию для сервисов, которые её не поддерживают.

Установка производится на систему:

# cat /etc/redhat-release
CentOS release 6.4 (Final)

Для установки требуется подключенный репозиторий Epel. Как его установить — смотрите в статье CentOS/RedHat: установка репозиториев Elrepo и Epel.

Устанавливаем сам Cntlm:

# yum -y install cntlm

Приступаем к настройке.

Редактируем файл /etc/cntlm.conf, куда вводим данные доступа к нашему прокси-серверу:

Username        proxyuser
Domain          domain.com
#Password       proxypass # тут можно указать пароль в явном виде, что не рекомендуется - укажем только 1 раз, потом лучше удалить;
Proxy           proxy.com:8080 # указываем адрес и порт нашего прокси;
Listen          3000 # порт локального прокси, на котором будет принимать соединения сам CNTLM;
Allow           127.0.0.1 # какой IP прослушивать, в данном случае - только localhost;

Запускаем Cntlm:

# cntlm -c /etc/cntlm.conf

Выясним, какой тип авторизации на нашем прокси-сервере:

# cntlm -c /etc/cntlm.conf -M http://ya.ru
Config profile  1/11... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      8A9******6482
------------------------------------------------

Другой вариант, что бы не вводить пароль в файл конфигурации вообще, а запустить cntlm с ключём -I (interactive) — тогда он запросит пароль во время подключения:

# cntlm -c /etc/cntlm.conf -I -M http://ya.ru
Password:
Config profile  1/11... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      8A9******6482

Теперь мы видим тип используемого протокола аутентификации и хеш используемого пароля. Снова редактируем файл /etc/cntlm.conf. Удаляем пароль из строки Password и комментируем саму строку.

Далее, находим строку #Auth, и меняем её, подставляя полученные данные:

Auth            NTLMv2
PassNTLMv2      8A9******6482

Запускаем, и приступаем к настройке локальных служб, которым нужен доступ через прокси. Например — yum. Его настройка уже описана в статье CentOS: использование yum через proxy.

Всё, что нам надо — это изменить параметры proxy. Устанавливаем значения, указанные в конфигурации Cntlm:

proxy=http://127.0.0.01:3000

Лог Cntlm пишет в файл /var/log/messages:

# tail /var/log/messages | grep cntl
Sep 23 07:33:01 localhost cntlm[3842]: Signal 15 received, issuing clean shutdown
Sep 23 07:33:01 localhost cntlm[3842]: Terminating with 0 active threads
Sep 23 07:33:07 localhost cntlm: Starting cntlm version 0.35.1 for LITTLE endian
Sep 23 07:33:07 localhost cntlm: Proxy listening on 127.0.0.1:3000
Sep 23 07:33:07 localhost cntlm: New ACL rule: allow 127.0.0.1/32
Sep 23 07:33:07 localhost cntlm: Workstation name used: localhost.localdomain
Sep 23 07:33:07 localhost cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
Sep 23 07:33:07 localhost cntlm[3851]: Daemon ready
Sep 23 07:39:58 localhost cntlm[3851]: Using proxy proxy.com:8080

Добавим Cntlm в загрузку при старте сервера. Для этого в файл /etc/rc.local добавим строку:

cntlm -c /etc/cntlm.conf

И после рестарта — проверим:

# ps aux | grep cntl
root      1791  0.0  0.0   2180   336 ?        Ss   07:45   0:00 cntlm -c /etc/cntlm.conf