Вопрос или проблема
Мне нужно экспортировать прокси на RHEL 7 с текущими учетными данными вошедшего пользователя.
Я могу сделать это, добавив вручную в .bashrc или .bash_profile.:
export http_proxy=http://username:[email protected]:6080
export https_proxy=http://username:[email protected]:6080
Указанный метод работает хорошо. Но я не хочу использовать этот метод, так как мы жестко кодируем имя пользователя и пароль, и это также небезопасно.
Возможно ли использовать существующий файл /etc/shadow в качестве пароля для экспорта прокси?
Вы можете разместить что-то вроде следующего в виде скрипта в каталоге /etc/profile.d/:
#!/bin/bash
if [ $SHLVL = 1 ]; then
echo -n "Введите пароль прокси:"
read -sr mypass
export http_proxy="http://$USER:[email protected]:6080"
export https_proxy=$http_proxy
echo
fi
if [ $SHLVL = 1 ]
предотвратит выполнение скрипта при создании подсобытий, например, при запуске скрипта для ведения журнала.
read -s
предотвратит отображение ввода при вводе пароля.
$USER
— это переменная окружения, которая содержит текущее имя пользователя.
Заключительный echo
просто печатает новую строку, чтобы следующий запрос появился на следующей строке.
Настоящая проблема заключается в необходимости аутентификации по имени пользователя и паролю при подключении к прокси. Так или иначе, вам нужно будет установить имя пользователя и пароль где-то при подключении к прокси.
Есть причина, по которой формат конфигурационного файла PAC прокси не включает аутентификацию по паролю.
Установите пароль в приложении
Вместо того чтобы устанавливать URL прокси в среде bash, вам нужно определить URL прокси для каждого приложения. Например, для установки пакетов Redhat вы можете определить прокси в /etc/yum.conf
или в любом из файлов /etc/yum.repos.d/*.repo
.
Аналогично для веб-браузеров установите URL прокси в настройках браузера.
Цепочка прокси
Запустите локальный прокси, который не требует пароля, но когда он подключается к фактическому, верхнему прокси, вы можете определить имя пользователя и пароль.
Используйте инструмент, такой как proxy-login-automator
Ответ или решение
Экспорт прокси в Red Hat Linux 7 с использованием текущих учетных данных пользователя может быть выполнен с учетом безопасности, избегая жесткого кодирования паролей в конфигурационных файлах. Давайте подробно обсудим несколько подходов к решению этой задачи.
1. Использование read
в скрипте
Одним из наиболее простых и безопасных способов экспорта прокси является использование скрипта, который запрашивает у пользователя ввод пароля в момент его выполнения. Это можно реализовать в скрипте, который будет помещен в директорию /etc/profile.d/
:
#!/bin/bash
if [ $SHLVL = 1 ]; then
echo -n "Введите пароль прокси: "
read -sr mypass
export http_proxy="http://$USER:$mypass@proxy-server:6080" # Укажите адрес прокси
export https_proxy=$http_proxy
echo
fi
Объяснение кода:
if [ $SHLVL = 1 ]; then
— данная конструкция предотвращает выполнение скрипта в подшеллах, что может быть полезно в различных сценариях выполнения скриптов.read -sr mypass
— эта команда позволяет вводить пароль без его отображения на экране.- Использование переменной
$USER
автоматически подставляет имя текущего пользователя.
2. Установка прокси в конфигурационных файлах приложений
Вместо того чтобы устанавливать прокси на уровне среды, вы можете конфигурировать его для конкретных приложений напрямую. Например, для управления пакетами в RHEL, вы можете добавить настройки прокси в файл /etc/yum.conf
или в файлы в каталоге /etc/yum.repos.d/
:
proxy=http://proxy-server:6080
proxy_username=username
proxy_password=mypass # Не рекомендуется жесткое кодирование паролей
Учтите, что данный метод также требует аккуратности с безопасностью, и рекомендуется избегать явного указания паролей.
3. Использование локального прокси-сервера
Еще одним подходом является использование локального прокси-сервера, который будет принимать запросы без пароля и передавать их на внешний прокси, где аутентификация уже будет выполнена. Для этого можно использовать, например, proxy-login-automator
или другие инструменты.
Рекомендации по безопасности
- Избегайте жесткого кодирования: Всегда старайтесь избегать жесткого указания паролей в скриптах и конфигурациях.
- Используйте менеджеры секретов: Рассмотрите возможность применения менеджеров секретов, таких как
HashiCorp Vault
или встроенные инструменты для управления секретами, которые могут хранить ваши учетные данные безопасно. - Шифрование: Изучите возможность использования шифрования для ваших сценариев, чтобы минимизировать риск утечки паролей.
Заключение
Экспорт прокси в RHEL 7 с использованием текущих учетных данных можно реализовать различными способами. Основное внимание следует уделить безопасности, чтобы избежать жесткого кодирования паролей. Выбор метода будет зависеть от контекста вашего использования и уровня удобства, требуемого для автоматизации.