Дабы не давать тестовой операционной системе (OpenSUSE 13.2) полный доступ в интернет посредством правила iptables на системе которая является шлюзом в подконтрольной сети, мною было принято решение разобрать во всех нюансах, как установить прослойку cntlm для работы через прокси сервер, т. к. все пользователи в локальной сети в интернет выходят через прокси сервер (Привет 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.