Основы безопасности в Linux!
Всем доброго утра или тихой ночи!:)
Сегодня утром (у меня кстати оно и есть…) пришла мысль запостить основы безопасности, для правоверных линуксоидов в наше тревожное время!
Начнем:
1. Все начинается с паролей и также на них и заканчивается, для кого-то:(. Они везде: в окне логина в Linux-дистрибутиве, в формах регистрации на интернет-сайтах, на FTP- и SSH-серверах и на экране блокировки смартфона. Стандарт для паролей сегодня — это 8–12 символов в разном регистре с включением цифр, но мало кто его соблюдает:(. Генерировать такие пароли своим собственным умом довольно утомительно (мы в голову едим, а не напрягаем нейронные сети коры головного мозга), но есть простой способ сделать это автоматически:
$ openssl rand -base64 6
Никаких внешних приложений, никаких расширений для веб-браузеров, OpenSSL есть на любой машине. Хотя, если кому-то будет удобней, он может установить и использовать для этих целей pwgen (поговаривают, пароль получится более стойким):
$ pwgen -Bs 8 1
Где хранить пароли? Сегодня у каждого юзера их так много:(, хотя лучше хранить в головном мозге, ментальных зондов еще британские ученные не создали на этой планете:))). Довериться системе автосохранения браузера? Можно, но кто знает, как Google или Mozilla будет к ним относиться и к вашей глупости!? Сноуден рассказывал, что не очень хорошо. Поэтому пароли надо хранить на самой машине в зашифрованном контейнере. Отцы-основатели рекомендуют использовать для этого KeePassX. Штука графическая, что не сильно нравится самим отцам-основателям, но зато работает везде, включая известный гугль-зонд Android (KeePassDroid).
2. Шифрование — как много в этом слове для русского…
Сегодня шифрование везде и нигде одновременно. Нас заставляют пользоваться HTTPS-версиями сайтов, а нам все равно. Нам говорят: «Шифруй домашний каталог», а мы говорим: «Потом настрою». Нам говорят: «Любимое занятие сотрудников Dropbox — это ржать над личными фотками юзеров», а мы: «Пусть ржут». Между тем шифрование — это единственное относительное (подчеркиваю относительность для криптоатак…) средство защиты на сегодняшний день. А еще оно очень доступно и сглаживает морщины.
В Linux можно найти «тонны» средств шифрования всего и вся, от разделов на жестком диске до одиночных файлов. Три наиболее известных и проверенных временем инструмента — это dm-crypt/LUKS, ecryptfs и encfs. Первый шифрует целые диски и разделы, второй и третий — каталоги с важной информацией, каждый файл в отдельности, что очень удобно, если потребуется делать инкрементальные бэкапы или использовать в связке с Dropbox или с Mega. Также есть несколько менее известных инструментов, включая (несчастный) TrueCrypt например.
Сразу оговорюсь, что шифровать весь диск целиком — задача сложная и, что самое важное, бесполезная. Мало чего конфиденциального в корневом каталоге может найти злобный школьник — ккакер:), а вот домашний каталог и своп просто кладезь инфы. Причем второй даже больше, чем первый, так как туда могут попасть данные и пароли уже в расшифрованном виде (нормальные адекватные кодеры — запрещают системе скидывать такие данные в своп, но таких меньшинство). Настроить шифрование и того и другого очень просто, достаточно установить инструменты ecrypts:
И, собственно, включить шифрование:
$ sudo ecryptfs-setup-swap
$ ecryptfs-setup-private
Далее достаточно ввести свой пароль, используемый для логина, и рестартануть систему. Первая команда зашифрует и перемонтирует своп, изменив нужные строки в /etc/fstab. Вторая — создаст каталоги ~/.Private и ~/Private, в которых будут храниться зашифрованные и расшифрованные файлы соответственно. При входе в систему будет срабатывать PAM-модуль pam_ecryptfs.so, который смонтирует первый каталог на второй с прозрачным шифрованием данных. После размонтирования ~/Private окажется пуст, а ~/.Private будет содержать все файлы в зашифрованном виде.
Не возбраняется шифровать и весь домашний каталог целиком:) The Good.
Производительность при этом упадет не сильно — применяйте SSD по-шустрее:), зато под защитой окажутся вообще все файлы, включая тот же сетевой каталог ~/Dropbox. Делается это так:
# ecryptfs-migrate-home -u name user
Кстати, места на диске должно быть в 2,5 раза больше, чем данных у name user^), так что рекомендуется заранее почиститься. После завершения операции следует сразу войти под юзером и проверить работоспособность:
$ mount | grep Private
/home/name user/.Private on /home/name user type ecryptfs …
Если все ок, незашифрованную копию данных можно просто килльнуть:
$ sudo rm -r /home/name user.*
3. Заметаем следы^:)
Пароли в относительно «надежном» месте, личные файлы тоже, что теперь? А теперь мы должны позаботиться о том, чтобы какие-то куски наших личных данных не попали в чужие руки. Ни для кого не секрет, что при удалении файла его актуальное содержимое остается на носителе даже в том случае, если после этого произвести форматирование. Наши зашифрованные данные будут в сохранности даже после стирания, но как быть с флешками и прочими картами памяти? Здесь нам пригодится утилита srm, которая не просто удаляет файл, но и заполняет оставшиеся после него блоки данных мусором (господа полицейские могут, удивляться потом, вспомнил 2005 год и техническую экспертизу, которая возилась 6 месяцев с 2-я моими HDD по 160 Gb^) ):
$ sudo apt-get install secure-delete
$ srm секретный-файл.txt home-video.mpg
Как всегда, все просто до неприличия. Далее, если речь идет о всем носителе, то можно воспользоваться старым добрым dd:
# dd if=/dev/zero of=/dev/sdb
Эта команда сотрет все данные на флешке sdb. Далее останется создать таблицу разделов (с одним разделом) и отформатировать в нужную ФС. Использовать для этого рекомендуется fdisk и mkfs.vfat, но можно обойтись и графическим gparted (одним из моих любимых приложений…:) ).
А на сегодня ВСЁ, берегите свои данные и личную жизнь…