пароли Linux в конфигурационных файлах

Некоторые программы на Linux, которые используют конфигурационные файлы, хотите, чтобы я ввел свой пароль в простом тексте в одном из их конфигурационных файлов. Например, newsbeauter, RSS-ридер хочет, чтобы я ввел свой пароль учетной записи Google в ~/.newsbeauter/config, если я хочу считать подачу Google Reader. Дурак также сортирует, хочет пароль в текстовом файле, но дает опцию ввода его на каждом входе в систему.

Там какое-либо безопасное обходное решение к хранению пароля в файле конфигурации как этот (например, для newsbeauter)? Я думал о запущении приложения как корень, но это не кажется правильным. Или так или иначе создавая и удаляя файл каждый раз я использую приложение.

Какие-либо идеи?

3
задан 17.09.2013, 15:25

3 ответа

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

Вы не можете защитить от противника, который имеет корень в Вашей рабочей системе, но можно защитить себя от украденного диска или различного not-too-smart вредоносного программного обеспечения, с этими двумя методами:

  • Настройте маленькую зашифрованную файловую систему (используйте dm-склеп или truecrypt, например), затем замените свои файлы конфигурации символьными ссылками, которые указывают на некоторое место в зашифрованном разделе. Это просто развернуться, но подвергает Вас опасности, когда зашифрованная фс смонтирована

    mount encrypted fs under /mnt/crypt
    cp ~/.application/config /mnt/crypt/app-config
    ln -s /mnt/crypt/app-config ~/.application/config
    unmount encrypted fs to lock config
    
  • Замените свои файлы конфигурации именованными каналами (mkfifo). Это будет только работать хорошо, если приложение считает конфигурацию в единственной передаче; после запуска приложение заблокируется при чтении файла конфигурации, пока Вы не запишете это в именованном канале. Можно затем сохранить зашифрованную версию файла где-то в другом месте (использование, например, gpg); при необходимости дешифруйте содержание с gpg и отправьте его на лету в канал. Это немного более безопасно, поскольку Вы должны предоставить вручную каждый доступ к файлу, но возможно менее удобны.

     # setup
     gpg -e -r my-address@domain.com <~/.application/config ~/.application/config.pgp
     mkfifo ~/.application/config
     # run application, application hangs waiting for config
     gpg -d <~/.application/config.pgp >~/.application/config
    
4
ответ дан 07.12.2019, 23:45

При выполнении некритического программного обеспечения, поскольку корень почти никогда не является хорошей идеей.

Что необходимо сделать, вместо этого изменение полномочия этих файлов так, чтобы только (пользователь, который запускает эти программы) можно было считать их. Чтобы удалить, например, читать, запишите и разрешение выполнения для кого-либо, но Вас на файле mine.conf, Вы были бы под своим accout

chmod og-rwx mine.conf
2
ответ дан 07.12.2019, 23:45

Или другой прием должен поместить файл конфигурации в каталоге, но убрать полномочия чтения для этого также так, чтобы Вы не видели, внутри просто делают

chmod a-r безотносительно /

Так, чтобы можно было только видеть в нем, если Вы - корень, или можно просто помнить то, чем файл называют также, но Вы все еще смогли бы сделать все в файл внутри, пока Вы знаете имя файла или если Вы - корень, чтобы сделать

sudo ls безотносительно /

0
ответ дан 07.12.2019, 23:45

Теги

Похожие вопросы