Tcp/ip и Интернет 2



страница23/25
Дата18.11.2016
Размер1.5 Mb.
Просмотров3012
Скачиваний0
1   ...   17   18   19   20   21   22   23   24   25

47. Брандмауэры


Помимо защиты отдельных компьютеров, можно предпринять меры для обеспече­ ния безопасности на сетевом уровне. Основным инструментом сетевой защиты является брандмауэр, физическое устройство или часть программного обеспечения, не допускаю­ щие нежелательные пакеты в системы или сети. Брандмауэры в настоящее время ис­ пользуются всюду. Их можно обнаружить как в настольных компьютерах и серверах, так и в маршрутизаторах и корпоративном сетевом оборудовании.

Глава 22. Безопасность 979

Брандмауэры, фильтрующие пакеты

Брандмауэр, фильтрующий пакеты, ограничивает виды трафика, проходящего че­ рез интернет-шлюз (или через внутренний шлюз, разделяющий домены в пределах организации), основываясь на информации, извлеченной из заголовков пакетов. Это напоминает прохождение таможни, когда вы на своем автомобиле пересекаете грани­ цу Администратор указывает, какие целевые адреса, номера портов и типы протоколов являются допустимыми, а брандмауэр просто отбрасывает (в некоторых случаях также регистрирует) все пакеты, которые не соответствуют заданным критериям.

В системах семейства Linux фильтрация пакетов осуществляется с помощью утилиты iptables, в системах Solaris и HP-UX — с помощью программы IPFilter, а в системе AIX — с помощью команды genfilt. Подробно они будут рассмотрены чуть позже.

Несмотря на то что эти инструменты способны выполнять сложную фильтрацию и значительно повышают степень безопасности, в целом мы разочарованы использовани­ ем систем UNIX и Linux в качестве сетевых маршрутизаторов и особенно в качестве кор­ поративных маршрутизаторов, играющих роль брандмауэров. Сложность универсальных систем снижает их защищенность и надежность по сравнению со специальными устрой­ ствами. Для защиты корпоративных сетей лучше применять специальные брандмауэры, например устройства компании Check Point и Cisco.

Принципы фильтрации служб

Большинству “известных” служб назначается сетевой порт в файле /etc/services или его системно-зависимом эквиваленте. Демоны, которые реализуют соответствую­ щие службы, постоянно опрашивают порты, ожидая поступления запросов на подклю­ чение со стороны удаленных компьютеров7. В основном, такие порты являются “при­ вилегированными”. Это значит, что их номера находятся в диапазоне от 1 до 1023 и что порты могут использоваться только процессами, работающими от имени пользователя root. Порты с номерами 1024 и выше являются непривилегированными.

Фильтрация на уровне служб основана на предположении, что клиент (компью­ тер, инициирующий соединение по протоколу TCP или UDP) будет использовать не­ привилегированный порт для установления соединения с привилегированным портом сервера. Например, если компьютеру с адресом 192.108.21.200 нужно разрешить только входящие SMTP-соединения, то следует установить фильтр, который позволит посылать TCP-пакеты по этому адресу через порт 25 и отправлять TCP-пакеты с этого адреса че­ рез любой порт8. Способ инсталляции такого фильтра будет зависеть от типа используе­ мого маршрутизатора.

Некоторые службы, например FTP, еще больше усложняют эту головоломку. При пересылке файла по протоколу FTP на самом деле устанавливается два соединения: для команд и для данных. Клиент инициирует командное соединение, а сервер — информационное.9 Следовательно, если необходимо получать файлы из Интернета по протоколу FTP, следует разрешить вход в систему через все непривилегированные ТСР-

7 Во многих случаях задачу ожидания берут на себя демоны inetd или xinetd. Подробнее об этом рассказывается в разделе 32.1.

8 Порт 25 — это порт SMTP, определенный в файле /etc/services.

9 Это относится к традиционному протоколу FTP, известному как “активный протокол FTP”. Некоторые системы поддерживают “пассивный протокол FTP”, в котором оба соединения ини­ циируются клиентом.

980 Часть II. Работа в сети

порты, так как неизвестно, какой из них будет использован для установления информа­ ционного соединения.

Подробнее о конфигурировании FTP-сервера рассказывается в разделе 23.4.

Это сводит на нет преимущества фильтрации пакетов, поскольку некоторые общеиз­ вестные службы, печально известные своей незащищенностью, работают с непривиле­ гированными портами (например, служба X11 на порту 6000). Кроме того, любознатель­ ные пользователи получают возможность запускать собственные служебные программы (например, сервер telnet на нестандартном и непривилегированном порту), к которым они и их друзья могут обращаться из Интернета.

Самый безопасный способ использования фильтра пакетов — использовать протокол передачи данных SSH. В настоящее время в Интернете опубликован его черновик, но он уже широко используется и достиг достаточно высокой степени зрелости. Обычно он используется как компонент протокола SSH, обеспечивающего аутентификацию и шифрование. В отличие от протокола FTP, протокол SFTP использует только один порт и для команд, и для данных, разрешая парадокс фильтрации пакетов. Существует мно­ го реализаций протокола SFTP. Мы рекомендуем использовать клиентскую утилиту ко­ мандной строки SFTP, поставляемую в системе OpenSSH.

Наиболее разумный способ решения проблем с протоколом FTP — разрешить вы­ ход по протоколу FTP во внешний мир только с этого изолированного компьютера. Пользователи смогут регистрироваться на нем, когда им понадобится выполнять сете­ вые операции, запрещенные во внутренней сети. Поскольку копирование всех пользо­ вательских учетных записей на FTP-сервер противоречит сути административного деле­ ния в организации, можно создавать учетные записи только по заявкам. Естественно, на FTP-сервере должен быть инсталлирован полный комплект средств защиты.

В некоторых организациях, которые заботятся о безопасности, используется двух­ ступенчатая фильтрация. Один фильтр в этой схеме подключен к Интернету как шлюз, а второй находится между этим шлюзом и остальной частью локальной сети. Идея со­ стоит в том, чтобы оставить внешний шлюз относительно открытым, а внутренний — сделать очень консервативным. Если промежуточный компьютер административно от­ делен от остальной части сети, появляется возможность реализовать различные службы Интернета с меньшим риском. Частично защищенная сеть обычно называется “демили­ таризованной зоной” (DMZ).

Наиболее безопасным способом использования фильтрации пакетов является на­ стройка первоначальной конфигурации, которая не позволяет никаких входящих сое­ динений. Затем можно постепенно ослабить фильтрацию, выяснив полезные службы, которые не работают, и перенеся все службы, доступные в Интернете, в демилитаризованную

зону.


Брандмауэры, осуществляющие инспекцию пакетов с отслеживанием состояния соединений

В основе инспекции пакетов с отслеживанием состояния соединений лежит концеп­ ция, которую можно описать с помощью следующего примера. Представьте себе, что вы ищете террориста в переполненном аэропорту, внимательно прислушиваясь ко всем раз­ говорам, происходящим вокруг вас, и понимая их содержание (на всех языках). Брандмауэ­ ры, осуществляющие инспекцию пакетов с отслеживанием состояния соединений (stateful inspection firewalls), проверяют весь трафик, проходящий через них, и сравнивают его с те­ кущей сетевой активностью в ожидании события, которое “должно” произойти.

Глава 22. Безопасность 981

Например, если пакеты, обмениваемые в ходе выполнения последовательности ко­ манд протокола FTP, называют порт, который впоследствии должен использоваться для информационного соединения, то брандмауэр должен проверить, что информационное соединение произойдет именно на этом порту. Попытки удаленного сайта соединиться с другими портами заранее считаются фальшивыми и должны пресекаться.

Так что же на самом деле предлагают разработчики под видом инспекции пакетов с учетом состояния протокола. Их продукты либо осуществляют мониторинг ограни­ ченного количества соединений или протоколов, либо распознают конкретный набор “неблагоприятных” ситуаций. В этом нет ничего плохого. Очевидно, что из любой тех­ нологии, способной распознавать аномалии трафика, можно извлечь пользу. Однако в данном случае важно помнить, что все эти обещания преимущественно являются лишь рекламным ходом.

Насколько безопасны брандмауэры

Фильтрация пакетов не должна быть основным средством защиты от хакеров. Это всего лишь вспомогательная мера. При наличии брандмауэра порой создается ложное впечатление, будто уровень безопасности является исключительно высоким. Если, до­ верившись брандмауэру, ослабить бдительность на других “рубежах”, это отрицательно скажется на защищенности информации.

Каждый компьютер необходимо защищать индивидуально и регулярно проверять с помощью таких средств, как Bro, Snort, Nmap, Nessus и OSSEC. Следует также обучать пользователей правилам безопасной работы в системе. В противном случае вы просто создадите внешне устойчивую, но крайне запутанную внутри систему.

В идеале локальные пользователи должны иметь возможность подключаться к любой службе Интернета, но доступ к локальным службам со стороны интернет-узлов должен быть ограничен демилитаризованной зоной. Например, к серверу архивов может быть разрешен SFTP-доступ, а к почтовому серверу, получающему входящую почту, — доступ только по протоколу SMTP.

Для того чтобы интернет-канал работал с максимальной эффективностью, советуем все же обратить основное внимание на удобство работы и доступность. В конце концов, сеть становится безопасной благодаря бдительности системного администратора, а не благодаря брандмауэру.

22.12. Особенности брандмауэров в системе Linux

Обычно мы не рекомендуем использовать компьютер, работающий под управле­ нием Linux (а также UNIX или Windows), в качестве брандмауэра, поскольку в целом операционная система не обеспечивает надлежащий уровень безопасности.10 Однако лучше инсталлировать усиленную систему Linux, чем вообще ничего, если речь идет о домашнем компьютере или организации, бюджет которой не предусматривает покуп­ ку оборудования соответствующего уровня. В любом случае локальный фильтр, такой как команда iptables, может оказаться превосходным инструментом для обеспечения безопасности.

Устанавливая систему Linux в качестве брандмауэра, убедитесь, что она включа­ ет самые последние обновления и “заплаты”, касающиеся брешей в системе защиты.

10 И все же многие сетевые устройства, например маршрутизаторы компании Linksys, в своих ядрах используют систему Linux и iptables.

982 Часть II. Работа в сети

Компьютер, функционирующий в качестве брандмауэра, — идеальное место для практи­ ческой проверки всех рекомендаций, изложенных в этой главе. (В разделе 22.11 собраны сведения, касающиеся брандмауэров в целом. Читателям, не знакомым с концепцией брандмауэра, советуем предварительно прочитать приведенный там материал.)

Правила, цепочки и таблицы

В ядре Linux версии 2.4 появился новый механизм фильтрации пакетов — Netfilter. Контролирующая его работу команда iptables является “наследницей” более старой команды ipchains, которая использовалась в ядрах версии 2.2. В команде iptables применяется концепция упорядоченной цепочки правил, согласно которым проверяют­ ся сетевые пакеты. Наборы цепочек образуют таблицы, предназначенные для обработки определенных видов трафика.

К примеру, стандартная таблица для команды iptables называется filter. Цепочки правил этой таблицы используются для фильтрации сетевых пакетов. В таблице filter содержатся три стандартные цепочки: FORWARD, INPUT и OUTPUT. Каждый пакет, обра­ батываемый ядром, поступает на проверку в одну цепочку.

Правила в цепочке FORWARD применяются ко всем пакетам, которые поступают в один интерфейс и перенаправляются в другой. Правила в цепочках input и OUTPUT предназначены для пакетов, адресованных локальному компьютеру или исходящих от него соответственно. Обычно этих трех цепочек вполне достаточно для фильтрации данных между двумя интерфейсами. В случае необходимости можно определять более сложные конфигурации.

Помимо таблицы filter, существуют также таблицы nat и mangle. В первой со­ держатся цепочки правил, предназначенные для управления системой NAT (Network Address Translation — трансляция сетевых адресов). Подробнее об этой системе расска­ зывалось в разделе 14.4, а в разделе 14.12 приводился пример использования таблицы nat. В этом разделе мы воспользуемся цепочкой PREROUTING данной таблицы для филь­ трации пакетов с поддельными IP-адресами.

Таблица mangle содержит цепочки, предназначенные для модификации содержимо­ го сетевых пакетов вне контекста системы NAT или механизма фильтрации пакетов. Эта таблица редко применяется в крупных системах, поэтому мы не будем ее рассматривать.

Целевые директивы для правил

В каждом правиле цепочки имеется целевая директива, определяющая, что следует делать с пакетами, подчиняющимися этому правилу. Если пакет прошел проверку, его судьба предрешена и другие проверки не выполняются. В качестве директивы разреша­ ется указывать имя другой цепочки.

Правила таблицы filter могут содержать следующие целевые директивы: ACCEPT, drop, REJECT, LOG, MIRROR, QUEUE, REDIRECT, RETURN и ULOG. Директива ACCEPT разре­ шает пакету следовать своим маршрутом. Директивы DROP и REJECT запрещают пропу­ скать пакет, но первая приводит к “безмолвному” удалению пакета, а вторая — к выдаче ICMP-сообщения об ошибке. Директива LOG позволяет следить за тем, какие правила применяются к пакетам, а директива ULOG включает режим расширенной регистрации.

Директива REDIRECT перенаправляет пакеты прокси-серверу. Она удобна, когда весь трафик веб-узла должен проходить через кеширующую программу, такую как Squid. Ди­ ректива RETURN объявляет конец пользовательской цепочки. Директива MIRROR меняет

Глава 22. Безопасность 983

местами IP-адреса отправителя и получателя перед отправкой пакета. Наконец, дирек­ тива QUEUE передает пакеты локальным программам пользователя через модуль ядра.





Поделитесь с Вашими друзьями:
1   ...   17   18   19   20   21   22   23   24   25


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал