Сайты в кладовке Фленов Михаил aka Horrific Спецвыпуск: Хакер, номер #062, стр. 062-070-5 Чтобы заархивировать файл, выполняем две команды: tar cf backup.tar /home/dump.sql gzip -9 backup.tar Чтобы разархивировать такой файл, выполняем команду: tar xfz /home/backup.tar.gz Как видим, все очень просто, а результат — реальная экономия. Перейдем к защите. В принципе, нет смысла защищать систему, если резервные копии беспорядочно валяются по всему диску. Очень часто в базе данных находятся важные данные, секретной является даже структура базы, она позволяет хакеру пронюхать много лишнего, чего ему не положено знать: если известны имена объектов, упрощается реализация атаки SQL-Injection. Однажды я видел, как секретные данные с хорошо защищенного сервера каждый час копировались на простой компьютер пользователя, на котором все настройки установлены по умолчанию. Такую систему хакер взломает за пять минут. К защите резервных копий нужно подходить со всей ответственностью. Самый простой вариант — поместить их в сейф, а оптимально — вытащить их из сейфа и закопать где-нибудь в Сибири на глубину в сто метров, тогда ни один хакер не найдет наших данных. Однако постоянно ездить в Сибирь накладно, поэтому лучше всего записать резервные копии на носитель и зашифровать файл. Напоминаю (или сообщаю тем, кто не знал), что шифрование файла с резервной копией backup.tar.gz с помощью пакета OpenSSH осуществляется следующей командой: /usr/bin/openssl des –in /home/backup.tar.gz –out /home/backup.sec В ответ создается файл backup.sec. Именно его и нужно записывать на носитель для долгосрочного хранения (потом не забываем удалить с компьютера файлы backup.tar.gz и backup.sec). При восстановлении в первую очередь расшифровываем файл: /usr/bin/openssl des –d –in /home/backup.sec \ –out /home/backup.tar.gz Далее уже разархивируем все файлы на свои места. Backup Complete Надеюсь, я убедил тебя в том, что необходимо создание резервных копий всего, что хранится на сервере. Ты уже выбрал лучший вариант резервирования. Осталось определиться с планом резервирования (когда будет производиться создание дампа базы и резервирование файлов) и начать действовать. Главное — никогда не опускать руки. Беда всегда приходит неожиданно, именно когда ты забыл создать резервную копию. Если же под рукой есть все необходимое для восстановления работоспособности, то беда не страшна. Пример создания дампа базы на PHP $db='имя базы'; // Подключаемся к базе @mysql_select_db($db); // Получаем список таблиц $res = mysql_query("SHOW TABLES FROM $db"); if (mysql_num_rows($res)==0) { // Если база не содержит таблиц, то нельзя делать дамп, иначе произойдет зависон print("База данных пустая. Дамп невозможен"); } else { while ($row = mysql_fetch_row($res)) { $tabs[] .= $row[0]; } // Запуск цикла, выполняющего дамп print("# Дамп базы данных: $db<BR><BR>"); foreach($tabs as $tab) { // Отображаем SQL-код удаления базы print("# Drop table ".$tab." <BR> DROP TABLE IF EXISTS '".$tab."';<BR><BR>"); // Определяем SQL-код создания базы |