Cntlm – это прокси-сервер, позволяющий проводить 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