Linux
Шрифт:
• в конце рабочей недели делается полная резервная копия системы;
• в течение недели делается нарастающее резервирование системы (то есть резервируется изменение данных по сравнению с прошлым днем);
• при особо важных изменениях в системе резервная копия делается немедленно.
Однако достаточно часто используется резервирование не всей системы, а только особо важных данных (например, базы данных), но с совершенно другим интервалом (к примеру, каждый час).
Существуют специальные программные пакеты, позволяющие писать сценарии автоматизированного сохранения и восстановления данных. Для простых схем резервирования достаточно часто используются скрипты, написанные администратором системы.
Резервирование RPM-базы
При взломе системы взломщик обычно модифицирует для своих нужд несколько файлов, устанавливаемых при инсталляции из пакетов RPM. Если есть подозрение на взлом системы – одним из первых действий будет проверка целостности этих файлов. Однако, если работал опытный взломщик, велика вероятность того, что он подправит нужным ему образом базу установленных RPM-пакетов или, вообще, уничтожит ее. На функциональности системы отсутствие или повреждение базы установленных RPM-пакетов
Для проверки целостности установленных пакетов можно воспользоваться командой
rpm -Va
Но не забывайте после установки или удаления пакетов обновлять резервную копию базы RPM.
Файлы регистрации
Первое, что делает опытный взломщик системы после успешного проникновения в нее – заметает следы. А поскольку ведутся специальные файлы регистрации пользователей в системе, подключений к сетевым сервисам и тому подобных событий, вполне очевидным действием взломщика является уничтожение или модификация файлов журналов. Поэтому крайне важно сохранить эти файлы в неприкосновенности. Начинать надо с ограничения списка пользователей, способных читать и писать в каталог /var/log.
Регулярно инспектируйте свои журнальные файлы. Большое количество неудачных попыток регистрации или сканирование портов с одного и того же компьютера может указывать на попытку вторжения. Чтобы узнать, где ваш дистрибутив ведет системные журналы, нужно посмотреть в файл /etc/syslog.conf, который указывает syslog, куца записывать различные сообщения. Если вы заметили, что в журнальных файлах кто-то похозяйничал, необходимо определить, когда это началось и каких процессов касалось. Лучше всего в такой ситуации восстановить журналы с резервных копий и определить момент взлома.
Можно настроить syslog так, чтобы он отсылал копию наиболее важных данных на безопасную систему. Это предотвратит попытки взломщика скрыть свою деятельность путем удаления информации о его действиях в системе. Более подробную информацию по syslog.conf можно найти на соответствующей странице помощи (man-странице).
Обновляйте операционную систему
Большинство систем Linux устанавливаются с компакт-дисков. Но жизнь не стоит на месте, выходят различные обновления и исправления программ. К примеру, к дистрибутиву Red Hat только официальных обновлений за четыре месяца набралось более ста тридцати мегабайт. И это далеко не все обновления! Однако в погоне за номером версии не стоит устанавливать самое свежее программное обеспечение. Есть одно неплохое правило «Работает – не трогай!» Нашли в программе ошибку – обновите. Хотите получить самую свежую версию программы – подождите неделю-другую после ее выхода. Пусть на грабли наступают другие. За это время наверняка в безопасности системы найдутся прорехи или в программе ошибки. Однако после обнаружения ошибки в безопасности программы, не затягивайте с ее обновлением – велик шанс, что вашу систему попытаются взломать, используя именно эту брешь.
Действия во время и после взлома системы
Если вы обнаружили, что ваша система взломана – не паникуйте, расслабьтесь. Поспешные действия еще никого до добра не доводили.
Нарушение безопасности
Проще всего обнаружить физический взлом системы или подключение к вашей сети. В каждой фирме есть служба безопасности, воспользуйтесь ее услугами или вызовите представителей правоохранительных органов.
Если обнаружено вторжение в сеть, первым делом отсоедините вашу сеть. Если это представляется невозможным, запретите доступ из сети взломщика или заблокируйте пользователей в системе. После того как будет сделано что-либо из вышеперечисленного (отсоединена сеть, запрещен доступ из сети взломщика или заблокированы его учетные записи), следует ликвидировать все его пользовательские процессы.
Некоторое время после этого необходимо отслеживать состояние системы, поскольку попытка взлома может повториться, причем необязательно от имени этого же пользователя или с того же сетевого адреса.
Взлом системы произошел
Взлом обнаружен. Что дальше?
Закрытие брешиЕсли вы четко знаете, каким образом взломщик проник в систему, постарайтесь сразу же закрыть эту брешь. К примеру, взлом произошел через сервер Samba. Самый простой выход – завершить процесс и отправиться в Интернет искать решение проблемы. Как правило, существует обновленная версия программы или какой-либо список исправлений известных ошибок.
Но это еще не означает, что вы в безопасности. Проверьте все ваши журнальные файлы на предмет сомнительных событий. Проверьте существование более свежих версий ключевого программного обеспечения и обновите его.
Оценка поврежденийОцените повреждения. Выясните, что было нарушено. Не исключено, что в результате взлома проще переустановить систему, чем пытаться восстановить. Правда, такие тяжелые повреждения встречаются не часто.
Так как Linux достаточно легко инсталлировать, рекомендуется создать специальный конфигурационный файл kickstart, содержащий список установленных в системе пакетов, который затем используется при инсталляции системы. А конфигурационные файлы следует заранее переписать. Рекомендуется также восстановить систему из резервной копии, поскольку наверняка резервная копия содержит важные данные. Однако нужно очень точно определить момент взлома системы, чтобы не случилось так, что восстановленная из резервной копии система уже содержит «закладки» взломщика.
Выслеживание взломщикаВзломщик заблокирован, система восстановлена, откуда пришел взломщик определено. Однако не следует забывать, что раз взломали вас, могут взломать и кого-то другого. Поэтому следует сообщить об атаке администратору системы, с которой была взломана ваша система (этого администратора можно найти с помощью базы internic). Пошлите ему описание процесса взлома, описание нанесенных повреждений и приложите содержимое системных журналов с датой и временем событий. Как правило, система, откуда была произведена атака, оказывается тоже взломанной, но администратор об этом даже не подозревает.
Опытные взломщики используют большое количество промежуточных, посреднических систем. Поэтому не стоит сразу предъявлять претензии администратору системы, откуда произошел взлом. Как говорят китайцы: "Не теряйте лицо". Будьте очень вежливы с администраторами других систем при выслеживании взломщика, и они сделают все возможное для его поимки.Ссылки
В Интернете существует очень много узлов, посвященных безопасности систем UNIX и специфике безопасности Linux. Обязательно подпишитесь на списки рассылки по вопросам безопасности и анонсы свежих выпусков программ. В частности, большой список русскоязычных рассылок, в том числе и по Linux, можно найти на сайте www.citycat.ru. Кроме того, можно посетить и эти адреса:
• www.rootsheU.com – сайт, полезный для изучения современных методов взлома, которые сейчас используют взломщики;
• www.netspace.org/lsv-archive/bugtraq.html/ – содержит советы в области безопасности;
• www.aoy.com/Linux/Security/ – хороший узел по безопасности в Linux.
Вопросы безопасности затрагивают документы, находящиеся и по нижеприведенным ссылкам.
• www.linuxdocs.org – Network Administrators Guide (Руководство сетевого администратора).
• linux.webclub.ru/books/linuxsos/index.html – безопасность и оптимизация Linux. Редакция для Red Hat – русский перевод.
• dc.internic.net/rfc/rfc2196.txt – документ, посвященный политике безопасности системы.
• www.consensus.com/security/ssl-talk-faq.htrnl – часто задаваемые вопросы по протоколу SSL.
• www.kernel.org/pub/linux/libs/pam/index.html – РАМ-модули.
• linux.webclub.ru/adm/attr_ext2.html – Безопасность файловой системы Ext2. Michael Shaffer.
• pwl.netcom.com/~spoon/lcap/ – Linux Kernel Capabilities Bounding Set Editor.
• www.linuxdocs.org – содержит соответствующие HOWTO (см. гл. 13):
– security-howto – документ, посвященный безопасности операционной системы;
– hacker-howto – документ, посвященный взлому и защите от оного операционной системы;
– NFS HOWTO – документ о настройке и использовании NFS – сетевой файловой системы;
– Firewall-HOWTO – документ, посвященный настройке брандмауэра;
– IP-Masquerade mini-howto – организация маскарадинга.
Глава 8 RPM
Фирма Microsoft и Windows уже приучили нас, что установка любой программы начинается с запуска программ Setup или Install. Затем, после согласия с лицензионным соглашением (по которому фирма-производитель обязывает вас установить программное обеспечение только на один компьютер, и, в свою очередь, сообщает, что не несет никакой ответственности за функционирование этого программного обеспечения), задается пара вопросов (куда и какие модули программного обеспечения установить) и все: «Программа установлена, перезагрузите, пожалуйста, компьютер». Достаточно быстро и просто.
Остаются, конечно, некоторые вопросы: "Почему я не могу убрать лишнюю функциональность, зачем эта игра перезаписала мой DirectX 8 своим DirectX 5, для чего в системе столько DLL для разных версий Visual Basic." Но, в общем, это намного проще, чем вручную копировать какие-то архивы, распаковывать их, править конфигурационные файлы, искать конфликты библиотек и версий, а в самом неприятном случае – получать ошибки компиляции или линковки и просматривать исходные тексты программ. Это еще один упрек Linux со стороны пользователей Windows. И как часто бывает, они не совсем правы. Да, в большинстве своем программы Linux поставляются в виде исходных кодов, упакованных в архив. Но так наиболее просто удовлетворить требование лицензии GNU, которая обязывает дистрибьютора программы в обязательном порядке предоставить потребителю ее исходный код.
Не следует также забывать, что программы разрабатываются не только для Linux, обычно их можно откомпилировать на многих UNIX-платформах, а в UNIX-мире стандартом de-facto для пакетов является так называемый «tarballs». Tarballs – это архивы, которые распаковываются утилитой tar (файлы с расширением tar) или gzip (файлы с расширением tar.gz). Поскольку Linux-программы по большей части распространяются через Интернет, проще выложить на FTP-сервер и скачать оттуда архив только с исходным кодом программы, чем выкачивать архив и с исходными кодами, и с откомпилированной программой. Кроме того, энтузиасты Linux, как правило, имеют привычку смотреть исходные коды программ, изменять их и компилировать так, как им нравится (включать поддержку команд определенного процессора, добиваться максимального уровня оптимизации, различной степени выдачи отладочной информации и т. д.).
Однако с приходом в мир Linux пользователей, которые не желают учить опции компилятора, помнить, какие библиотеки установлены в системе, ждать по полчаса, пока откомпилируется программа и т. п., остро возник вопрос о стандартизации процесса установки программ в Linux. На сегодняшний день есть, по меньшей мере, три, или, если быть совсем точным, три с половиной способа установки программ. Способ первый, «старейшина» – программы распространяются в виде архивов исходных кодов *.tar.gz, которые необходимо распаковать и, в простейшем случае, откомпилировать командами make, make install. Способ второй — воспользоваться программой RPM (Red Hat Linux package management, Red Hat Linux менеджер пакетов) и, соответственно, пакетами RPM, содержащими уже откомпилированный код программ. Способ «два с половиной» – воспользоваться программой RPM и пакетами RPM с исходным кодом. Здесь два варианта: или получать исходный код пакетов, или делать из пакета с исходным кодом пакет с исполняемым кодом и устанавливать. Способ третий — разновидность второго – менеджер пакетов, входящий в дистрибутив Linux Debian. Возможно, в этой главе не будет упомянут какой-то другой способ инсталляции или менеджер пакетов. Мир Linux и Интернет настолько велики, что узнать или охватить все невозможно. Как уже упоминалось, значительная часть современных дистрибутивов тем или иным образом основаны на дистрибутиве Red Hat Linux, или, по крайней мере, имеют утилиты, способные работать с пакетами формата RPM. Поэтому эта глава полностью посвящена RPM-пакетам и RPM-менеджерам.