Появилась задача — обеспечить секретность хранения сертификатов доступа пользователей к внутренней сети из интернета. Плюс хранение самого секретного ключа, предназначенного для генерации новых ключей для новых пользователей.
Все это богатство — уже сгенерированные ключевые файлы пользователей, главный сертификат и т.д. лежат в директории содержащей поддиректории. И находится на сервере — пограничном файерволле, где запущен OpenVPN и ждет соединений из-вне. Плюс на этом-же сервере выпускаются ключи для новых пользователей.
На самом сервере пользователь один — это я, и пароль знаю тоже только я. Бэкапы конфигов ежедневно уходят во внутреннюю сеть на комп которым управляю тоже я. Но береженого Бог бережет. Поэтому хочу все не необходимые для текущей работы файлы зашифровать. А когда они понадобятся — быстро расшифровать, сделать изменения и снова спрятать от любопытных глаз.
Вначале хотел архивировать нужную директорию, шифровать полученный файл, удалять директорию и хранить только файл. Но в процессе поиска путей решения , нашел более подходящий мне вариант.
Все манипуляции происходят в Ubuntu 12.04. Но работать должно, примерно таким-же образом, и в других дистрибутивах. |
Утилита называется ccrypt.
Установка:
sudo aptitude install ccrypt
После установки пользователю становятся доступны 2 команды: ccrypt(или можно набрать ccencrypt) для шифрования и ccdecrypt для дешифрации.
Например, зашифруем файл file.txt:
$ ccencrypt 1.txt Enter encryption key: Enter encryption key: (repeat)
Два раза надо ввести пароль на архив. После этого прога удалит 1.txt и вместо него создаст зашифрованный 1.txt.cpt
Файл можно безопасно передавать через чужие руки.
Расшифровка:
$ Ccdecrypt1.txt.cpt
Попросит ввести пароль.
Появится расшифрованный файл 1.txt, а 1.txt.cpt исчезнет.
Все предельно просто.
Интересна работа с директориями.
$ ccencrypt dir –r
Тоже потребует два раза пароль и, рекурсивно обойдя все файлы в директории dir (вместо dir надо написать путь к каталогу), зашифрует их. Удалит все файлы и оставит их зашифрованные версии (файлы с теми-же именами, но добавлением расширения CPT). Все, недруг увидит имена файлов, но не их содержимое.
$ ccdecrypt –r dir
Запустит обратный процесс. Расшифрует файлы, удалит зашифрованные версии и восстановит изначальные.
То-есть, при работе с директорией шифруются ВСЕ файлы в директории и ее поддиректориях. Что в моей ситуации очень удобно. Не надо ничего никуда перемещать, ничего удалять, копировать… Все делает одна команда и все файлы остаются на своем месте.