Обнаружение сетевого прокси-пароля в текстовых файлах в Linux/UNIX-понравившихся


9

Обычно в большой сети компьютер должен работать за аутентифицированным прокси-сервером - для любых подключений к внешнему миру требуется имя пользователя/пароль, который часто является паролем пользователя использует для входа в электронную почту, рабочие станции и т.д.

Это означает необходимость поставить сетевой пароль в файле apt.conf, а также, как правило, в http_proxy, ftp_proxy и https_proxy переменных сред определены в ~/.profile

Я понимаю, что с apt.conf, что вы могли бы set chmod 600 (который по умолчанию не установлен Ubuntu/Debian!), Но в нашей системе есть люди, которым нужны корневые привилегии.

Я также понимаю, что технически невозможно защитить пароль от кого-то, у кого есть права доступа, однако мне было интересно, есть ли способ скрыть пароль для предотвращения случайного обнаружения. Windows работает с пользователями в качестве админов, но каким-то образом хранит сетевые пароли (вероятно, хранится глубоко в реестре, где-то скрывается), так что при типичном использовании вы не наткнетесь на него в текстовом виде

Я прошу только с другого дня, Я полностью случайно обнаружил какой-то пароль elses таким образом, сравнивая файлы конфигурации через системы.

@monjardin - Аутентификация открытого ключа не является альтернативой в этой сети. Боюсь. Плюс я сомневаюсь, что он поддерживается среди большинства инструментов командной строки.

@Neall - Я не против других пользователей, имеющих доступ к сети, они могут использовать мои учетные данные для доступа к сети, я просто не хочу, чтобы они происходили по моему паролю в виде обычного текста.

0

Является ли аутентификация открытого ключа действительной альтернативой для вас?


0

Пока все три эти вещи так, вы не повезло:

  1. Сервер необходим доступ к веб
  2. Пользователи должны иметь полный контроль над сервером (корневой)
  3. Вы надеваете» t хотите, чтобы пользователи имели доступ к веб-сайту сервера

Если вы не можете удалить # 2 или # 3, ваш единственный вариант - удалить # 1. Настройте внутренний сервер, на котором размещаются все обновления программного обеспечения. Храните эту блокировку у других пользователей и не разрешайте другим серверам иметь доступ к сети.

Все, что вы пытаетесь сделать, это просто обмануть себя.


3

Предпочтительные приложения, которые интегрируются с Gnome Keyring. Другая возможность - использовать SSH-туннель для внешней машины и запускать приложения через него. Взгляните на опцию -D для создания локального прокси-интерфейса SOCKS, а не одноразового -L.


1

Если конкретные инструменты, которые вы используете, не допускают обфускацию формата, или вы можете создать какой-то рабочий процесс, чтобы перейти от обфускации к простой по требованию, вам, вероятно, не повезло.

Одна вещь, которую я видел в таких случаях, это создание индивидуальных учетных данных для каждого сервера, для каждого пользователя или для каждого сервера или для каждого пользователя, которые имеют доступ только к прокси-серверу с определенного IP-адреса.Он не решает вашу основную проблему обфускации, но смягчает последствия того, что кто-то видит пароль, потому что это так мало.

Что касается последнего варианта, мы придумали кодировку пароля «обратного склепа» на работе, которую мы используем для таких вещей. Это только обфускация, потому что все данные, необходимые для декодирования pw, хранятся в закодированной строке, но это мешает людям случайно просматривать пароли в виде обычного текста. Таким образом, вы можете, например, сохранить один из вышеуказанных паролей в этом формате, а затем написать оболочку для apt, которая динамически строит apt.conf, вызывает реальный apt, а при выходе удаляет apt.conf. Вы все еще в конце концов используете pw в открытом тексте, но это сводит к минимуму окно.


2

Существует множество способов скрыть пароль: вы можете сохранить учетные данные в формате rot13 или BASE64 или использовать тот же password-scrambling algorithm, что использует CVS. Однако реальный трюк делает ваши приложения осведомленными о алгоритме скремблирования.

Для переменной среды в ~/.profile вы можете хранить их кодируемые и затем декодировать их перед установкой переменных, например:

encodedcreds="sbbone:cnffjbeq" 
creds=`echo "$encodedcreds" | tr n-za-mN-ZA-M a-zA-Z` 

Это установит creds в foobar:password, который затем можно вставлять в http_proxy и т.д.

Я предполагаю, что вы это знаете, но он повторяет: это не добавляет никакой безопасности. Он просто защищает от непреднамеренного просмотра пароля другого пользователя.


0

Мы решили эту проблему, не запрашивая прокси-пароли на rpm, apt или других подобных обновлениях (вирусные базы, файлы Windows и т. Д.). Это небольшой белый список известных репозиториев для добавления в прокси-сервер.

  0

К сожалению, у меня нет никакого права голоса в политике проксирования в сети. У меня была такая же ситуация в обоих университетах, в которых я работал. 20 сен. 082008-09-20 15:47:09


0

Предположим, вы можете создать локальный прокси-сервер, направить на него эти инструменты, а затем локальный прокси-сервер в интерактивном режиме попросит пользователя ввести пароль внешнего прокси-сервера, который он будет применять. Он мог бы, возможно, запомнить это в течение нескольких минут в обфускации внутреннего хранилища.

Очевидным вектором атаки будет привилегированный пользователь, чтобы изменить этот локальный прокси-сервер, чтобы сделать что-то еще с введенным паролем (как могли бы с чем-либо еще, например, с клиентом электронной почты, который запрашивает его или самой системой окна), но по крайней мере, вы были бы в безопасности от непреднамеренного просмотра.


6

С помощью следующего подхода вам никогда не придется сохранять свой прокси-пароль в виде обычного текста. Вы просто должны ввести пароль в интерактивном режиме, как только вам нужно HTTP/HTTPS/FTP доступ:

  • Использование OpenSSL для шифрования простого текста прокси-пароля в файл, с, например, AES256 шифрование:

OpenSSL ENC -AES-256-CBC -in pw.txt отъезда pw.bin

  • Используйте (другое) пароль для защиты кодированного файла
  • Удалить пустой текст pw.txt
  • Создайте псевдоним, напр. ~ /.псевдоним, чтобы установить ваши http_proxy/https_proxy/FTP_PROXY переменные окружения (установить соответствующие значения для $ USER/прокси/$ PORT)

псевдоним MyProxy = 'PW = `OpenSSL Айз-256-CBC -d -in PW .bin`; PROXY = "HTTP: // $ USER: $ PW @ прокси: $ PORT"; экспорт http_proxy = $ PROXY; экспорт https_proxy = $ PROXY; экспорт ftp_proxy = $ ПРОКСИ»

  • вы должны на этот файл в своей обычной среде оболочки (на некоторых системах это делается автоматически)
  • типа„MyProxy“и введите OpenSSL пароль, используемый для шифрования файл
  • сделано.

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

alias clearproxy = 'export http_proxy =; export https_proxy =; экспорт ftp_proxy =»

+2

обратите внимание, что вы можете использовать 'read -s PW' в« myproxy »для достижения аналогичного результата (просто прочитайте пароль из командной строки каждый раз, когда вам это нужно) 09 ноя. 152015-11-09 09:51:09


0

Я модифицированный раствор:

редактировать /etc/bash.bashrc и добавьте следующие строки:

alias myproxy='read -p "Username: " USER;read -s -p "Password: " PW 
PROXY="$USER:[email protected]:80"; 
export http_proxy=http://$PROXY;export Proxy=$http_proxy;export https_proxy=https://$PROXY;export ftp_proxy=ftp://$PROXY' 

Со следующего входа введите myproxy и введите ваш пользователь/комбинированную пароль! Теперь работа с sudo -E

-E, --preserve-окр Указывает на политику безопасности, что пользователь хочет, чтобы зарезервировать их существующие переменные среды.

например. sudo -E apt-get update

Примечание: настройки прокси-сервера только действительные во время сеанса оболочки