- Вопрос или проблема
- Ответ или решение
- 1. Установка и настройка dante-server
- Установка dante-server:
- Настройка dante-server:
- Запуск сервиса:
- 2. Настройка приложений для использования прокси
- Установка переменных окружения
- 3. Использование cntlm как шлюза для аутентификации
- Установка cntlm:
- Конфигурация cntlm:
- Запуск cntlm:
- 4. Дополнительные возможности
- Установка proxychains:
- Конфигурация proxychains:
- Заключение
Вопрос или проблема
У меня есть локальная машина с CentOS 7. В локальной подсети есть сервер прокси Socks V5, который предоставляет этой машине доступ в интернет. Я могу загружать файлы с помощью,
curl -x --proxy socks5://ipaddress:1080 -u username:password www.google.com
На моей локальной машине в настоящее время запущены веб-приложения Artifactory и Jenkins в Tomcat. Эти системы не предоставляют настройки прокси socks и требуют доступ в интернет.
Я пробовал использовать tsocks, однако удаленные DNS-запросы не разрешаются.
Как мне это сделать?
То, что вы предоставили, это прокси для программы curl для использования в этом одном запросе.
Вам может быть полезно попробовать установить переменные окружения http_proxy и https_proxy и посмотреть, подхватят ли их ваши программы.
Например:
export http_proxy=username:[email protected]:8080
Эти переменные необходимо будет устанавливать снова после каждой перезагрузки, так что это не идеально.
Если вас не устраивает хранить эти учетные данные в открытом виде в переменной окружения, вы можете рассмотреть более надежное решение, например, cntlm:
Ответ или решение
Для настройки доступа к интернету через SOCKS-прокси на вашем сервере CentOS 7, где локальная система DNS не разрешает адреса, можно использовать подход с перенаправлением трафика через прокси, что позволит приложениям, как Artifactory и Jenkins, генерировать запросы интернета через SOCKS-прокси. Рассмотрим несколько этапов решения вашей проблемы.
1. Установка и настройка dante-server
Одним из наиболее универсальных решений является использование SOCKS-прокси-сервера dante-server
, который позволит вашему серверу работать как промежуточный обработчик для приложений.
Установка dante-server
:
sudo yum install dante-server
Настройка dante-server
:
Создайте файл конфигурации /etc/danted.conf
со следующим содержимым:
logoutput: /var/log/danted.log
# Определяем секции клиент и сервер
client pass {
from: 192.168.0.0/24 to: 0.0.0.0/0
protocol: tcp
}
# Определяем разрешенные пользователи
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp
method: username # или другой метод аутентификации
}
Замените 192.168.0.0/24
на соответствующую подсеть вашего локального окружения.
Запуск сервиса:
sudo systemctl start danted
sudo systemctl enable danted
2. Настройка приложений для использования прокси
Установка переменных окружения
Вы можете установить http_proxy
и https_proxy
для вашего пользовательского сеанса или на уровне системы:
export http_proxy="socks5://username:password@localhost:1080"
export https_proxy="socks5://username:password@localhost:1080"
Для проверки работоспособности этих переменных используйте команды, такие как curl
или wget
.
3. Использование cntlm
как шлюза для аутентификации
Если у вас есть необходимость в более сложной аутентификации, вы можете настроить cntlm
, который будет работать как промежуточный прокси между вашим сервером и SOCKS-прокси.
Установка cntlm
:
sudo yum install cntlm
Конфигурация cntlm
:
Откройте файл конфигурации /etc/cntlm.conf
и отредактируйте его, добавив учетные данные и необходимые прокси.
Username ваш_пользователь
Domain ваш_домен
Password ваш_пароль
Proxy socks5://ipaddress:1080
NoProxy localhost
Запуск cntlm
:
sudo systemctl start cntlm
sudo systemctl enable cntlm
Теперь вы можете настроить ваши приложения на использование cntlm
, задав соответствующие переменные окружения:
export http_proxy="http://localhost:3128"
export https_proxy="http://localhost:3128"
4. Дополнительные возможности
Если вы не хотите устанавливать сторонние сервисы, можно попробовать использовать инструменты, такие как proxychains
, которые перенаправляют сетевые соединения через SOCKS-прокси:
Установка proxychains
:
sudo yum install proxychains
Конфигурация proxychains
:
Редактируйте файл /etc/proxychains.conf
для добавления информации о вашем SOCKS-прокси в нижней части файла:
socks5 127.0.0.1 1080 # или ipaddress вашего прокси
Теперь вы можете запускать ваши приложения через proxychains
, например:
proxychains java -jar artifact.jar
Заключение
Согласно этим шагам, вы сможете решить проблему доступа к интернету для ваших приложений на CentOS 7 при использовании SOCKS-прокси. Программа должна корректно разрешать DNS-запросы через прокси, обеспечивая доступ к интернет-ресурсам, необходимым для функционирования Jenkins и Artifactory. Рекомендуется протестировать каждую часть конфигурации и удостовериться, что у вас есть необходимые разрешения для подключения через прокси.