Логотип.
 Разделы сайта Cтатьи.
Сайт в разработке!

Статистика сайта.

Посещений за день: 50
Посещений за месяц: 414
Посещений за год: 27733


Баннеры.

DMconnect
Maksy's PWS


Статистика в картинках.

likes counter


  • Главная.
  • Новости.
  • Программы.
  • Файлы.
  • Контакты.
  • Чат "Пиво".
  • Статьи.
  • Ссылки.
  • Гостевая.
  • Шифрование диска в (K)Ubuntu.

     Данные в компьютерах обычно хранятся в открытом виде, как в Windows, так и в Linux, что дает доступ к любой информации практически любому, на нее покушающемуся (!) или так "случайному прохожему" или даже неслучайному. Если вы хотите что-то скрыть от посторонних глаз, то эта статья для вас - умеренных параноиков и пользователей (K)Ubuntu. Особенно это касается владельцев ноутбуков (про массовые кражи все читали).

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

     Я зашифровал не все разделы, а только пользовательские данные. Это нисколько не меньшая безопасность, чем шифровать весь корневой раздел со всеми пакетами и библиотеками!

     Итак, что требует шифрования:

     * swap

     * /home - поместить в контейнер tc (можно в виде файла, или в раздел)

     * /tmp - эти данные нужны только для одного сеанса, поэтому смело помещаем в tmpfs

     * /var/tmp - то же самое

     * /var/spool - здесь хранятся пользовательские задачи cron, задачи для принтера, лучше поместить в контейнер вместе с домашней папкой

     * /var/mail - в контейнер

     * /var/lib/slocate - в контейнер

     * /var/log - в контейнер. хотя кое-что на этапе загрузки не попадет сюда, но это не относится к пользовательским логам

     Для линукса есть как встроенные (dm-crypt, loop-aes...), так и стороннее средство - TrueCrypt, работающее как в Windows Vista/XP/2000, так и в Linux (правда примерно в 1.5 раза медленнее). И конечно же с открытым кодом (привет спецслужбам :) Для шифрования swap можно довериться средствам линукса

     Детально и коротко:

            sudo -i
            apt-get install cryptsetup
            echo aes >> /etc/modules
            echo dm_mod   >> /etc/modules
            echo dm_crypt >> /etc/modules
            swapoff -a
            cryptsetup -d /dev/urandom create cryptoswap /dev/sda2
            mkswap /dev/mapper/cryptoswap -L accessisdenied -v1
            echo 'cryptoswap /dev/sda2 /dev/urandom swap' >> /etc/crypttab
    

     В fstab заменить ваш swap на:

     
    /dev/mapper/cryptoswap none  swap  sw  0  0


     Далее

            dd if=/dev/urandom of=/dev/sda2 count=100
            swapon -a
    

     Дальше больше. Размещение в tmpfs

     
            mv /tmp /ttmp
            mkdir tmp
            chmod 777 tmp
    


     В /etc/fstab добавить:

     
            tmpfs /tmp tmpfs rw,noexec,nosuid,nodev,mode=0777
    


     Далее:

     
            mv /var/tmp /var/ttmp
            ln -s /tmp /var/tmp
    

     Теперь помещаем в криптоконтейнер каталоги из /var

            mkdir /home/.var
            chmod 755 /home/.var
            mv /var/spool/ /home/.var/spool
            ln -s /home/.var/spool /var/spool
            mv /var/mail /home/.var/mail
            ln -s /home/.var/mail /var/mail
            mkdir /home/.var/lib
            chmod 755 /home/.var/lib
            mv /var/lib/slocate /home/.var/lib/slocate
            ln -s /home/.var/lib/slocate /var/lib/slocate
            mv /var/log home/.var/log
            ln -s /home/.var/log /var/log
    

     Индексацию зашифрованных разделов нужно отключать, в файле /etc/updatedb.conf, в PRUNEPATHS добавить /home

     Затем перезагрузиться и удалить каталоги /ttmp, /var/ttmp Следующим этапом идет собственно шифрование раздела /home Я воспользовался руководством от MasterGnome, при этом переделав некоторые моменты, касающиеся инсталляции и форматирования.

     Для Ubuntu Feisty инсталляция несколько проще: Устанавливаем пакет Automatix2, если его у вас еще нет. Через Automatix устанавливаем TrueCrypt.

     Тестируем TC:

     if truecrypt --test &> /dev/null; then echo "Ok"; else echo "Error"; fi

     TrueCrypt позволяет создавать криптоконтейнеры как в разделах, так и в файлах, которые потом подключаются как разделы. Для замены одного другим в командах, достаточно поменять раздел (например /dev/sda3) на название файла (например home.tc).

     Truecrypt позволяет шифровать с использованием алгоритмов AES, Twofish, Serpent.

     Все три алгоритма очень надежны, и сейчас не существует даже теоретического способа взлома, кроме метода полного перебора. AES - выбран как правительственный стандарт в США

     Twofish - на процессоре AMD64 (linux kernel i386 2.6.20-16) самый быстрый. Опережающий AES в среднем на 20%

     Serpent - существенно медленнее остальных

     Заметил, что Twofish быстрее на AMD, а AES на Intel, причем на Intel Mobile оба алгоритма примерно равны. Вы можете выбрать любой из них, но я советую сначала протестировать на скорость на вашем компьютере. Используются хешовые функции RIPEMD-160,SHA-1 и Whirlpool.

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

     RIPEMD-160 - стоит по умолчанию. Для этого алгоритма даже теоретически взлом пока не возможен. Но вот его предшественник RIPEMD уже себя дискредитировал. Whirlpool - теоретически самая медленная, некоторые источники утверждают, что медленнее в 2-3 раза, чем остальные. Хотя мои тесты показали, что в TrueCrypt это не так. Как в Linux, так и в Windows XP отставание не более 5% от предыдущих. На сегодняшний момент самый стойкий алгоритм. И самый молодой. Можно использовать Whirlpool или RIPEMD-160.

      В TC есть возможность использовать каскады алгоритмов. Связка AES-Twofish вместе с Whirlpool и скрытый контейнер - это для суперсекретных данных ;)

     Прежде чем продолжить, сохраните где-нибудь папку /home. После этого, если у вас home расположен на отдельном разделе (пр. sda3), то его надо размонтировать:

     umount /home

     Для директории /home создадим внешний криптоконтейнер:

     truecrypt --encryption AES --type normal -c /dev/sda3

     Файловую систему как None, любой алгоритм хэша, и два раза пароль.

     Потом:

     truecrypt /dev/sda3

     Теперь форматирование контейнера:

     mkfs.ext2 -v /dev/mapper/truecrypt0
     mount /dev/mapper/truecrypt0 /home


     Переписать туда сохраненный /home со всеми вашими данными. Не забудьте про .var из сохраненного /home и удалите там все файлы

            umount /home
            truecrypt -d
    


     Вместо ext2 вы можете использовать и другую файловую систему: ext3, ReiserFS

     Truecrypt несомненно хорош и тем, что внутри зашифрованного контейнера можно спрятать еще один. Хотя в документации сказано, что внешний контейнер должен быть как FAT отформатирован, он прекрасно работает и с ext2. Но при превышении границы между контейнерами с ключом -P система не говорит об окончании места как в Windows, просто данные эти теряются.

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

            cd /usr
            wget http://privat.heinzelzwerg.de/howtos/debian  -->>
                  -->> /truecrypt/tcbootscreen.tar.bz2
            tar -xvjf tcbootscreen.tar.bz2
            chown root:root /usr/tcbootscreen/*
            chmod ugo+x /usr/tcbootscreen/*
            chmod ugo-x /usr/tcbootscreen/tcscreen.tmp
            chmod ugo-x /usr/tcbootscreen/main.log
    


     И изменить во всех скриптах вместо #!/bin/sh надо везде #!/bin/bash, иначе в Ubuntu выдается ошибка с declare

     Теперь скопировать

            mv /usr/tcbootscreen/tcbootscreen /etc/init.d/tcbootscreen
            update-rc.d tcbootscreen defaults
    


     В файле /usr/tcbootscreen/decrypt подставить свои значения для device и mountpoint

    >>

    BitByByte, 2000 г. (2025).