Павел Данилов - Хакинг и антихакинг
Проектировщики сетей используют компьютеры-бастионы в качестве первой линии обороны. Компьютер-бастион является своеобразной «заслонкой» для всех коммуникаций между сетью и Интернетом. Другими словами, ни один компьютер сети не может получить доступ к Интернету иначе, чем через компьютер-бастион, и, с другой стороны, ни один внешний (по отношению к сети) пользователь не сможет проникнуть в сеть, минуя компьютер-бастион.
При использовании центрального доступа к сети через один компьютер упрощается обеспечение безопасности сети. Более того, предоставляя доступ к Интернету только одному компьютеру сети, разработчик намного облегчает себе выбор надлежащего программного обеспечения для защиты сети. Большинство сред Unix, включая Linux, хорошо приспособлены для использования компьютера-бастиона. В среде Unix можно установить компьютер-бастион по цене рабочей станции или машины класса «сервер», поскольку операционная система уже обладает способностью поддерживать и конфигурировать IP-брандмауэр. Таким образом, вы сможете сэкономить средства, затрачиваемые на установку маршрутизатора с функциями брандмауэра (т. е. не приобретать дополнительного оборудования для сети, которое может обойтись вам в несколько тысяч долларов). Кроме того, с помощью Unix можно свободно настраивать и просматривать трафик сети.
Большинство компаний предоставляют своим служащим доступ к Интернету. Если сотрудники получают доступ к Интернету, то компании следует позаботиться о том, чтобы соединение с Интернетом происходило через брандмаз’эр. В начале этой главы было сказано, что брандмауэр представляет собой комбинацию аппаратного и программного обеспечения для защиты соединения двух и более сетей. Брандмауэр обеспечивает возможность центрального управления безопасностью сети. Обычно он строится на основе так называемого компьютера-бастиона.
В дополнение к традиционному аппаратному и программному обеспечению брандмауэров для большей безопасности можно воспользоваться экранирующим маршрутизатором, который представляет собой аппаратное и программное обеспечение для фильтрации пакетов данных, основываясь на заданном администратором критерии. Можно создать экранирующий маршрутизатор на базе ПК или компьютера, работающего под управлением Unix.
Первым уровнем защиты от вторжений в присоединенных сетях является экранирующий маршрутизатор, который выполняет фильтрацию пакетов на сетевом и канальном уровнях независимо от уровня приложений. Поэтому экранирующий маршрутизатор позволяет контролировать движение данных в сети без изменения приложений клиента или сервера.
Хотя этот маршрутизатор относительно недорог и удобен в использовании, он не может обеспечить достаточного уровня защиты. Основное его преимущество заключается в том, что он работает исключительно на сетевом и транспортном уровнях модели ISO/OSI.
Однако это палка о двух концах. Для того чтобы действительно защитить сеть от нежелательных вмешательств извне, брандмауэр должен защищать каждый уровень протокола TCP/IP. Основной недостаток экранирующих маршрутизаторов заключается в том, что они осуществляют фильтрование данных, основываясь на недостаточном объеме данных. Ограничения, накладываемые на сетевой и канальный уровни, позволяют получить доступ только к IP-адресам, номерам портов и флагам TCP. Из-за отсутствия контекстной информации у маршрутизаторов могут возникать проблемы с фильтрованием таких протоколов, как UDP.
Администраторы, которые работают с экранирующими маршрутизаторами, должны помнить, что у большинства устройств, осуществляющих фильтрацию пакетов, включая экранирующие маршрутизаторы, отсутствуют механизмы аудита и подачи сигнала тревоги. Другими словами, маршрутизаторы могут подвергаться атакам и отражать большое их количество, а администраторы даже не будут осведомлены об этом. Поэтому для защиты сетей администраторы должны дополнительно использовать другие технологии фильтрования пакетов совместно с применением брандмауэров.
Поскольку брандмауэры предоставляют возможности фильтрации данных на верхних уровнях модели ISO/OSI, а не только на сетевом и канальном, для критериев отбора можно воспользоваться полной информацией уровня приложений. В то же время фильтрация будет происходить и на сетевом, и на транспортном уровнях. Здесь брандмауэр проверяет IP- и TCP-заголовки проходящих сквозь него пакетов. Таким образом, брандмауэр отбрасывает или пропускает пакеты, основываясь на заранее определенных правилах фильтрования.
Как уже говорилось, брандмауэр контролирует взаимный доступ сетей друг к другу. Обычно брандмауэр устанавливается между локальной сетью и Интернетом. Он препятствует проникновению пользователей всего мира в частную сеть и контролирует доступ к данным, хранящимся в ней. Однако важно помнить, что брандмауэр не является отдельным оборудованием или программой, которая сделает все за вас (несмотря на все заверения поставщиков). Он всего лишь предоставляет обширные возможности для максимальной защиты сети от постороннего вмешательства, при этом не создавая особых неудобств зарегистрированным пользователям сети. Для создания самого лучшего брандмауэра достаточно просто физически отключить сеть от Интернета.
Как вы уже знаете, все сетевые коммуникации требуют физического соединения. Если сеть не будет подсоединена к Интернету, его пользователи никогда не смогут проникнуть или атаковать локальную сеть. Например, если компании требуется только внутренняя сеть, которая обеспечивает доступ к базе данных по продажам, и нет необходимости в том, чтобы в эту сеть можно было проникнуть извне, можно физически изолировать компьютерную сеть от всего остального мира.
Необходимость в брандмауэре возникает тогда, когда компания хочет соединить свою локальную сеть со всем остальным миром с помощью Интернета.
Для того чтобы удовлетворить требованиям широкого круга пользователей, существует три типа брандмауэров: сетевого уровня, уровня приложений и уровня схем. Каждый из этих трех типов использует свой, отличный от других подход к защите сети. Рассмотрите отдельно каждый тип. Ваше решение должно учитывать тип и степень защиты, требуемой для сети, а именно это и определяет необходимую конструкцию брандмауэра. Помните, что большинство брандмауэров поддерживают один или несколько уровней шифрования (encryption). Шифрование – это способ защитить передаваемую информацию от перехвата. Многие брандмауэры, которые предоставляют возможности шифрования, защищают исходящие из сети данные, автоматически зашифровывая их перед отправлением в Интернет. Кроме того, они автоматически расшифровывают приходящие данные, прежде чем отправить их в локальную сеть. Используя функции шифрования, предоставляемые брандмауэрами, можно пересылать данные через Интернет удаленным пользователям, не беспокоясь о том, что кто-то может случайно перехватить и прочесть их.
Брандмауэр сетевого уровня – это экранирующий маршрутизатор или специальный компьютер, который проверяет адреса пакетов, для того чтобы определить, пропускать пакет в локальную сеть или нет. Как уже говорилось, пакеты содержат IP-адреса отправителя и получателя, а также массу другой информации, которую использует брандмауэр для управления доступом к пакету.
Можно, например, сконфигурировать брандмауэр сетевого уровня или маршрутизатор таким образом, что он будет блокировать все сообщения, поступающие от определенного сайта конкурента, и все сообщения, отправляемые серверу конкурента из вашей сети. Обычно настройка экранирующего маршрутизатора на блокирование определенных пакетов происходит с помощью файла, который содержит IP-адреса сайтов (мест назначения), чьи пакеты следует блокировать. Когда экранирующий маршрутизатор встречает пакет, содержащий определенный в этом файле адрес, он отбрасывает пакет и не дает ему проникнуть в локальную сеть или выйти из нее. Специалисты по разработке сетей часто называют данный метод «методом черного списка» (blacklisting). Большая часть программного обеспечения экранирующих маршрутизаторов позволяет вам внести в черный список (заблокировать) сообщения от внешних сайтов (другими словами, от внешних сетей), но не от определенных пользователей или компьютеров вашей сети.
Помните, что пакет, поступающий экранирующему маршрутизатору, может содержать любое количество информации, например сообщение электронной почты, запрос Telnet на вход в систему (запрос от удаленного пользователя на доступ к вашему компьютеру). В зависимости от того, как вы составите файл экранирующего маршрутизатора, маршрутизатор сетевого уровня будет предоставлять различные функции для каждого типа запросов. Например, можно запрограммировать маршрутизатор так, чтобы пользователи Интернета могли просматривать вашу Web-страницу, но не могли использовать FTP для пересылки файлов на ваш сервер или с него. Или можно запрограммировать маршрутизатор так, чтобы он позволял пользователям Интернета загружать файлы с вашего сервера на их серверы, но не позволял загружать файлы с их серверов на ваш. Обычно экранирующий маршрутизатор программируется так, что для принятия решения о том, пропустить или не пропустить через себя пакет, им рассматривается следующая информация: