Брандмауэры и специальное программное обеспечение 8 Часть 4
Вид материала | Реферат |
- Муниципальное общеобразовательное учреждение средняя общеобразовательная школа №12, 174.77kb.
- Управление экономикой и создание экономических информационных систем Изучив данную, 148.93kb.
- Программное обеспечение ЭВМ, 209.59kb.
- Программное обеспечение вычислительной системы, 824.71kb.
- Учебная программа (Syllabus) Дисциплина: Интерфейсы компьютерных систем (iks 3304), 321.31kb.
- Реферат по Информационной безопасности Тема: «Антивирусы», 711.1kb.
- Пк программный комплекс; по программное обеспечение; ппо прикладное программное обеспечение, 208.41kb.
- Лекция 4 Обеспечивающие подсистемы асу. Математическое, программное, лингвистическое,, 59.3kb.
- Математическое и программное обеспечение систем оперативной оценки характеристик сложных, 247.51kb.
- Учебная программа (Syllabus) Дисциплина «Инструментальные средства разработки программ», 374.12kb.
Подготовка к неизбежному
Самый лучший способ подготовки к нападению на вашу систему очень прост, и вы о нем знаете: это резервное копирование. Вовсе не обязательно делать полную резервную копию всей системы. На самом деле для того, чтобы в случае необходимости полностью восстановить работоспособность системы, достаточно сделать архив разнообразных подкаталогов etc/, а также некоторых подразделов каталога /var.
Конечно, вам потребуется сделать резервное копирование рабочих данных (в частности, каталога /home, который, как правило, соответствует отдельному разделу системы). Для хранения резервной копии рабочих данных может потребоваться значительное место, однако в остальном резервная копия конфигурации системы может быть очень небольшой по размеру. Благодаря этому для того, чтобы быстро восстановить работоспособность, вам потребуется заново установить систему, а затем скопировать в нее конфигурационные файлы из резервной копии.
Для реализации подобного подхода следует определить те небольшие участки системы, которые нуждаются в резервном копировании. Например, на многих серверах в состав резервной копии системы достаточно включить содержимое подкаталогов /etc, /var/named (или /home/dns в случае, если вы запускаете DNS-сервер в рабочей среде с измененным корнем), а также /home/httpd и копию содержимого базы данных.
За исключением базы данных все остальные перечисленные данные являются относительно статическими. Страницы сервера Web, как правило, изменяются чаще, чем все остальное. В частности, система может работать многие месяцы, в течение которых вы можете вообще не заглядывать в подкаталоги /etc или /var/ named.
СОВЕТ
Резервное копирование является ключевым механизмом восстановления работоспособности. Хорошая резервная копия позволит вам восстановить работоспособность системы всего за несколько минут. Если у вас нет возможности регулярно создавать резервные копии на магнитных лентах, как можно чаще копируйте наиболее важные файлы на носитель информации, не входящий в состав системы. Если для этой цели вы используете гибкие диски, храните две копии каждого из них (на случай, если на одном из них возникнут дефектные секторы).
Таким образом, прежде чем подключиться к сетевому кабелю Ethernet, найдите время и выполните следующие команды:
cd / ; tar czvf etc.tar.gz /etc
tar czvf misc.tar.gz /var/named /home/httpd
Благодаря этому вы получите резервную копию большей части вашей изначальной конфигурации. Кроме того, каждый из этих файлов умещается на одном гибком диске. На многих системах вы можете записать на одну дискету оба этих файла. Скопируйте каждый из этих файлов на две дискеты, пометьте их и спрячьте на черный день.
Заведите привычку регулярно создавать резервные копии важных файлов данных (к ним относятся файлы, расположенные в каталоге $НОМЕ, а также любые файлы баз данных, размещенные где-либо в системе). «Регулярно» может означать раз в неделю, раз в день или еще более часто, в зависимости от того, какой объем рабочих данных хранится у вас в системе. Важные системные файлы можно архивировать сразу же после того, как вы вносите в них изменения. Можно хранить не одну, а несколько последних резервных копий. Если вы выполняете резервное копирование один раз в неделю, возможно, для вас будет лучше хранить четыре последних резервных копии (за весь минувший месяц), а также, возможно, две копии двух предыдущих месяцев дополнительно. Старая резервная копия всегда лучше, чем ничего.
Теперь вы окончательно подготовились к запуску. Подключайте сетевой кабель, и пусть взломщики приступают к своим грязным делам.
Заключение
В данной главе рассмотрены разнообразные вопросы, связанные с защитой вашей системы. Вы узнали, что основной целью любого злоумышленника является доступ к системе на уровне привилегий root. Вы также узнали, что взломщики могут достичь этой цели несколькими разными способами, однако в основном это осуществляется с использованием предлагаемых вами служб. Вы также поняли, что некоторые службы настолько сложны и мощны, что их полную защиту фактически невозможно гарантировать.
Я рассказал вам о некоторых способах снизить вероятность проникновения в систему и ограничить объем возможных повреждений. В частности, я рассказал о том, как можно запустить некоторую службу в рабочей среде с измененным корнем. Рассмотренный в данной главе пример использует для этого специальную возможность, встроенную в свежие версии DNS-сервера. Однако помимо DNS подобным образом можно настроить и другие службы. Запуск в рабочей среде с измененным корнем необходим для тех программ, которые не могут работать на уровне привилегий ниже, чем root. Но таких программ становится все меньше, так как если программу (или, по крайней мере, программный поток, обслуживающий внешние подключения) можно запустить от лица непривилегированного пользователя, она обладает рядом преимуществ.
Однако если злоумышленнику все же удалось проникнуть в систему, вы должны предпринять комплекс мер для того, чтобы восстановить защиту и дальнейшее корректное функционирование системы. Я рассказал вам о некоторых действиях, которые следует выполнить в подобной ситуации, например, о проверке номеров версий inod (chattr -v/lsattr -v) и пакетов RPM (rpm -V). Я также рассказал вам о том, за какими службами следует присматривать особенно.
Наконец, в последнем разделе главы я рассказал о резервном копировании.
15Использование оболочек TCP (TCP Wrappers)
В данной главе рассматриваются следующие вопросы:
- что такое оболочка TCP (TCP Wrappers);
- как работает оболочка TCP;
- настройка оболочки TCP;
- тестирование конфигурации оболочки TCP;
- использование tcpdchk;
- использование tcpdmatch.
В данной главе речь пойдет о программах из категории TCP Wrappers (оболочка TCP). Оболочка TCP — это программное средство, предназначенное для обнаружения и предотвращения атак через сеть. Я подробно расскажу о том, что такое оболочка TCP, как она работает и как осуществляется ее настройка. Чтобы хорошо усвоить этот материал, вам потребуются знание файла /etc/inetd.conf — какие данные в нем содержатся и в каком формате. В данной главе коротко рассматривается файл inetd.conf, а также файлы /etc/hosts, allow и /etc/hosts, deny.
Оболочка TCP (TCP Wrappers) — это программа, специально предназначенная для обнаружения и предотвращения попыток взлома системы. Как правило, это программное средство работает совместно с inetd, однако многие другие серверные программы, которые не запускаются с использованием inetd, могут быть скомпилированы с использованием библиотеки TCP Wrappers, благодаря чему они станут поддерживать эту функциональность. Чтобы понять, как настраивается TCP Wrappers, необходимо овладеть приемами конфигурации файлов /etc/ hosts.allow и /etc/hosts.deny.
ССЫЛКА
Подробнее о файле inetd.conf рассказывается в главе 11.
Что такое TCP Wrappers?
В переводе с английского wrapper означает «оболочка» — то есть нечто, что располагается вокруг чего-либо для того, чтобы защитить его от внешнего влияния. TCP Wrappers — это программа, которая защищает модуль ожидания поступления запросов через tcp (tcp listener) для некоторого серверного приложения. Оболочка TCP позволяет предотвратить взлом сетевого узла через соответствующую службу, также ее можно использовать для протоколирования взаимодействия клиента и сервера в журнале. TCP Wrappers не является абсолютной защитой, однако с ее помощью можно обнаружить попытку взлома и сохранить в журнале сведения об источнике подобных попыток. Благодаря этому вы сможете сделать так, чтобы эти попытки были безуспешными. Однако сама по себе программа TCP Wrappers не делает абсолютно всего. Для активной борьбы с последующими атаками следует использовать другие программы, например IP Chains или Netfilter.
ССЫЛКА
Подробнее об IP Chains и netfilter рассказывается в главе 16.
Говоря о TCP Wrappers, легче объяснить, чем не является это средство, чем дать определение, что же это такое. TCP Wrappers не является программой, с помощью которой можно наблюдать за любым серверным процессом. Эффективно использовать TCP Wrappers можно только в отношении серверных приложений, основанных на TCP и запускаемых с использованием inetd (интернет-суперсервер) или откомпилированных с использованием библиотеки TCP Wrappers. Однако далеко не все серверные приложения могут эффективно использовать TCP Wrappers. В частности, команды «r», такие как rlogin, rsh, rexec, плохо подходят для совместного использования с TCP Wrappers, а службы, основанные на UDP, вообще не могут использовать TCP Wrappers.
ПРИМЕЧАНИЕ
Не существует универсального способа обеспечения внешней и внутренней безопасности. Чтобы защитить систему, приходится использовать разнообразные средства в комплексе. Однако ваша собственная бдительность является лучшим инструментом, который ничем не заменить.
Как работает TCP Wrappers
Программное средство TCP Wrappers можно использовать несколькими разными способами в зависимости от конкретной ситуации. Во-первых, вы можете заменить бинарный файл программы файлом tcpd (исполняемым файлом программы TCP Wrappers). Однако подобная замена не является достаточно гибким методом. В результате любого обновления изначального программного пакета вам придется заново настраивать в его отношении TCP Wrappers. Так как этот метод не является гибким и достаточно удобным, мы не будем его обсуждать.
Второй метод предусматривает запуск tcpd при помощи inetd. Демон inetd запускает tcpd вместо изначальной программы. Для этого необходимо должным поэтому обратное сопоставление имнени не сработает. Не сработает оно также и в случае, если первичный и вторичный серверы DNS недоступны. Таким образом, если только у вас нет серьезных причин, по которым вы обязаны использовать режим PARANOID ,будет лучше, если вы отключите этот режим и будете проверять подобные подозрительные соединения каким-либо иным способом.
Еще один связанный с этим механизм имеет отношение к маршрутизации источника (source routing). Чтобы предотвратить подделку адреса-источника (такая подделка обозначается английским термином spoofing), программа TCP Wrappers может быть скомпилирована в режиме игнорирования предоставляемых клиентом сведений о маршрутизации источника. Этот режим неэффективен в отношении служб UDP. Если вы используете этот метод в отношении служб UDP, у вас может появиться ложное чувство безопасности.
ПРИМЕЧАНИЕ
Маршрутизация источника (source routing) — это метод передачи приемнику информации о маршруте, позволяющем передать данные обратно к источнику. При этом источник самостоятельно передает эту информацию приемнику, а приемник использует эти сведения вместо того, чтобы маршрутизировать пакеты своими силами. Похоже на то, как если бы, отправляя письмо своему другу, вы приложили бы к нему не только свой обратный адрес, но также и карту, сообщающую, как надо идти, чтобы прийти к вам домой. Обратный маршрут может оказаться неправильным, и тогда, если следовать этому маршруту, можно оказаться в совершенно другом месте.
Еще один режим компиляции tcpd предусматривает подключение в соответствии с требованиями RFC 931. Этот RFC описывает взаимодействие с демоном идентификации identd (ident daemon). Если вы компилируете tcpd в этом режиме, tcpd пытается соединиться с демоном идентификации, работающим на удаленной системе. Однако в настоящее время в Интернете работает огромное количество клиентов Microsoft Windows, а эта операционная система не поддерживает демон идентификации. Для подобных клиентов попытка соединиться с демоном идентификации оканчивается неудачей. При этом демон tcpd не прекращает работу, однако при подключении подобных клиентов возникает задержка длительностью приблизительно 10 секунд (10 секунд — это таймаут по умолчанию для демона идентификации). Так как клиенты Microsoft не могут ответить на запросы, адресованные демону идентификации, на многих системах Unix этот демон также отключен. Кроме того, подобный способ работы не эффективен для служб, основанных на UDP.
Версия tcpd, входящая в комплект OpenLinux, не использует большинства режимов, которые можно добавить в этот демон во время компиляции. Конечно, в будущем ситуация может измениться, однако на текущий момент этот пакет скомпилирован так, чтобы быть полезным для большинства пользователей, то есть без режима PARANOID, без поддержки RFC 931 (identd) и без игнорирования маршрутизации источника. Если вы хотите воспользоваться подобными возможностями, вы можете использовать для этой цели другие механизмы, например netfilter или специальные возможности, добавленные в состав ядер 2.2.х/2.4.х и предназначенные для обнаружения подделки адресов IP и игнорирования маршрутизации источника. Если все же вы желаете добавить соответствующие возможности в tcpd, вы должны заново откомпилировать tcpd, используя исходные файлы. Если вы используете комплект поставки Linux, основанный на RPM, установите соответствующий пакет с исходным кодом и изучите файл <имя_файла>.sрес. В комплект поставки Debian входит аналогичный инструмент, облегчающий компиляцию пакетов и сообщающий вам, как тот или иной пакет настроен для компиляции. Если вы не знаете, каким образом осуществляется компиляция и инспектирование файлов в вашей системе, обратитесь к хорошей книге по администрированию.
ССЫЛКА
Подробнее о netfilter рассказывается в главе 16.
ПРИМЕЧАНИЕ
Исходный код демона tcpd содержится на прилагаемом к книге компакт-диске.
Чтобы документировать сведения о соединениях «клиент:демон» в журнале, программа TCP Wrappers использует механизм syslog. Подробнее о конфигурации TCP Wrappers рассказывается в последующих разделах.