У меня есть сервер Debian Lenny, на котором запущено производственное приложение. Недавно консультант попросил нас включить шифрование диска для защиты данных. Он считает, что полное шифрование диска потребует, чтобы мы очистили диски и начали установку сервера с нуля, поэтому шифрование хранилища MySQL и корневых веб-файлов будет достаточно.
Итак, я подумываю создать новый раздел и переместить туда корень сайта apache вместе с файлами данных MySQL и зашифровать его с помощью какого-либо пакета / инструмента.
Теперь мои вопросы просты:
Цените свое время и помощь, заранее спасибо!
С Уважением,
Эмран
Первое, что следует помнить, это то, что консультант не несет здесь бремя как с точки зрения производительности, так и с точки зрения беспокойства. Автоматическая перезагрузка больше не будет возможна, и во избежание компрометации безопасности должно быть очень мало пользователей, у которых есть пароль шифрования, разрешающий перезагрузку. Общие рекомендации по шифрованию часто неуместны.
Шифрование данных защищает от один конкретный сценарий атаки, и это, вероятно, не самая вероятная уязвимость. Шифрование данных защищает вас от злоумышленника, который физически выходит с вашими дисками данных. Если вас беспокоит этот сценарий, подумайте о более эффективных физических средствах защиты - например, запирающих панелях на передней части стойки.
Шифрование данных обычно не обеспечивает достаточной защиты от злоумышленника, который взламывает ваше веб-приложение по сети. Злоумышленник, скорее всего, будет иметь как минимум те же привилегии, что и ваше веб-приложение, которые включают чтение и запись в базу данных, даже если она зашифрована на диске.
Не забудьте учесть снижение производительности, которое это приведет к вашей базе данных MySQL. Чтение и запись на зашифрованные диски будут значительно медленнее. Если вы уже сталкиваетесь с проблемами производительности, это может серьезно сломать ситуацию.
MadHatter и JanC дали вам хороший совет. Как сказал JanC, это возможно чтобы сделать это, не протирая машину, но для ваших целей это не кажется необходимым.
Еще одна вещь, о которой вам нужно помнить, - это зашифровать раздел подкачки. Для этого вам необходимо отключить свопинг, перезагрузить компьютер, чтобы он исчез, безопасно удалить раздел подкачки, зашифровать его, повторно включить подкачку и перезагрузить компьютер. Я не совсем уверен, как это настроить в Debian, но вам нужно будет ввести пароль довольно рано в процессе загрузки.
Если вам не удастся зашифровать раздел подкачки (и ваш каталог / tmp и любые другие места, куда могут записывать ваши приложения), части ваших конфиденциальных данных будут записаны на диск в незашифрованном виде.
Полное шифрование диска лучше всего выполнять с помощью cryptsetup и LUKS. Самый простой способ настроить это - выполнить новую установку; в установщике есть опция, которая обо всем позаботится за вас.
Если это не вариант, вам придется сделать это вручную. В Интернете можно найти несколько руководств, например Вот.
В качестве альтернативы вы также можете выполнить шифрование на основе файлов, используя eCryptFS (Достаточно ли этого, зависит от того, от чего вы пытаетесь защититься).
Я думаю, что ваш план в целом верен; шифрование раздела предоставит вам кусок зашифрованного безопасного хранилища без переустановки всей машины.
Обратите внимание, что эта машина больше не будет полезна при загрузке без присмотра. Он загрузится, поскольку корневой раздел не будет зашифрован, но он не сможет запустить mysql; вы должны вручную вводить пароль шифрования при каждой перезагрузке. Вы, конечно, можете написать сценарий, но тогда пароль шифрования сохраняется на машине, и это действительно противоречит цели упражнения. Поэтому убедитесь, что вы хотите это сделать, прежде чем делать это.
Я написал довольно подробную техническую заметку о том, как я это сделал, которую вы можете прочитать на http://www.teaparty.net/technotes/crypto-fs.html если тебе интересно. Работа была проделана на Fedora, но не для Fedora.
После того, как вы настроили зашифрованный раздел, вы просто используете «cp» или «mv», чтобы поместить на него файлы, и обычно связываете их из их старого местоположения (/ var / lib / mysql или где-то еще).
Я бы начал с того, что спросил вашего консультанта, от чего должно защищать шифрование диска. Все, что он будет делать, это (если вы настроили его так, чтобы для расшифровки требовалась кодовая фраза), это не давало людям получить доступ к данным, если они украли систему. Он не защитит данные во время работы системы - если вам нужно это сделать, то это неправильный подход.
Если вы используете шифрование, вам необходимо убедиться, что вы зашифровали 3 вещи:
Это руководство по debian может помочь вам начать работу. Чтобы быть немного ленивым, я бы, вероятно, предложил создать один небольшой зашифрованный раздел, для которого вам понадобится кодовая фраза для разблокировки, которая содержит ключи для разблокировки всех других разделов. Это будет проще, чем вводить несколько паролей при загрузке.
Наконец, проверьте текущую загрузку ЦП и ввода-вывода. Если вы уже сильно загружены, у вас, вероятно, нет необходимой резервной мощности. Возможно, вам придется изменить аппаратную платформу или обновить ее.