Ставим прослойку cntlm на OpenSUSE 13.2

Posted by

Дабы не давать тестовой операционной системе () полный доступ в интернет посредством правила iptables на системе которая является шлюзом в подконтрольной сети, мною было принято решение разобрать во всех нюансах, как установить прослойку для работы через прокси сервер, т. к. все пользователи в локальной сети в интернет выходят через прокси сервер (Привет squid).

Раз на тестовой системе пока нет интернета, то понадобится еще одна система у которой интернет есть чтобы скачать данный пакет (cntlm), а уже после посредством scp передать его на тестовую систему и установить/настроить.

Ниже ссылка на репозитарий:

ekzorchik@system:~> wget https://software.opensuse.org/ymp/openSUSE:13.2/standard/cntlm.ymp

Если не добавлять репозитарий, то можно просто скачать пакет для архитектуры x86-64:

  • http://download.opensuse.org/distribution/13.2/repo/oss/suse/x86_64/cntlm-0.92.3-3.1.2.x86_64.rpm

Если не добавлять репозитарий, то можно просто скачать пакет для архитектуры x86:

  • http://download.opensuse.org/distribution/13.2/repo/oss/suse/i586/cntlm-0.92.3-3.1.2.i586.rpm

ekzorchik@system:~> wget http://download.opensuse.org/distribution/13.2/repo/oss/suse/x86_64/cntlm-0.92.3-3.1.2.x86_64.rpm

Теперь передаю скачанный пакет на тестовую систему:

ekzorchik@system:~> scp cntlm-0.92.3-3.1.2.x86_64.rpm ekzorchik@<IP_TEST_SYSTEM>:/home/ekzorchik

Устанавливаю:

ekzorchik@system:~> ssh -l ekzorchik 10.7.8.158

ekzorchik@srv-mon:~> sudo rpm -i cntlm-0.92.3-3.1.2.x86_64.rpm

root’s password:

Updating /etc/sysconfig/cntlm…

Настраиваю:

ekzorchik@srv-mon:~> sudo nano /etc/cntlm.conf

Username ekzorchik

Domain polygon.local

Password 712mbddr@

Proxy 10.9.9.10:3128

Listen 8080

Сохраняю настройки.

Если же настройки выше (на тестовой системе) не делались, то при попытке обновить информацию о репозитариях у вас ничего не получится:

ekzorchik@srv-mon:~> sudo zypper refresh

Репозиторий ‘openSUSE-13.2-0’ актуален.

Превышено время ожидания при попытке доступа к ‘http://download.opensuse.org/distribution/13.2/repo/non-oss/content’.

Прервать, повторить, игнорировать? [a/r/i] (r):

автоматический выбор ‘r’ через 21 секунду.

Превышено время ожидания при попытке доступа к ‘http://download.opensuse.org/distribution/13.2/repo/non-oss/content’.

Прервать, повторить, игнорировать? [a/r/i] (r):

автоматический выбор ‘r’ через 25 секунд. ^C

Ладно, ладно! Уже выхожу…

Поэтому запускаю прослойку:

ekzorchik@srv-mon:~> sudo chkconfig cntlm on

ekzorchik@srv-mon:~> sudo service cntlm status

cntlm.service — CNTLM HTTP Accelerator For NTLM Secured Proxies Authenticator

Loaded: loaded (/usr/lib/systemd/system/cntlm.service; enabled)

Active: inactive (dead)

ekzorchik@srv-mon:~> sudo service cntlm start

ekzorchik@srv-mon:~> sudo service cntlm status

cntlm.service — CNTLM HTTP Accelerator For NTLM Secured Proxies Authenticator

Loaded: loaded (/usr/lib/systemd/system/cntlm.service; enabled)

Active: inactive (dead) since Sat 2015-09-05 11:39:26 MSK; 3s ago

Process: 1331 ExecStart=/usr/sbin/cntlm -c /etc/cntlm.conf -U cntlm -P /run/cntlm/cntlmd.pid (code=exited, status=0/SUCCESS)

Sep 05 11:39:26 srv-mon cntlm[1331]: Starting cntlm version 0.92.3 for LITTLE endian

Sep 05 11:39:26 srv-mon cntlm[1331]: Proxy listening on 127.0.0.1:8080

Sep 05 11:39:26 srv-mon cntlm[1331]: Workstation name used: srv-mon

Sep 05 11:39:26 srv-mon cntlm[1331]: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)

Sep 05 11:39:26 srv-mon cntlm[1332]: Daemon ready

Sep 05 11:39:26 srv-mon cntlm[1332]: Changing uid:gid to 491:65534 — Success

Sep 05 11:39:26 srv-mon cntlm[1332]: Error creating a new PID file

хм странно а почему не смог создаться PID файл сервиса, проверяю наличие каталога cntlm:

ekzorchik@srv-mon:~> sudo ls -l /run/cntlm

\ls: cannot access /run/cntlm: Нет такого файла или каталога

Как видно каталога нет, создаю его:

ekzorchik@srv-mon:~> sudo mkdir /run/cntlm

Теперь перезапускаю cntlm, результат тот же на запускается пишет не возможно создать PID файл (идентификатор процесса), а если запустить утилиту cntlm с указанием конфигурационного файла, то что будет:

ekzorchik@srv-mon:~> sudo cntlm -c /etc/cntlm.conf

Проверяю запустилась ли утилита cntlm — ответ да:

ekzorchik@srv-mon:~> sudo netstat -tulpn | grep 8080

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 1419/cntlm

Но так ведь дело не пойдет, СТОП а создать идентификатор процесса не может наверное потому что владелец root у каталога, поправляю права доступа:

ekzorchik@srv-mon:~> cat /etc/passwd | grep cntlm

cntlm:x:491:65534:CNTLM Proxy Auth:/var/run/cntlm:/bin/false

ekzorchik@srv-mon:~> sudo chown 491:65534 /run/cntlm

ekzorchik@srv-mon:~> sudo chmod 755 /run/cntlm

Пробую запустить прослойку cntlm теперь как сервис:

ekzorchik@srv-mon:~> pidof cntlm

1419

ekzorchik@srv-mon:~> sudo kill -9 1419

ekzorchik@srv-mon:~> sudo service cntlm restart

ekzorchik@srv-mon:~> sudo service cntlm status

cntlm.service — CNTLM HTTP Accelerator For NTLM Secured Proxies Authenticator

Loaded: loaded (/usr/lib/systemd/system/cntlm.service; enabled)

Active: active (running) since Sat 2015-09-05 12:45:21 MSK; 1s ago

Process: 1818 ExecStart=/usr/sbin/cntlm -c /etc/cntlm.conf -U cntlm -P /run/cntlm/cntlmd.pid (code=exited, status=0/SUCCESS)

Main PID: 1819 (cntlm)

CGroup: /system.slice/cntlm.service

└─1819 /usr/sbin/cntlm -c /etc/cntlm.conf -U cntlm -P /run/cntlm/cntlmd.pid

Sep 05 12:45:21 srv-mon cntlm[1818]: Starting cntlm version 0.92.3 for LITTLE endian

Sep 05 12:45:21 srv-mon cntlm[1818]: Proxy listening on 127.0.0.1:8080

Sep 05 12:45:21 srv-mon cntlm[1818]: Workstation name used: srv-mon

Sep 05 12:45:21 srv-mon cntlm[1818]: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)

Sep 05 12:45:21 srv-mon cntlm[1819]: Daemon ready

Sep 05 12:45:21 srv-mon cntlm[1819]: Changing uid:gid to 491:65534 — Success

Отлично сервис прослойки успешно запустился.

Теперь нужно настройки возможность работы утилите zypper через данную прослойку:

ekzorchik@srv-mon:~> sudo nano /etc/sysconfig/proxy

PROXY_ENABLED="yes"

HTTP_PROXY="http://127.0.0.1:8080"

HTTPS_PROXY="http://127.0.0.1:8080"

FTP_PROXY="http://127.0.0.1:8080"

Не забываем сохранить внесенные изменения.

После проверяем, что посредством утилиты zypper можно обновить информацию о репозитариях:

ekzorchik@srv-mon:~> sudo zypper refresh

Репозиторий ‘openSUSE-13.2-0’ актуален.

Репозиторий ‘openSUSE-13.2-Non-Oss’ актуален.

Репозиторий ‘openSUSE-13.2-Oss’ актуален.

Получение метаданных репозитория ‘openSUSE-13.2-Update’ ……………[готово]

Сбор кэша репозитория ‘openSUSE-13.2-Update’ ……………………..[готово]

Получение метаданных репозитория ‘openSUSE-13.2-Update-Non-Oss’ …….[готово]

Сбор кэша репозитория ‘openSUSE-13.2-Update-Non-Oss’ ………………[готово]

Все репозитории обновлены.

Работает, а теперь попробую без прослойки научить систему работать через прокси сервер с авторизацией: (иногда такой простой способ не работает, поэтому для себя я выбрал прослойку cntlm)

ekzorchik@srv-mon:~> sudo nano /etc/sysconfig/proxy

HTTP_PROXY="http://ekzorchik:<password>@10.9.9.10:3128"

#либо

HTTP_PROXY="http://10.9.9.10:3128"

HTTPS_PROXY="http://10.9.9.10:3128"

FTP_PROXY="http://10.9.9.10:3128"

Сохраняем внесенные изменения и вуаля, все работает точно так же как и выше.

Теперь нужно прописать настройки для утилиты wget, что скачивание файлов производить через адрес прослойки:

ekzorchik@srv-mon:~> sudo nano /etc/wgetrc

http_proxy=http://127.0.0.1:8080/

Проверяю, что могу качать файлы через консоль:

ekzorchik@srv-mon:~> wget -c http://download.owncloud.org/community/owncloud-5.0.9.tar.bz2

—2015-09-08 09:32:56— http://download.owncloud.org/community/owncloud-5.0.9.tar.bz2

Подключение к 127.0.0.1:8080… соединение установлено.

Proxy-запрос отправлен. Ожидание ответа… 200 OK

Длина: 14406909 (14M) [application/x-bzip]

Сохранение в: «owncloud-5.0.9.tar.bz2»

Вывод, все что мне нужно было разобрать с использованием операционной системы OpenSUSE 13.2 было сделано, система научена работать через прокси сервер применяемый в компании/на рабочем месте. На этом все, с уважением автор блога — ekzorchik.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

3 × 2 =