Март 9

Linux Truecrypt command line.

 

Загрузка с сайта

Несмотря на то, что я нашёл частный репозиторий с deb-пакетом truecrypt’а, предпочитаю использовать версию с сайта. Например, текущая, на момент написания статьи, консольная версия truecrypt’а:
# wget http://www.truecrypt.org/download/truecrypt-7.0a-linux-console-x64.tar.gz
Распаковал архив командой:
# tar zxvf truecrypt-7.0a-linux-console-x64.tar.gz
На выходе получил исполняемый файл truecrypt-7.0a-setup-console-x64.

Установка Truecrypt

Для работы truecrypt’а надо установить дополнительные пакеты:
# aptitude install libfuse2 fuse-utils dmsetup
После установки запускаю, ранее извлечённый из архива, файл truecrypt-7.0a-setup-console-x64:
# ./truecrypt-7.0a-setup-console-x64
TrueCrypt 7.0a Setup
____________________
Installation options:
1) Install truecrypt_7.0a_console_amd64.tar.gz
2) Extract package file truecrypt_7.0a_console_amd64.tar.gz and place it to /tmp
To select, enter 1 or 2: 1
Before you can use, extract, or install TrueCrypt, you must accept the
terms of the TrueCrypt License.
Press Enter to display the license terms...
Читаю лицензионное соглашение до самого конца и набираю yes
Requirements for Running TrueCrypt:
-----------------------------------
- FUSE library and tools
- device mapper tools
Press Enter to continue...
Uninstalling TrueCrypt:
-----------------------
To uninstall TrueCrypt, please run 'truecrypt-uninstall.sh'.
Installing package...
usr/bin/truecrypt
usr/bin/truecrypt-uninstall.sh
usr/share/truecrypt/doc/License.txt
usr/share/truecrypt/doc/TrueCrypt User Guide.pdf
Press Enter to exit...

Шифрование раздела и создание контейнера

Шифрование раздела и создание контейнера мало чем отличаются. В первом случае, как аргумент команды, указывается раздел, а во втором случае – файл. При шифровании раздела все данные на нём уничтожаются. Раздел не надо форматировать перед шифрованием.
Приведу, как пример, шифрование раздела.
# truecrypt -c /dev/sda8
Volume type:
1) Normal
2) Hidden
Select [1]: 1
На этом этапе выбирается тип создаваемого тома. Normal — обычный, полностью зашифрованный, том. Hidden — незаметный, скрытый том, внутри реального отформатированного раздела. Для реального раздела-донора желательно выбирать раздел с файловой системой FAT32, чтобы внутрь раздела поместилось больше информации и уменьшилась вероятность повреждения скрытого тома.
Encryption algorithm:

1) AES
2) Serpent
3) Twofish
4) AES-Twofish
5) AES-Twofish-Serpent
6) Serpent-AES
7) Serpent-Twofish-AES
8) Twofish-Serpent
Select [1]:
Алгоритм шифрования AES самый быстрый и его, вероятно, лучше выбрать для томов, с которых будут запускаться программы. Для хранения информации можно выбрать любой алгоритм из представленного списка.
Hash algorithm:
1) RIPEMD-160
2) SHA-512
3) Whirlpool
Select [1]:
Просто нажимаю Enter. Первая хэш-функция в самый раз.
Filesystem:
1) None
2) FAT
3) Linux Ext2
4) Linux Ext3
5) Linux Ext4
Select [2]: 5
Файловая система для нового тома. Выбрал ext4.
Enter password:
Re-enter password:
Ввёл (и повторил вввод) достаточно длинный пароль: K.,k.nt,z?j.,rfljhjufz?Rjulf?vtyzgjldtxhj;blfz. Хочу заметить, что лучший пароль это не строфы из стрихотворений, а действительно случайный набор символов. Или псевдослучайный: Lxq-weqp=9Mhft9E&ad_W[\8^»,2nJqo-b$kQ[Hz[‘qV.
Enter keyfile path [none]:
Хорошая мысль создать ключевой файл на флэшке и указать его при шифровании. Главное в дальнейшем его не потерять. Но можно в качестве ключевого файла использовать простой текстовый файл с широко известным текстом. Например:
Статья 23
1. Каждый имеет право на неприкосновенность частной жизни, личную и семейную тайну, защиту своей чести и доброго имени.
2. Каждый имеет право на тайну переписки, телефонных переговоров, почтовых, телеграфных и иных сообщений. Ограничение этого права допускается только на основании судебного решения.
Статья 24
1. Сбор, хранение, использование и распространение информации о частной жизни лица без его согласия не допускаются.
2. Органы государственной власти и органы местного самоуправления, их должностные лица обязаны обеспечить каждому возможность ознакомления с документами и материалами, непосредственно затрагивающими его права и свободы, если иное не предусмотрено законом.
Статья 25
Жилище неприкосновенно. Никто не вправе проникать в жилище против воли проживающих в нем лиц иначе как в случаях, установленных федеральным законом, или на основании судебного решения.
Конечно лучше выбрать статьи из конституции другой страны или использовать другие тексты. Иначе можно обнаружить при потере ключевого файла и попытки его восстановления, что конституция уже изменилась и зашифрованный том не открывается.
Please type at least 320 randomly chosen characters and then press Enter:
(тут беспорядочно нажимаю на любые буквенные клавиши и иногда нажимаю Enter, чтобы увидеть сколько ещё раз надо долбить по клавишам, чтобы выполнить в сумме 320 случайных нажатий)
Characters remaining: 307
Characters remaining: 299
Done: 6,166% Speed: 81 MB/s Left: 5 minutes
The TrueCrypt volume has been successfully created.
Процесс завершился и зашифрованный том создан.

Монтирование зашифрованного тома

Чтобы примонтировать его к существующей папке выполняю команду:

# truecrypt /dev/sda8 /mnt

Смена пароля на зашифрованном томе

# truecrypt --new-password=new1pass2word3 -C /dev/sdb3
Enter password: (вводим существующий пароль)
Enter new keyfile [none]:
Please type at least 320 randomly chosen characters and then press Enter:
(долбим по клавиатуре 320 раз и нажимаем Enter)
(ждём какое-то время)
Password and/or keyfile(s) successfully changed.

Пароль успешно сменили.

Добавление ключевого файла к зашифрованному тому

# truecrypt --new-keyfiles=/media/blabla.txt -C /dev/sdb3
Enter password: (вводим действующий пароль на том)
Enter new password: (вводим новый пароль на том или нажимаем Enter для отключения пароля)

Please type at least 320 randomly chosen characters and then press Enter:
(жмём триста двадцать раз по клавишам на клавиатуре)

Password and/or keyfile(s) successfully changed.
Теперь для монтирования зашифрованного с помощью ключевого файла тома с пустым паролем необходимо вводить команду:
# truecrypt --keyfiles=/media/blabla.txt --password="" --protect-hidden=no /dev/sdb3 /media/1
Если пароль не пустой и необходимо его указать прямо в командной строке, то записываем его вместо кавычек.
Если пароль не пустой, то опцию —password можно не писать и ввести пароль в ответ на запрос.

Можно ли понять, что раздел или файл зашифрован?

Некоторые задают этот вопрос приводя в пример, например, строку из статьи википедии посвящённой Truecrypt’у: Ни один том TrueCrypt не может быть идентифицирован (тома TrueCrypt невозможно отличить от набора случайных данных, то есть файл нельзя связать с TrueCrypt как с программой, его создавшей, ни в какой форме и рамках).

Ещё раз отвечаю, что в этой фразе заключён другой смысл. Тут ясно написано, что увидев раздел или файл со случайными данными нельзя сказать, что он точно зашифрован с применением программы Truecrypt. Просто читать надо до конца фразы.

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

Если очень упростить, то можно сказать, что случайные данные представляют собой набор повторяющихся  последовательностей символов, огрызков читаемых данных от каких-то файлов, пустые промежутки. Слишком случайные данные — это набор неповторяющихся символов. Это шум, хаос, всплеск энтропии. Сжать такие «слишком случайные» данные каким-либо архиватором не представляется возможным. Ни один обычный раздел на винчестере не будет содержать в себе кластеры, полностью забитые слишком случайными данными.

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

Март 9

How to save the session is active at break SSH connection

1

В этой статье я расскажу про то как сохранить сессию активной при разрыве SSH соединения. Для этого нам пригодится одна очень важная программа, которая должна быть в арсенале у каждого системного администратора. Называется она screen. Эта программа является своего рода оконным менеджером для консоли. Давайте рассмотрим чем-же образом она может быть полезна.

 

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

Теперь давайте посмотрим чем может быть полезна программа screen:

  1. При разрыве соединения, сессия не прерывается, а продолжает выполняться в фоновом режиме.
  2. Если вам нужно запустить несколько терминальных сессий на сервере —  запустите столько сессий, сколько вам заблагорассудится. Программа позволяет легко переключаться между сессиями, запускать новые и удалять ненужные.
  3. Каждую сессию вы можете назвать своим именем, после чего в дальнейшем, при работе, вам будет легче переключаться между окнами.

Установка screen

Если вы работаете с Ubuntu, или Debian сервером, выполните команду:

1
sudo apt-get install screen

После установки, вы можете запустить программу набрав в консоли screen.

Полезные комманды

Комманды внутри самой программы:

  • Ctrl_A и Ctrl_D: Закрыть программу с сохранением запущенных в ней сессий.
  • Ctrl_A и C — Создать новое окно внутри программы
  • Ctrl_A и A Изменить заголовок окна
  • Ctrl_A и » Отобразить список запущенных сессий

Для того, чтоб переподключиться к программе после разрыва соединения:

  • Подключиться к работающей программе: screen -r
  • Подключиться к работающей программе, или запустит новую, если нет ни одного запущенного экземпляра программы: screen -D -r

Помимо этих команд, в программе имеется много других, список их вы можете посмотерть набрав Ctrl_A и ?

2