Promo

MACHOSTER

2 сент. 2013 г.

Администрирование сервера урок безопасности linux системы



Никто из нас не хочет, чтобы личная информация попала
в чужие руки. Но как защитить систему от атак и хищений данных? Неужели придется читать километровые мануалы по настройке и алгоритмам шифрования? Совсем не обязательно. В этой статье я расскажу, как сделать Linux- систему безопасной̆ буквально за 30 минут.

ВВЕДЕНИЕ

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

Когда я потерял смартфон, мне сильно повезло, что установленный̆ на него антивор оказался работоспособным и позволил удаленно стереть все данные из памяти девайса. Когда я по невнимательности открыл SSH-порт на домашней машине с юзером без пароля (!) во внешний мир (!!), мне сильно повезло, что на машину пробрались скрипт-кидди, которые, кроме смешной̆ истории шелла, не оставили никаких серьезных следов
своего пребывания в системе. Когда я случайно опубликовал в интернете листинг со своим паролем от Gmail, мне сильно повезло, что нашелся добрый̆ человек, который̆ сообщил мне об этом.

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

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









ПАРОЛЬ!
Все начинается с паролей. Они везде: в окне логина в Linux-дистрибутиве, в формах регистрации на интернет сайтах, на FTP- и SSH-серверах и на экране блокировки смартфона. Стандарт для паролей сегодня — это 8–12 символов в раз- ном регистре с включением цифр. Генерировать такие пароли своим собственным умом довольно утомительно, но есть простой способ сделать это автоматически: $ openssl rand -base64 6

Никаких внешних приложений, никаких расширений для веб-браузеров, OpenSSL есть на любой машине. Хотя, если кому-то будет удобней, он может установить и использовать для этих целей pwgen (поговаривают, пароль получится более стойким): $ pwgen -Bs 8 1

Где хранить пароли? Сегодня у каждого юзера их так много, что хранить все в голове просто невозможно. Довериться системе автосохранения браузера? Можно, но кто знает, как Google или Mozilla будет к ним относиться. Сноуден рассказывал, что не очень хорошо. Поэтому пароли надо хранить на самой машине в зашифрованном  контейнере. Отцы-основатели рекомендуют использовать для этого KeePassX. Штука графическая, что не сильно нравится самим отцам-основате- лям, но зато работает везде, включая известный  гугльзонд Android (KeePassDroid). Останется лишь перекинуть базу с паролями куда надо.

ШИФРУЕМСЯ
Шифрование — как много в этом слове... Сегодня шифрование везде и нигде одновременно. Нас заставляют пользоваться HTTPS-версиями сайтов, а нам все равно. Нам говорят: «Шифруй домашний каталог», а мы говорим: 
«Потом на- строю». Нам говорят: «Любимое занятие сотрудников Dropbox — это ржать над личными фотками юзеров», а мы: «Пусть ржут». 

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

Три наиболее известных и проверенных временем инструмента — это dm- crypt/LUKS, ecryptfs и encfs. Первый шифрует целые диски и разделы, второй и третий — каталоги с важной информацией, каждый файл в отдельности, что очень удобно, если потребуется де лать инкрементальные бэкапы или использовать в связке с Dropbox. Также есть несколько менее известных инструментов, включая TrueCrypt например.

Сразу оговорюсь, что шифровать весь диск целиком — задача сложная и, что самое важное, бесполезная. Ничего особо конфиденциального в корневом каталоге нет и быть не может, а вот домашний каталог и своп просто кладезь инфы. Причем второй даже больше, чем первый, так как туда могут попасть данные и пароли уже в расшифрованном виде (нормальные программеры запрещают системе скидывать такие данные в своп, но таких меньшинство). Настроить шифрование и того и другого очень просто, до- статочно установить инструменты ecrypts:

$ sudo apt-get install ecryptfs-utils

И собственно, включить шифрование:
$ sudo ecryptfs-setup-swap
$ ecryptfs-setup-private

Далее достаточно ввести свой пароль, используемый для логина, и перезайти в систему.

Да, все действительно так просто. Первая команда зашифрует и перемонтирует своп, изменив нужные строки в /etc/fstab. 

Вторая — создаст каталоги ~/.Private и ~/Private, в которых будут храниться зашифрованные и расшифрованные файлы соответственно. При входе в систему будет срабатывать PAM-модуль pam_ecryptfs. so, который смонтирует первый каталог на вто- рой с прозрачным шифрованием данных. 

После размонтирования ~/Private окажется пуст, а ~/.Private будет содержать все файлы в зашифрованном виде.

Не возбраняется шифровать и весь домашний каталог целиком. Производительность при этом упадет не сильно, зато под защитой окажутся во- обще все файлы, включая тот же сетевой каталог ~/Dropbox. 

Делается это так:
# ecryptfs-migrate-home -u vasya

Кстати, места на диске должно быть в 2,5 раза больше, чем данных у vasya, так что рекомендую заранее почиститься. После завершения опера- ции следует сразу войти под юзером vasya и про- верить работоспособность:

$ mount | grep Private
/home/vasya/.Private on /home/vasya
type ecryptfs ...

Если все ОК, незашифрованную копию данных можно затереть:
$ sudo rm -r /home/vasya.*

ЗАМЕТАЕМ СЛЕДЫ
ОK, пароли в надежном месте, личные файлы тоже, что теперь? А теперь мы должны позаботиться о том, чтобы какие-то куски наших личных данных не попали в чужие руки. Ни для кого не секрет, что при удалении файла его актуальное содержимое остается на носителе даже в том случае, если после этого произвести форматирование. 

Наши зашифрованные данные будут в сохранности даже после стирания, но как быть с флешками и прочими картами памяти? Здесь нам пригодится утилита srm, кото- рая не просто удаляет файл, а еще заполняет оставшиеся после него блоки данных мусором:

$ sudo apt-get install secure-delete
$ srm секретный-файл.txt home-video.mpg

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

# dd  if=/dev/zero of=/dev/sdb

Эта команда сотрет все данные на флешке sdb. Останется создать таблицу разделов (с одним раз- делом) и отформатировать в нужную ФС. Использовать для этого рекомендуется fdisk и mkfs.vfat, но можно обойтись и графическим gparted.