Михаил Флёнов - Linux глазами хакера
Прежде чем сжимать какой-либо файл, рекомендуется подготовить tar-архив. Потом достаточно выполнить команду упаковки:
gzip -уровень файл.tar
В качестве ключа -уровень нужно указать степень компрессии. Максимальный уровень равен 9. После этого указывается имя tar-архива. Давайте сожмем архивный файл, который мы создали из директории /home, применяя наибольшую компрессию. Выполните следующую команду:
gzip -9 backup.tar
Теперь просмотрите содержимое директории (команда ls). Обратите внимание, что файла backup.tar больше нет. Вместо него появился backup.tar.gz, размер которого значительно уменьшился.
Чтобы разархивировать такой файл, можно пользоваться все той же командой tar, только необходимо указать ключи xfz:
cd /
tar xfz /home/backup.tar.gz
Эта команда сначала разархивирует gz-файл и тут же распакует tar-архив.
Если необходимо из gz-файла снова получить tar-архив (без его распаковки), то можно выполнить команду:
gzip -d /home/backup.tar.gz
После этого вы снова можете увидеть файл backup.tar, а backup.tar.gz исчезнет.
Теперь вы готовы написать свой сценарий, который будет собирать директории для архивирования в tar-файл, а затем сжимать его, чтобы уменьшить его размер. Но зачем использовать две команды, когда можно обойтись одной. Вот как это делается:
tar cvf - /home | gzip -9с > backup.tar.gz
В данном примере мы собираем в tar-архив директорию /home и тут же сжимаем ее утилитой gzip.
Помимо gzip для архивирования иногда используется утилита compress, но ее возможности по сжатию ниже, и к тому же вокруг нее были скандалы и разбирательства по поводу лицензии. Большинство администраторов уже перешли на использование gzip, и я вам рекомендую с самого начала привыкать к этой программе.
13.5.4. dump
Все предыдущие команды, которые мы рассматривали в данной главе, не являются специализированными командами резервирования. Это просто команды копирования и архивирование файлов. Утилита dump предназначено именно для создания резервной копии файловой системы Ext2.
Для выполнения резервной копии нужно, как минимум, указать:
□ -n — уровень резервной копии, который может изменяться от 0 до 9. При значении о создается полная резервная копия. Уровни выше 0 означают формирование резервной копии изменений, произошедших с момента последней полной резервной копии или создания копии с меньшим уровнем;
□ -u — требование при удачном завершении резервирования обновить файл /etc/dumpdates, в котором хранятся даты резервных копий;
□ -f файл — имя файла или устройство, на которое нужно производить резервное копирование.
Итак, простейшая команда создания полной резервной копии выглядит следующим образом:
dump -0u -f /home/backup.bak
Для сохранения изменений нужно изменить уровень, указав значение больше нулевого, например:
dump -1u -f /home/backup.bak
Для восстановления файлов из архива используется команда restore. Но прежде чем ее запускать, вы должны убедиться, что находитесь в директории, которая принадлежит восстанавливаемой файловой системе.
Директиве restore достаточно только указать ключ -f и файл, который нужно восстановить. Если применить ключ -i, то вы попадаете в интерактивный режим, в котором можно задать файлы для восстановления. Интерактивный режим похож на командную строку, в которой можно путешествовать по архиву и выполнять следующие директивы:
□ help — вывести краткую помощь по доступным командам;
□ ls — отобразить содержимое текущей директории;
□ pwd — показать текущую директорию;
□ add директория — добавить в список для восстановления указанный в качестве аргумента каталог;
□ cd — сменить текущую директорию;
□ add директория — удалить из списка восстановления директорию, указанную в качестве параметра;
□ extract — восстановить все файлы из списка;
□ quit — ВЫХОД.
13.6. Защита резервных копий
Нет смысла защищать систему, если компакт-диски с резервными копиями беспорядочно лежат у вас на столе. Резервные копии хранят все основные данные компьютера, и если диск попадет в руки хакера, то уже не надо будет ничего взламывать.
Однажды я видел, как секретные данные с хорошо защищенного сервера каждый час копировались на простой компьютер пользователя, на котором все настройки были установлены по умолчанию. Такую систему хакер взломает за пять минут.
К защите резервных копий нужно подходить со всей ответственностью. Самый простой вариант — поместить их в сейф. Но лучше будет зашифровать файл перед записью резервных копий на носитель. Напоминаю, что сделать это (для примера с файлом 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
После этого уже можно разархивировать все файлы на свои места.
Глава 14
Советы хакера
В этой главе нам предстоит познакомиться с различными атаками и методами взлома, которые могут использовать злоумышленники. Чтобы защитить систему, вы должны знать, как в нее могут проникнуть, а чтобы взломать, нужно быть в курсе, как обороняться. Это правило действует всегда и во всем, а не только в компьютерном мире. Как защититься от вора, если не иметь представления, как он взламывает замок? Если знать, что он станет его пилить, то можно сделать все возможное, чтобы этот процесс отнял слишком много времени, и вора можно было успеть остановить. В этой главе нам предстоит познакомиться с методами компьютерных преступников, чтобы пополнить свой арсенал противоядием.
Некоторые из рассматриваемых вопросов будут носить общий характер, потому что всякий способ имеет слишком много вариаций, и не всегда можно дать четкие рекомендации. Например, атака вирусов. Вроде бы все просто — есть зловредный код, который нужно искать и уничтожать. Но вирусы бывают разные, и для каждого из них могут быть свои методы обезвреживания. В то же время можно сформулировать общие правила для борьбы с ними. Пусть эти советы не дадут 100 % результат, но, по крайней мере, помогут в битве с врагом.
Опытные пользователи или администраторы могут заметить, что какие-то рекомендации устарели. Но кто не знает крылатое выражение "Все новое — это хорошо забытое старое". В теперешней сети очень много людей, которые присоединились к процессу совсем недавно. Они знакомы с современными технологиями, но при этом не знают истории. Я стал замечать, что хакеры снова стали использовать методы, которые работали 10 или 20 лет назад, и делают это успешно.
Почему давние методы взлома успешно воплощаются в жизнь? Опытные пользователи, которые имеют опыт борьбы и знают разные способы вторжения, просто со временем забывают про эту опасность, а новые — еще не обожглись.
При том количестве серверов и людей, которое насчитывает современная сеть Интернет, обязательно найдется хотя бы 1000 человек, которые попадутся на простейших методах взлома. Это связано с тем, что уровень подготовки пользователей Интернета невысок. Я не имею в виду школьную программу, я говорю об образовании в сфере компьютерной безопасности. Никто не обучает простых пользователей, а администраторы либо ленятся, либо просто не хотят тратить деньги на повышение квалификации.
14.1. Основы безопасности
Мы начинали книгу с рассмотрения того, как взламываются компьютеры, а напоследок поговорим про общие принципы безопасности. Некоторые аспекты, которые мы будем рассматривать, затронут только ОС Linux, а кое-какие советы можно применять к любой операционной системе и компьютеру (серверу) в целом.
В этой главе я развею некоторые мифы о безопасности и покажу множество примеров из собственного опыта.
Почему необходимо уметь строить оборонительные рубежи? Неужели ОС или серверные программы не могут быть изначально защищенными? Вы сами должны помнить об этом постоянно и именно потому, что ОС и программы всегда уязвимы, т.е. имеют погрешности, позволяющие хакеру получить доступ к файлам или возможностям, которых у него быть не должно.
Лазейки есть всегда, потому что программы пишут люди, а им свойственно ошибаться. Получается, что даже в самой защищенной программе есть дыра, просто ее, наверное, еще не нашли. Спросите любого хакера про самое защищенное ядро Linux, и он вам скажет, что последняя версия отличная и не содержит багов. Повторите вопрос через месяц, но на этот раз тоже ядро окажется дырявым и без заплаток, и с ним работать не рекомендуется.