учебники, программирование, основы, введение в,
купить диплом Тверь

 

Межсетевые экраны

Теперь, когда у вас есть достаточно безопасная операционная система и вы освоили несколько основных приемов, перейдем к использованию некоторых более сложных защитных средств. В этой лекции описано, как настраивать и обслуживать безопасный межсетевой экран с открытыми исходными текстами. Если у вас уже есть межсетевые экраны, можно все равно прочитать данную лекцию, чтобы освежить в памяти или узнать, как они действуют. Это пригодится при изучении следующих лекций, где обсуждаются сканеры портов и уязвимостей.
Межсетевой экран - это устройство, являющееся первым рубежом передовой линии обороны против всех входящих атак или ненадлежащего использования вашей сети. Межсетевой экран может отразить или смягчить многие виды атак и экранировать (заслонить) внутренние серверы и рабочие станции от Интернета. Межсетевой экран способен также предотвратить доступ извне к машинам внутренних ЛВС. При растущем использовании случайных сканеров и автоматических червей и вирусов, экранирование внутренних машин от Интернета важно как никогда. Правильно сконфигурированный межсетевой экран существенно продвинет вас по пути защиты от внешних атак.

В наше время мало кто сомневается, что межсетевой экран является обязательным компонентом любой инфраструктуры безопасности. Доступно множество жизнеспособных коммерческих альтернатив: Cisco, NetScreen, SonicWALL, Checkpoint - это лишь небольшая часть поставщиков высококлассных коммерческих решений, ориентированных на большие корпоративные сети с интенсивными потоками данных.
Компании Linksys (принадлежащая теперь Cisco), D-Link, NETGEAR предлагают младшие модели межсетевых экранов потребительского уровня. Как правило, подобные устройства не обладают высокой конфигурируемостью и расширяемостью: обычно они действуют как пакетные фильтры, блокируя входящие соединения и осуществляя динамическую трансляцию сетевых адресов. Они предназначаются для кабельных и DSL-соединений и могут не выдержать более высокой нагрузки.
Старшие модели межсетевых экранов сделают практически все, что вы от них захотите, но это потребует денежных затрат - как минимум, нескольких тысяч долларов. Для их настройки зачастую требуется изучение нового синтаксиса или интерфейса. Некоторые из более новых моделей, такие как SonicWALL и NetScreen, поставляются с интерфейсом конфигурации на основе Web, но это обычно достигается за счет меньшей глубины конфигурационных опций.
Малоизвестный и редко афишируемый секрет некоторых коммерческих межсетевых экранов состоит в том, что в их основе лежит программное обеспечение с открытыми исходными текстами. На самом деле вы платите за высококачественную коробку и линию технической поддержки. Это может быть оправданным для организаций, которые нуждаются в дополнительной поддержке. Однако, если вы готовы изучать еще один интерфейс, и если в коммерческом продукте используются те же технологии, которые доступны бесплатно, почему бы не создать свой собственный межсетевой экран с помощью средств с открытыми исходными текстами, представленных в этой книге, и сохранить своей фирме тысячи долларов? Даже если вы не собираетесь выбрасывать свой коммерческий межсетевой экран, лучшее понимание его работы и того, что происходит за сценой, поможет сделать его конфигурацию более безопасной.
Прежде чем мы погрузимся в инструментарий, я хочу рассмотреть основы функционирования межсетевых экранов и обработку ими различных сетевых протоколов для ограничения доступа к сети. Даже если вы не планируете использовать программное обеспечение с открытыми исходными текстами для своего межсетевого экрана, полезно знать немного больше о том, что в действительности происходит внутри этого черного ящика.

Основы архитектуры сетей
Прежде чем вы придете к подлинному пониманию сетевой безопасности, необходимо понять архитектуру сетей. Хотя эта книга не претендует на роль начального курса по сетям, в данном разделе приведен краткий обзор сетевых концепций и терминов. Я буду часто ссылаться на эти термины, и знакомство с ними поможет вам понять основы протокола TCP/IP. Если вы хорошо знакомы с сетевыми топологиями, то можете пропустить этот раздел и сразу перейти к инструментарию.
Как вы, вероятно, знаете, конструкцию каждой сети можно разделить на семь логических частей, каждая из которых решает определенную часть коммуникационной задачи. Эта семиуровневая конструкция называется Эталонной моделью взаимосвязи открытых систем (ВОС). Она была разработана Международной организацией по стандартизации (ISO) для представления логической модели описания сетевых коммуникаций, и она помогает поставщикам стандартизовать оборудование и программное обеспечение. В табл. проиллюстрирована эталонная модель ВОС и приведены примеры каждого уровня.


Эталонная модель ВОС

Номер уровня модели ВОС

Название уровня

Примеры протоколов

Уровень 7

Прикладной уровень

DNS, FTP, HTTP, SMTP, SNMP, Telnet

Уровень 6

Уровень представления

XDR

Уровень 5

Уровень сеанса

RPC

Уровень 4

Транспортный уровень

NetBIOS, TCP, UDP

Уровень 3

Сетевой уровень

ARP, IP, IPX, OSPF

Уровень 2

Канальный уровень

Arcnet, Ethernet, Token ring

Уровень 1

Физический уровень

Коаксиальный кабель, оптоволокно, витая пара

Физический уровень
Этот уровень представляет реальную физическую среду передачи данных. Для различных типов среды применяются разные стандарты. Например, коаксиальный кабель, неэкранированная витая пара и волоконно-оптический кабель предназначены для различных целей: коаксиальный кабель используется в более старых ЛВС, а также для подключения к Интернету через сети кабельного ТВ, витая пара - для внутренней кабельной разводки, в то время как оптоволокно обычно применяют для протяженных соединений с высокой пропускной способностью.
Канальный уровень
Этот уровень относится к различным частям оборудования сетевых интерфейсов. Он помогает кодировать данные и помещать их в физическую среду передачи. Он также позволяет устройствам идентифицировать друг друга при попытке взаимодействия с другим узлом. Примером адреса канального уровня служит MAC-адрес сетевой платы. (MAC не имеет никакого отношения к компьютерам компании Apple, это сокращение от Medium Access Control - управление доступом к среде передачи. MAC-адрес является числом, которое уникальным образом идентифицирует плату компьютера в сети.) В сетях Ethernet по MAC-адресу можно находить компьютер. В 1970-80-х годах корпорации использовали много различных типов стандартов канального уровня, определенных по большей части их поставщиками оборудования. Компания IBM использовала Token Ring для своих сетей ПК и SNA для большей части больших машин; компания DEC применяла иной стандарт, а Apple - еще один. В наше время большинство организаций используют Ethernet, так как он широко распространен и недорог.
Сетевой уровень
Этот уровень является первой частью, которую вы действительно видите при взаимодействии с сетями TCP/IP. Сетевой уровень дает возможность взаимодействовать через различные физические сети с помощью вторичного уровня идентификации. В сетях TCP/IP для этого используется IP-адрес. IP-адрес на компьютере помогает осуществлять маршрутизацию данных при передаче из одного места в другое в сети и через Интернет. Этот адрес является уникальным числом для идентификации компьютера в IP-сети. В некоторых случаях это число уникально для компьютера; ни одна другая машина в Интернете не может иметь такой адрес. Это справедливо для обычных открыто маршрутизируемых IP-адресов. Во внутренних ЛВС машины часто используют блоки частных IP-адресов. Они зарезервированы только для внутреннего употребления и не предназначены для маршрутизации через Интернет. Эти номера не обязаны быть уникальными для различных сетей, но все равно должны быть уникальными в каждой ЛВС. В то время как два компьютера могут иметь один и тот же частный IP-адрес в различных внутренних сетях, они никогда не будут иметь один и тот же MAC-адрес, так как последний является серийным номером, присвоенным производителем сетевых плат. Существуют некоторые исключения (см. врезку "Следуйте за MAC"), но обычно MAC-адрес будет уникальным образом идентифицировать компьютер (или, по крайней мере, сетевой интерфейс этого компьютера).


Флэми Тех советует:
Следуйте за MAC!
MAC-адреса могут помочь справиться с рядом сетевых проблем. Хотя MAC-адрес не идентифицирует машину непосредственно по имени, все MAC-адреса присваиваются производителем и начинаются с особого префикса для каждого производителя, полный список которых можно найти на http://www.macaddresses.com. Как правило, MAC-адреса также печатаются на самой плате.
С помощью одного из сетевых анализаторов, рассмотренных в, и используя MAC-адреса, зачастую можно проследить источник проблемного сетевого трафика. MAC-адреса обычно регистрируются серверами DHCP в Windows или межсетевыми экранами, поэтому можно сопоставить MAC-адреса с определенным IP-адресом или именем машины. Их можно использовать также для судебных доказательств - хакеры любят подделывать IP-адреса, но большинство из них не знает, как подделать MAC-адрес, и это позволяет уникальным образом идентифицировать их ПК.

Транспортный уровень
Этот уровень обеспечивает доставку пакета данных из точки A в точку B. На этом уровне располагаются протоколы TCP и UDP. TCP (Transmission Control Protocol - протокол управления передачей) по сути обеспечивает согласованность отсылки пакетов и их приема на другом конце. Он позволяет исправлять ошибки на уровне битов, повторно передавать потерянные сегменты и переупорядочивать фрагментированный трафик и пакеты. UDP (User Datagram Protocol - пользовательский дейтаграммный протокол) является менее тяжеловесной схемой, используемой для потоков мультимедийных данных и кратких взаимодействий с небольшими накладными расходами, такими как запросы DNS. Этот протокол также осуществляет обнаружение ошибок и мультиплексирование данных, но не предоставляет никаких средств для переупорядочивания данных или их гарантированной доставки. Большинство межсетевых экранов оперируют на транспортном и сетевом уровнях.
Уровень сеанса
Уровень сеанса обслуживает в основном установление соединения и его последующее закрытие. Иногда на этом уровне выполняется аутентификация, для того чтобы установить, кому разрешено участвовать в сеансе. Он используется в основном для определенных приложений, располагающихся на более высоких уровнях модели.
Уровень представления
Этот уровень обеспечивает определенное кодирование и декодирование, требующееся для представления данных в формате, понятном получателю. Некоторые формы шифрования могут рассматриваться как представление. Различие между прикладным уровнем и уровнем сеанса является тонким, и некоторые также считают, что прикладной уровень и уровень представления по сути совпадают.
Прикладной уровень
Заключительный уровень, на котором прикладные программы (FTP, HTTP, SMTP и т.п.) получают данные. На этом уровне в дело вступает некоторая программа, обрабатывающая реальные данные из пакетов. Этот уровень является головной болью профессионалов в области безопасности, так как именно на нем выявляется большинство уязвимостей.

Сети TCP/IP
Когда-то TCP/IP был малоизвестным сетевым протоколом, который использовали в основном правительственные и образовательные учреждения. На самом деле он был изобретен военным исследовательским агентством, DARPA, для обеспечения бесперебойной работы сетей. Преследовалась цель создания сети, способной выдержать отказ множества линий связи в случае катастрофического события, такого как ядерный удар. Традиционные способы передачи данных всегда полагались на одиночное прямое соединение, и если это соединение деградирует или его выводят из строя, то коммуникации нарушаются. В TCP/IP предложен способ "пакетирования" данных, позволяющий им находить собственный путь через сеть. Тем самым была создана первая отказоустойчивая сеть.
Однако большинство корпораций по-прежнему использовали сетевые протоколы, предоставляемые производителями оборудования. IBM продвигала NetBIOS или SNA; в ЛВС Novell использовался протокол IPX/SPX; в сетях Windows применялся еще один стандарт, NetBEUI, производный от NetBIOS. Хотя протокол TCP/IP стал широко использоваться в 1980-х годах, только с появлением Интернета в начале 1990-х TCP/IP превратился в стандарт передачи данных. Это привело к снижению цен на оборудование для IP-сетей, и также значительно облегчило межсетевое взаимодействие.
TCP/IP позволяет взаимодействующим узлам устанавливать соединение и затем проверять, когда передача данных начинается и завершается. В сети TCP/IP передаваемые данные разбиваются на фрагменты, называемые пакетами, и помещаются в последовательность "конвертов", каждый из которых содержит определенную информацию для следующего протокольного уровня. Пакеты помечаются 32-битными порядковыми номерами, чтобы даже в случае прихода в неправильном порядке передаваемые данные можно было собрать заново. Когда пакет пересекает различные части сети, каждый уровень открывается и интерпретируется, а затем оставшиеся данные передаются дальше согласно полученным инструкциям. Когда пакет данных прибывает в место назначения, реальные данные, или полезная нагрузка, доставляются приложению.
Говорят, аналогии обманчивы, но все-таки... Представьте себе, что вы отправляете в организацию письмо в конверте для доставки курьером. Транспортная компания использует внешний конверт для маршрутизации пакета в нужное здание. После получения пакет вскрывают и внешний конверт выбрасывают. Возможно, письмо направлено в другой внутренний почтовый ящик, поэтому его нужно вложить в межофисный конверт и переслать дальше. Наконец, письмо достигает своего получателя, который вскрывает все слои обертки и использует содержащиеся внутри данные. В табл. 3.2 показано, как некоторые сетевые протоколы инкапсулируют данные.


Таблица 3.2. Пример пакета данных TCP/IP

Протокол

Содержимое

Уровень модели ВОС

Ethernet

MAC-адрес

Канальный

IP

IP-адрес

Сетевой

TCP

Заголовок TCP

Транспортный

HTTP

Заголовок HTTP

Прикладной

Прикладные данные

Web-страница

Данные

Можно видеть, что на внешнем "конверте" для наших данных написан адрес Ethernet. Он идентифицирует пакет в сети Ethernet. Внутри этого конверта находится сетевая информация, а именно, IP-адрес; еще глубже находится транспортный уровень, который устанавливает соединение и закрывает его. Затем располагается прикладной уровень с заголовком HTTP, сообщающим web-навигатору, как форматировать страницу. Наконец, мы доходим до реальной полезной нагрузки пакета - содержимого web-страницы. Этот пример иллюстрирует многоуровневую природу сетевых коммуникаций.
При использовании протокола TCP/IP взаимодействие между двумя узлами сети подразделяется на несколько фаз. Не вдаваясь в детали, касающиеся сервера доменных имен (DNS), и предполагая, что используются IP-адреса, а не имена хостов, в качестве первой фазы выделим порождение ARP-запроса (Address Resolution Protocol - протокол разрешения адресов) для поиска адреса Ethernet, соответствующего IP-адресу, с которым пытаются взаимодействовать. ARP преобразует IP-адрес в MAC-адрес сети Ethernet. Теперь, когда мы можем общаться с целевой машиной по протоколу IP, для формирования сеанса между машинами с помощью протокола TCP осуществляется трехходовое взаимодействие. Машина, собирающаяся послать данные другой машине, посылает пакет SYN для синхронизации или инициирования передачи. Пакет SYN, по сути, говорит: "Вы готовы к передаче данных?" Если другая машина готова принять соединение от первой, она посылает SYN/ACK, что означает: "Подтверждаю получение вашего пакета SYN, я готова." Наконец, порождающая машина отправляет пакет ACK обратно, говоря тем самым: "Отлично. Начинаю посылать данные." Такая процедура называется трехходовым квитированием установления связи в TCP. Если какой-либо из трех ходов не выполнится, то соединение не будет установлено. Осуществляя пересылку, машина снабжает пакеты данных порядковыми номерами и подтверждает получение всех пакетов с порядковыми номерами, использованными второй стороной. Когда все данные посланы, одна из сторон посылает второй стороне соединения пакет FIN. Та отвечает пакетом FIN/ACK и сама посылает пакет FIN, в ответ на который посылается последний пакет FIN/ACK для закрытия сеанса TCP/IP.
В силу способа, которым TCP/IP управляет инициированием и завершением сеанса, коммуникации TCP/IP можно назвать имеющими состояние, так как по пакетам можно определить, какая часть диалога имеет место. Это очень важно для межсетевых экранов, поскольку самым употребительным способом блокирования внешнего трафика является запрет пакетов SYN, направляемых извне на машины внутри сети. В результате внутренние машины могут общаться с внешним миром и инициировать соединения, но внешним машинам не удастся открыть сеанс. В работе межсетевых экранов имеется множество тонкостей, но по сути именно таким образом простые межсетевые экраны разрешают только однонаправленные соединения для web-навигации и аналогичных действий.
В Linux существует несколько встроенных экранирующих приложений: Iptables в версиях ядра 2.4х, Ipchains в 2.2x и Ipfwadm в ядре версии 2.0. Большинство межсетевых экранов на платформе Linux делают свое дело, используя одну из этих служебных программ уровня ядра.
Все три упомянутых приложения действуют аналогичным образом. У межсетевых экранов обычно имеется два или больше сетевых интерфейсов, и под Linux это достигается наличием в компьютере двух или большего количества сетевых плат. Один интерфейс обычно соединяется с внутренней ЛВС; этот интерфейс называется доверенным или собственным. Другой интерфейс предназначен для общедоступной стороны (ГВС). В большинстве небольших сетей ГВС-интерфейс подключен к Интернету. Может присутствовать и третий интерфейс, называемый ДМЗ (от военного термина ДеМилитаризованная Зона), обычно предназначенный для серверов, которые должны быть более открыты Интернету, чтобы внешние пользователи могли с ними соединяться. Каждый пакет, который пытается пройти через машину, пропускается через последовательность фильтров. Если он соответствует фильтру, над ним выполняется некоторое действие. Этим действием может быть отбрасывание пакета, пропуск пакета, или маскарад пакета ("Masq.") с помощью внутреннего собственного IP-адреса. Лучший метод конфигурирования межсетевых экранов состоит в первоначальном запрете всех пакетов с последующим выборочным разрешением необходимых потоков данных (см. врезку о философии конфигурирования межсетевых экранов).
Межсетевые экраны могут фильтровать пакеты на нескольких различных уровнях. Они могут анализировать IP-адреса и блокировать трафик, приходящий от определенных машин или сетей, проверять заголовок TCP и определять его состояние, и на более высоких уровнях анализировать приложение или номер порта TCP/UDP. Межсетевые экраны можно конфигурировать для отбрасывания целых категорий трафика, таких как ICMP. Пакеты типа ICMP, такие как ping, обычно отбрасываются межсетевыми экранами, поскольку они часто используются для исследования сети и атак на доступность. Нет причин, по которым кому-то вне вашей организации должно быть позволено эхо-тестировать вашу сеть. Однако иногда разрешаются эхо-ответы, поэтому вы можете выполнять эхо-тестирование изнутри ЛВС вовне.

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

  1. Разработайте политику использования сети.

В руководстве пользователя по добропорядочному использованию компьютеров могут содержаться некоторые рекомендации, однако многие правила применения компьютеров намеренно расплывчаты и не определяют, какие приложения считаются ненадлежащими. Возможно, вам придется уточнить это у своего непосредственного начальника или у высшего руководства. Допускаются ли такие вещи, как программы мгновенного обмена сообщениями? Хотите ли вы следовать строгой политике выхода во внешний мир только посредством Web и электронной почты? Помните, что безопаснее написать правило для любого исключения, чем по умолчанию разрешить все виды деятельности. Критически важно получить ответы на эти вопросы, желательно в письменном виде, до того, как приступить к написанию правил для межсетевых экранов.

  1. Составьте карту необходимых входящих и исходящих сервисов.

Если у вас еще нет карты сети, составьте ее сейчас. К каким портам каких серверов требуется обращаться извне? Есть ли пользователи, которым нужны специально открытые для них порты? (Совет: персоналу технической поддержки часто требуются FTP, Telnet и SSH.) Хотите ли вы создать демилитаризованную зону для общедоступных серверов или переадресовывать порты извне в ЛВС? Если у вас несколько сетевых сегментов или наборов общедоступных серверов, составление карты может занять больше времени, чем собственно настройка межсетевого экрана. Сейчас самый подходящий момент разобраться со всеми особыми запросами. Когда вы включите межсетевой экран и он остановит важное приложение, будет поздно.

  1. Преобразуйте политику использования сети и требуемые сервисы в правила межсетевого экрана.

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

  1. Задействуйте и проверьте функциональность и безопасность.

Теперь можно включить межсетевой экран, откинуться на спинку кресла и ждать жалоб. Даже если ваши правила точно соответствуют политике, все равно найдутся люди, не понимающие, что использование Kazaa для загрузки фильмов противоречит политике организации. Будьте готовы проявить твердость, когда пользователи начнут просить о необоснованных исключениях. Каждое отверстие, которое вы открываете в межсетевом экране, является потенциальной угрозой безопасности.
Когда ваши пользователи будут удовлетворены работой межсетевого экрана, проверьте, что он блокирует то, что должен блокировать. С помощью двух инструментов, рассмотренных в книге далее, можно выполнить тестирование межсетевого экрана. Имеются в виду сканер портов извне и сетевой анализатор внутри. Они сообщат вам, какие пакеты проходят, а какие нет. Это полезно и для разрешения проблем в работе приложений, предположительно конфликтующих с межсетевым экраном.

  1. Регулярно пересматривайте и тестируйте правила межсетевого экрана.

Прекрасная работа межсетевого экрана сегодня не означает, что так же будет завтра. Могут возникнуть новые угрозы, которые потребуют написания новых правил. Правила, которые добавлялись временно, для нужд некоторого проекта, могут слишком долго оставаться в конфигурации. Необходимо периодически пересматривать правила и сопоставлять их с текущими производственными потребностями и требованиями безопасности. В зависимости от размера и сложности конфигурации и частоты изменений, ревизия может быть ежегодной (для межсетевых экранов с небольшим числом правил - 20 и меньше) или ежемесячной (для очень сложных конфигураций). Каждый пересмотр должен включать реальные тесты с применением упомянутой выше комбинации сканер/анализатор, с использованием средств, описанных в для проверки того, что правила на самом деле работают так, как предполагалось.
Проектирование и применение подобного бизнес-процесса поможет вам получить значительно больше от установки межсетевого экрана, как в профессиональном, так и в техническом плане. Необходимо также разрабатывать бизнес-планы для других технологий, рассмотренных в этой книге, таких как сканирование уязвимостей и анализ работы сетей.


Флэми Тех советует:
"Запретить все!", когда речь идет о правилах межсетевого экрана!
Существует два метода настройки межсетевых экранов. Можно в качестве исходного принять положение "разрешить все" и затем задавать поведение, которое требуется блокировать, или же начать с положения "запретить все", после чего специфицировать то, что следует разрешить (допустимое поведение пользователей). Безусловно, предпочтительным является исходное положение "запретить все", поскольку при этом автоматически блокируются все потоки данных, если только они не разрешены явным образом. Подобный подход и более надежен, и более прост для поддержания безопасности.
Эта философия применяется в большинстве коммерческих межсетевых экранов. Лежащая в ее основе идея состоит в том, что если вам требуется определять, что считается плохим поведением, вы постоянно будете отставать, так как Интернет изменяется и развивается. Невозможно предсказать, какую форму может принять следующая, новая атака, поэтому вы будете уязвимы, пока она не будет опубликована, - только после этого вы сможете добавить новую строку в конфигурацию межсетевого экрана. Используя подход "запретить все", вы автоматически блокируете все, что не считается добропорядочной активностью.
Тип конфигурации "разрешить все" может иметь смысл в крайне либеральной среде, где накладные расходы на дополнительные разрешающие строки превышают ценность информации в сети (пример - некоммерческий или чисто информационный сайт). Но для большинства организаций подход "запретить все" более безопасен. Однако само по себе применение этого подхода не делает вашу сеть полностью безопасной. Атаки могут по-прежнему проходить через все проделанные вами отверстия, такие как доступ к web-серверу или электронной почте. Помните также, что даже при использовании подхода "запретить все" следует быть осторожным, чтобы не отменить его каким-либо правилом, разрешающим слишком многое и расположенным выше в вашей конфигурации.

В этом разделе описано, как конфигурировать межсетевой экран при помощи Iptables - утилиты экранирования/фильтрации пакетов, встроенной в большинство систем Linux с ядром версии 2.4 и выше. Данная утилита позволяет создать межсетевой экран, используя команды операционной системы. Она произошла от более ранних проектов межсетевых экранов в Linux. Первая система, Ipfwadm, позволяла создать простой набор правил пропускания или отбрасывания пакетов на основе определенных критериев. В ядро 2.2 ввели Ipchains, чтобы преодолеть ограничения Ipfwadm. Утилита Ipchains работала вполне приемлемо и обладала модульной архитектурой. Однако с ростом числа людей, требующих от своих межсетевых экранов выполнения многочисленных функций (например, сервера-посредника и устройства трансляции сетевых адресов), Ipchains также стало недостаточно. Iptables представляет собой обновленный вариант этих программ и допускает многочисленные применения, ставшие привычными для современных межсетевых экранов. (Отметим, что в Iptables используется практически тот же набор понятий и терминов, что и в Ipchaines.)
Iptables является мощным, но сложным средством, и обычно рекомендуется для пользователей, знакомых с межсетевыми экранами и искусством их конфигурирования (см. врезку о написании командных файлов). Если это ваш первый межсетевой экран, я рекомендую, по крайней мере для начала, воспользоваться для создания экранирующей конфигурации одним из рассмотренных далее в этой лекции средств с автоконфигурированием. Эти средства используют Iptables (или продукт-предшественник - Ipchains) для создания межсетевого экрана согласно заданным исходным данным. Однако, прежде чем приступать к конфигурированию с помощью одного из графических инструментов, имеет смысл разобраться в основах "подкапотной механики" Iptables.
Установка Iptables
В большинство систем Linux с ядром 2.4 и выше межсетевой экран Iptables встроен, поэтому никаких дополнительных программ устанавливать не требуется. (Если версия ядра вашей системы меньше 2.4, то в нее встроены Ipchains или Ipfwadm. Это сходные средства, но они не рассматриваются в этой книге.) Инструкции Iptables можно выполнять из командной строки или из командного файла (см. врезку). Чтобы проверить, что межсетевой экран Iptables установлен, наберите в командной строке Iptables -L и посмотрите, какова реакция. Должен быть выведен текущий набор правил (который, вероятно, пуст, если вы еще не сконфигурировали межсетевой экран).
Если ваша система не содержит Iptables, или если вы хотите получить самую свежую версию, посетите http://www.netfilter.org и загрузите RPM для своей операционной системы. Можно также взять его с компакт-диска, приложенного к книге.
Если на вашем установочном диске нет Webmin RPM, зайдите на http://www.webmin.com и посмотрите, доступна ли там версия Webmin для вашей операционной системы. Webmin требуется для Turtle Firewall, и существуют специальные версии для каждого дистрибутива и операционной системы. Если для вашей операционной системы нет соответствующей версии, то вы не сможете использовать Turtle Firewall, но список поддерживаемых систем весьма велик. Щелкните мышью на файле RPM в X-Window, и он будет установлен автоматически.
Использование Iptables
Идея, лежащая в основе Iptables и Ipchains, состоит в создании каналов входных данных и их обработке в соответствии с набором правил (конфигурацией вашего межсетевого экрана) с последующей передачей в выходные каналы. В Iptables правила располагаются в таблицах, а внутри таблиц - в цепочках. Основными цепочками, используемыми в Iptables, служат:

  • Input.
  • Forward.
  • Prerouting.
  • Postrouting.
  • Output.

Общий формат инструкций Iptables таков:
Iptables команда спецификация_правил расширения,
где команда, спецификация_правил и расширения - это одна или несколько допустимых опций. В табл. 3.3 перечислены команды Iptables, а табл. 3.4 содержит спецификации правил Iptables.


Таблица 3.3. Команды Iptables

Команда

Описание

-A цепочка

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

-I цепочка номер_правила

Вставляет правила в позицию с заданным номером в указанной цепочке. Это полезно, если вы хотите перекрыть правила, заданные ранее

-D цепочка спецификация_правил

Удаляет из указанной цепочки специфицированные номером или текстом правила

-R цепочка номер_правила

Заменяет правило в позиции с заданным номером в указанной цепочке

-L цепочка

Выдает все правила в цепочке. Если цепочка не задана, выдаются все цепочки

-F цепочка

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

-Z цепочка

Обнуляет все счетчики пакетов и байтов в указанной цепочке

-N цепочка

Создает новую цепочку с заданным именем

-X цепочка

Удаляет указанную цепочку. По умолчанию удаляются все цепочки

-P цепочка политика

Задает политику для указанной цепочки

Таблица 3.4. Спецификации правил Iptables

Спецификация правила

Описание

-p протокол

Задает протокол, которому соответствует правило. Допустимыми типами протоколов являются icmp, tcp, udp и all

-s адрес/маска

Задает определенный адрес или сеть для соответствия. Используется стандартная нотация с косой чертой для указания диапазона IP-адресов

-j цель

Указывает, что делать с пакетом, если он соответствует спецификациям. Допустимыми опциями для цели являются:

DROP

Отбрасывает пакет без всяких дальнейших действий.

REJECT

Отбрасывает пакет и посылает в ответ пакет с уведомлением об ошибке.

LOG

Протоколирует пакет в файле.

MARK

Помечает пакет для дальнейших действий.

TOS

Изменяет поле TOS (тип обслуживания).

MIRROR

Меняет местами исходный и целевой адреса и посылает пакеты обратно, по сути "отражая" их назад отправителю.

SNAT

Трансляция исходных сетевых адресов. Эта опция применяется при выполнении трансляции сетевых адресов. Исходный адрес преобразуется в другое статическое значение, определенное с помощью ключа - to-source.

DNAT

Трансляция целевых сетевых адресов. Данная опция аналогична предыдущей, но применяется к целевым адресам.

MASQ

Маскарад с помощью общедоступного IP-адреса.

REDIRECT

Перенаправляет пакет.

Существуют и другие команды и опции, но мы перечислили самые распространенные операции. Весь список команд можно найти в оперативной справке Iptables, набрав man iptables в командной строке.

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

  1. Чтобы создать командный файл, откройте сначала текстовый редактор, такой как vi или EMACS, и введите свои команды.
  2. Введите в самом верху строку, которая выглядит следующим образом:

#! /bin/bash
Данная строка сообщает, какой интерпретатор использовать для выполнения команд. Вы должны иметь его в своей ОС, а команды, помещенные в файл, должны быть его корректными командами. Приведенный пример задает маршрутное имя интерпретатора bash в Mandrake Linux. Можно использовать другой интерпретатор, например, Tcsh или Csh. Просто задайте в первой строке его маршрутное имя. Затем сохраните файл.

  1. Сделайте файл исполнимым, чтобы интерпретатор мог выполнить его как программу. Это делается с помощью команды chmod. Введите

chmod 700 имя_командного_файла
Такой режим доступа делает файл читаемым, записываемым и исполнимым.
Чтобы выполнить командный файл, наберите его имя в командной строке. (В bash необходимо задать ./ перед именем файла, расположенного в текущем каталоге.) После нажатия клавиши ввода должны выполниться команды из файла.
Вы должны находиться в том каталоге, где размещен командный файл, или задать его маршрутное имя. Чтобы он выполнялся из любого места, можно добавить этот каталог в переменную окружения PATH или поместить файл в один из каталогов, фигурирующих в значении $PATH.
Создание межсетевого экрана Iptables
Опыт - лучший учитель, поэтому давайте рассмотрим пару команд, чтобы увидеть, как они используются в практическом приложении. Далее на примере Iptables показано, как создать межсетевой экран. Можно вводить команды интерактивно, по одной, чтобы сразу видеть результаты. Можно также поместить их в командный файл и выполнять его при загрузке системы, поднимая тем самым межсетевой экран (см. врезку о написании командных файлов). Набирайте их точно так же, как показано, сохраняя, в частности, регистр букв.
В следующем примере предполагается, что диапазон IP-адресов 192.168.0.1 - 192.168.0.254 принадлежит вашей подсети ЛВС, к которой подключен интерфейс eth1, и что интерфейс eth0 является соединением с Интернетом или ГВС.

  1. Начните с удаления всех существующих правил с помощью команды Flush:

iptables -F FORWARD
Это стирает все правила цепочки FORWARD, являющейся основной "воронкой" для всех пакетов, пытающихся пройти через межсетевой экран.

  1. Очистите другие цепочки:
  • iptables -F INPUT

iptables -F OUTPUT
Эти команды стирают все правила на пути пакетов, направленных в локальную машину, и в выходной цепочке.

  1. Поместите стандартную инструкцию "запретить все" в самое начало.
  • iptables -P FORWARD DROP

iptables -A INPUT -i eth0 -j DROP

  1. Решение о допуске фрагментированных пакетов в Iptables необходимо оформить явным образом:

iptables -A FORWARD -f -j ACCEPT

  1. Существует два типа распространенных атак, которые необходимо сразу заблокировать. Одна из них называется подделкой (подделываются заголовки IP-пакетов, чтобы казалось, будто внешний пакет имеет внутренний адрес). Делая это, злоумышленник может попасть в вашу сеть, даже если вы используете собственные IP-адреса. Другой тип атаки реализуется отправкой потока пакетов на широковещательный адрес сети, чтобы перегрузить ее. Это называется штормовой атакой. Атаки перечисленных типов можно блокировать с помощью двух простых инструкций:
  • iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -j DROP

iptables -A FORWARD -p icmp -i eth0 -d 192.168.0.255 -j DENY
Первая инструкция предписывает отбрасывать все пакеты, приходящие из Интернет-интерфейса eth0 с внутренним адресом 192.168.0.0/24. По определению ни один пакет не должен приходить из недоверенного интерфейса с внутренним, собственным исходным адресом. Вторая инструкция отвергает все приходящие извне на адрес внутренней сети широковещательные пакеты протокола ICMP.

  1. Вы, как правило, желаете принимать входящие потоки данных, поступающие по соединениям, инициированным изнутри (например, кто-то просматривает web-страницу). Пока соединение, инициированное изнутри, поддерживается - все, наверное, хорошо. Можно, однако, ограничить тип пропускаемого внутрь трафика. Предположим, вы хотите разрешить сотрудникам только web-доступ и электронную почту. Можно определить типы трафика для прохода внутрь и только для уже инициированного соединения. Следующая инструкция разрешает потоки данных по web-протоколу HTTP и почтовому протоколу SMTP на основе этого критерия.
  • iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.0/24 --dports
  • www,smtp --tcp-flags SYN, ACK -j ACCEPT
  • iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.0/24 --dports

www,smtp --tcp-flags SYN, ACK -j ACCEPT
Флаг -m multiport извещает Iptables, что вы будете выдавать инструкции сопоставления с портами. Конструкция - sports разрешает только трафик электронной почты и web-навигации. Опция - syn разрешает пакеты SYN с неустановленным флагом ACK (и RST), то есть инициирование соединений TCP, а предшествующий восклицательный знак инвертирует смысл этого условия. В результате допускаются только пакеты, не инициирующие соединений.

  1. Чтобы можно было принять входящие соединения извне только на определенных портах (например, входящие соединения электронной почты c вашим почтовым сервером), и разрешить из этих же портов направлять трафик вовне, используйте следующие инструкции:
  • iptables -A FORWARD -m multiport -p tcp -i eth0 -d 192.168.0.0/24

 --dport smtp --syn -j ACCEPT
Предполагается, что IP-адресом почтового сервера служит 192.168.0.2. Флаги --dport и --sport разрешают только почтовый трафик SMTP.

  1. Можно разрешить пользователям инициировать исходящие соединения и передавать по ним данные, но только для определенных протоколов. Именно здесь вы можете запретить применение FTP и других необязательных программ.
  • iptables -A FORWARD -m multiport -p tcp -o eth0 -d

0.0.0.0 --dports www,smtp --syn -j ACCEPT

  1. Необходимо пропускать некоторые входящие и исходящие пакеты UDP. UDP применяются для DNS, и, если эти пакеты заблокировать, то пользователи не смогут выполнять разрешение адресов. Так как, в отличие от TCP, UDP-пакеты не имеют состояния, нельзя полагаться на проверки флагов SYN или ACK. Вы хотите разрешить UDP только на порт 53, поэтому вы задаете domain (встроенную переменную для порта 53) как единственно допустимый порт. Это делается с помощью следующих инструкций:
  • iptables -A FORWARD -m multiport -p udp -i  eth0 -d
  • 192.168.0.0/24 --dports domain -j ACCEPT
  • iptables -A FORWARD -m multiport -p udp -i  eth0 -s
  • 192.168.0.0/24 --sports domain -j ACCEPT
  • iptables -A FORWARD -m multiport -p udp -i  eth1 -d
  • 0.0.0.0--dports domain -j ACCEPT
  • iptables -A FORWARD -m multiport -p udp -i  eth0 -s

0.0.0.0 --sports domain -j ACCEPT

  1. Первая из двух приведенных выше инструкций разрешает входящие дейтаграммы UDP, а вторая - исходящие. Аналогичные действия стоит проделать и для ICMP-пакетов (информационных сетевых пакетов, рассмотренных в). Вы хотите разрешить только определенные типы пакетов, такие, например, как эхо-ответ для входящих (--icmp-type 0) или эхо-запрос для исходящих (--icmp-type 8). Этого можно добиться с помощью следующих инструкций:
  • iptables -A FORWARD -m multiport -p ismp -i eth0 -d
  • 192.168.0.0/24 --dports 0, 3,11 -j ACCEPT
  • iptables -A FORWARD -m multiport -p ismp -i eth1 -d

0.0.0.0 --dports 8, 3,11 -j ACCEPT

  1. Наконец, вы хотите установить протоколирование, чтобы, просматривая журнал, можно было увидеть, какие пакеты были отброшены. Журнал желательно периодически просматривать, даже если проблем нет, просто чтобы иметь представление о видах отброшенного трафика. Если вы видите повторно отброшенные пакеты из одной и той же сети или одного адреса, то вас, возможно, атаковали. Протоколирование всех видов трафика задается одной инструкцией:
  • iptables -A FORWARD -m tcp -p tcp -j LOG
  • iptables -A FORWARD -m udp -p udp -j LOG

iptables -A FORWARD -m udp -p ismp -j LOG
Готово! Вы получили межсетевой экран, защищающий от наиболее распространенных атак из Интернета.

IP-маскарад с помощью Iptables
Когда создавался Интернет, несколько больших блоков адресов были выделены для использования в собственных сетях. Эти адреса не маршрутизируются в Интернете, их можно использовать, не опасаясь конфликтов с другими сетями. Диапазонами собственных адресов являются
10.0.0.0 - 10.255.255.255
192.168.0.0 - 192.168.255.255
172.16.0.0 - 173.31.255.255
Используя эти адреса в своей внутренней сети и имея один внешний, маршрутизируемый IP-адрес для межсетевого экрана, вы эффективно закроете внутренние машины от внешнего доступа. С помощью Iptables несложно выстроить дополнительный защитный рубеж, используя IP-маскарад. Межсетевой экран отрезает внутренний IP-заголовок и заменяет его заголовком, задающим экран в качестве отправителя. Затем пакет данных посылается в место назначения с исходящим IP-адресом общедоступного интерфейса межсетевого экрана. Когда пакет возвращается, экран вспоминает, по какому внутреннему IP-адресу тот направлен, и переадресует его для внутренней доставки. Этот процесс называется также трансляцией сетевых адресов (NAT). В Iptables трансляцию адресов можно организовать с помощью следующих инструкций:
iptables -t nat -P POSTROUTING DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Флаг MASQUERADE можно сократить до MASQ. Одним из усовершенствований Iptables по сравнению с предыдущими системами, такими как Ipchains и Ipfwadm, является способность решения дополнительных задач, таких как трансляция сетевых адресов.
Теперь вы знаете, как создать базовую конфигурацию межсетевого экрана. Она проста, но возможные вариации бесконечны. Можно переадресовывать определенные порты на внутренние серверы, чтобы не назначать для них обязательно общедоступные IP-адреса. Можно вставить в экранирующий компьютер еще одну сетевую плату и сделать ее интерфейсом демилитаризованной зоны для серверов с общедоступными адресами. По продвинутым конфигурациям межсетевых экранов написаны целые тома и существует множество списков почтовой рассылки; один из лучших среди них - firewall-wizards. Чтобы подписаться на эту рассылку, направьте сообщение со словом "subscribe" в теле письма по адресу
firewall-wizards-request@honor.icsalabs.com
Список firewall-wizards содержит обсуждение всех уровней конфигурации межсетевых экранов и не ориентирован на определенных производителей, то есть обсуждаются все модели экранов - от открытых до коммерческих.
Если вы хотите быстро построить межсетевой экран, не набирая все эти инструкции Iptables и не запоминая их синтаксис, то существует инструмент, который создает экранирующие инструкции с помощью графического интерфейса, избавляя вас от технической работы.

Это небольшое изящное приспособление, именуемое Turtle Firewall, создал Андреа Фриджидо. По сути, Turtle является набором командных файлов Perl, которые делают за вас всю черновую работу по подготовке межсетевого экрана Iptables к работе. Эта программа существенно облегчает просмотр правил и проверку того, что инструкции поступают в правильном порядке. Она выполняется как служба, поэтому вам не нужно заботиться об инициализации межсетевого экрана с помощью командного файла. Она использует службу Linux Webmin, являющуюся небольшим web-сервером, позволяющим изменять конфигурацию из web-навигатора. Вообще говоря, запуск web-сервера на экранирующем компьютере несколько снижает безопасность последнего, но достигаемое упрощение конфигурирования перевешивает этот недостаток. В наше время многие коммерческие поставщики используют для конфигурирования интерфейс Web-навигатора. Важное достоинство такого подхода - возможность конфигурирования с любой машины Windows или UNIX.
Андреа предлагает также опцию коммерческой поддержки. Не более чем за 100 евро (не спрашивайте меня, сколько это долларов; во время написания книги соотношение между долларом и евро было примерно 1:1) предоставляется 30-дневная поддержка по электронной почте, так что на этапе ввода в действие без помощи вы не останетесь. Поддержка может оказаться полезной и на этапе эксплуатации, если возникают проблемы, с которыми вы не можете справиться самостоятельно.

Установка Turtle Firewall
Установка и начальная настройка Turtle Firewall очень проста, так как используется модуль администрирования Webmin, доступный на большинстве платформ Linux.

  1. Если вы не установили модуль администрирования Webmin при установке ОС, следует сделать это сейчас, так как он необходим для Turtle Firewall. Найдите и запустите RPM, который должен быть на большинстве дисков с дистрибутивами Linux. Щелкните на файле RPM мышью, и он установится автоматически.
  2. Когда это будет сделано, вы получите возможность входа в программу настройки межсетевого экрана, вводя его IP-адрес в окне навигатора и нажимая клавишу ввода.
  3. Теперь все готово к установке Turtle Firewall. Загрузите упакованный дистрибутив с http://www.turtlefirewall.com или возьмите его с компакт-диска, прилагаемого к книге, и распакуйте.
  4. Перейдите в каталог turtlefirewall и наберите

./setup
Запустится командный файл установки, который поместит модули Perl и другие необходимые файлы в нужные места.

  1. Используя Web-навигатор, войдите на сервер Webmin, указав его IP-адрес или имя хоста. Отобразится интерфейс Webmin.
  2. Щелкните мышью на вкладке Module Index, и в окне отобразится основной экран Turtle Firewall.
  3. Щелкните мышью на иконке Firewall Items, чтобы начать конфигурирование межсетевого экрана. Сначала вам придется задать основные сведения о нем. В Turtle Firewall применяется концепция зон для определения доверенных и недоверенных сетей. Доверенная зона связывается с сетью, где работают люди, которым принято доверять (пример - ваша внутренняя сеть). Недоверенная зона - это сеть, в которой может работать кто угодно, от сотрудников до заказчиков, продавцов или даже злоумышленников. В Turtle они называются "good" и "bad", но это по сути то же самое, что доверенная и недоверенная.

В Turtle предусмотрен также элемент для демилитаризованной зоны (dmz), в которой располагают серверы со свободным доступом для недоверенной зоны. Задайте интерфейсы для доверенной, недоверенной и демилитаризованной (если таковая имеется) зон.

  1. Затем в блоке Net следует задать адреса внутренней сети. Укажите диапазон IP-адресов с маской подсети для внутренней сети, которая будет защищаться межсетевым экраном, в предоставленном поле.
  2. После этого задайте все хосты во внутренней сети и демилитаризованной зоне, требующие специального рассмотрения (пример - почтовый или Web-сервер). Сделайте это в блоке Hosts.
  3. Наконец, в области Group можно определить все специальные хосты, к которым желательно подходить особым образом (пример - машины администраторов). Теперь ваш межсетевой экран готов к работе в базовом режиме.

Вероятно, вы захотите добавить некоторые дополнительные ограничения или разрешения, например, возможность кому-то извне использовать для входа SSH. Это можно сделать, написав правило под вкладкой Firewall Rules. Щелкните на ней мышью, и с вами начнут графический диалог для написания нового правила. Вы обнаружите сходство структуры диалога с форматами инструкций Iptables.

Если вы хотите реализовать функцию маскарада Iptables, используя собственные IP-адреса для вашей внутренней сети, щелкните мышью на иконке "NAT and Masquerading" на основном экране. Вы сможете специфицировать, какая зона будет подвергаться маскараду. Обычно это доверенный интерфейс. Здесь же можно задать хосты, сетевые адреса которых будут транслироваться. Хост, заданный в качестве виртуального, будет служить фасадом реального хоста, и межсетевой экран будет переправлять все пакеты реальному хосту через виртуальный. Это создает дополнительный защитный рубеж для внутренних серверов.

Две обсуждавшиеся выше программы, Iptables и Turtle Firewall, предоставляют недорогой способ построения простого межсетевого экрана. Однако, если вам требуется сервер динамического конфигурирования хостов (DHCP-сервер), придется устанавливать его отдельно. Далее, если вы хотите использовать SSH для входа в компьютер, понадобится установить еще одну программу. SmoothWall - это межсетевой экран с открытыми исходными текстами, предлагающий мощный экранирующий пакет, в который встроены все перечисленные и многие другие возможности. Он создан компанией, которая предлагает как свободную (с лицензией GPL), так и коммерческую версии (последняя - с некоторыми дополнительными возможностями и улучшенной поддержкой). Это - еще один пример того, как продукт может использовать мощь открытого ПО и приносить компании коммерческую выгоду. Свободная версия называется SmoothWall Express и имеет на момент написания книги номер 2.0; коммерческая версия именуется SmoothWall Corporate Server, ее номер - 3.0.
SmoothWall Express содержит несколько опций, отсутствующих в Iptables, которые большинство организаций хотели бы иметь в полнофункциональном межсетевом экране. Конечно, можно собрать все это вместе из других программ и Iptables, но SmoothWall предлагает все в одной программе в простом для установке пакете. Вот некоторые из его возможностей:

  • Поддержка виртуальных собственных сетей: SmoothWall объединяет виртуальные защищенные сети на основе протоколов IPsec со средствами межсетевого экранирования. Это позволяет осуществлять извне (например, из стационарного удаленного филиала или из произвольной точки маршрута коммивояжера) безопасный доступ к локальной сети по шифруемому туннелю (нестатическая виртуальная собственная IP-сеть поддерживается только в корпоративной редакции).
  • Клиент и сервер DHCP: Клиент позволяет межсетевому экрану получать динамический IP-адрес для своего внешнего (в ГВС) интерфейса. Это обычная практика для предоставления Интернет-услуг через абонентские цифровые линии или кабельные модемы. Кроме того, межсетевой экран получает возможность действовать в качестве сервера DHCP для внутренней ЛВС, выдавая IP-адреса в соответствии с предварительно заданной политикой. И снова отметим, что можно, конечно, добавить эти возможности к Iptables, но в результате вы получите две программы, которые придется устанавливать и администрировать отдельно.
  • Доступ к межсетевому экрану посредством SSH и web-навигатора: Безопасный доступ средствами командной строки и web-навигатора. Turtle Firewall предоставляет для Iptables web-, но не SSH-доступ. В SmoothWall встроены обе возможности без необходимости устанавливать дополнительное программное обеспечение.
  • Сервер-посредник web: Возможность настроить web-посредник так, чтобы доступ ко всем web-сайтам осуществлялся через межсетевой экран. Это обеспечивает определенный уровень web-безопасности, так как любая программа, использующая уязвимости, должна будет выполняться на межсетевом экране, а не на локальной машине. Дальнейшего повышения безопасности можно добиться с помощью опции фильтрации информационного наполнения, доступной от SmoothWall Limited.
  • Кэширующий web-сервер: Средство запомнить наиболее популярные web-страницы для замены удаленного доступа локальным, что дает выигрыш во времени и в пропускной способности.
  • Обнаружение вторжения: SmoothWall предлагает некоторые базовые сетевые средства обнаружения вторжений.
  • Графики и отчеты: SmoothWall позволяет получать простые отчеты о работе межсетевого экрана и генерировать графики на основе этих данных.
  • Поддержка дополнительных типов соединений: SmoothWall поддерживает многие типы интерфейсов, включая коммутируемый, кабельный, ADSL, ISDN и Ethernet. При использовании Ipchains некоторые из этих интерфейсов требуют дополнительного программного обеспечения и конфигурирования.

Одним из существенных различий между SmoothWall и упомянутыми выше программами является необходимость функционирования SmoothWall на выделенной машине. При установке межсетевой экран SmoothWall очищает жесткий диск и устанавливает собственную операционную систему. (По сути это урезанная версия Linux с повышенной безопасностью, но для обслуживания SmoothWall вам не нужно ничего о ней знать.) Это означает, что вы не сможете запускать на данной машине другие средства или использовать ее для иных целей (по крайней мере без больших трудностей и потенциальной опасности нарушить работу программного обеспечения SmoothWall). Не всех это устроит, но если вы ищете недорогой и быстрый способ построить готовый к немедленной эксплуатации межсетевой экран с множеством возможностей, то SmoothWall - как раз для вас.
Требования SmoothWall к оборудованию
Выше упоминалось, что SmoothWall должен функционировать на выделенной машине, но, к счастью, требования к ней невелики, так как на ней будет выполняться только программное обеспечение межсетевого экрана. Минимальная конфигурация состоит из ПК с процессором, совместимым с Intel Pentium 200 МГц, ОЗУ 32 МБ и 512 МБ дискового пространства. В качестве более оптимальной конфигурации рекомендуется процессор 500 МГц, ОЗУ 64 МБ и диск 2 ГБ. Этим спецификациям соответствуют все машины, за исключением разве что самых старых. Кроме того, нужен привод компакт-дисков и по крайней мере одна сетевая плата (обычно две, если интерфейсом в ГВС служит Ethernet).

Сравнение SmoothWall Express и SmoothWall Corporate
Если вы располагаете некоторой суммой денег на расходы и рассматриваете коммерческие альтернативы свободным средствам, есть смысл остановиться на корпоративной редакции SmoothWall. Этот межсетевой экран обладает всеми достоинствами версии Express со следующими существенными отличиями:

  • Улучшенная поддержка обнаружения вторжений;
  • Средства отказоустойчивости соединений;
  • Поддержка роуминга в виртуальных собственных сетях (динамические IP-адреса);
  • Дополнительные графики и отчеты;
  • Улучшенный графический интерфейс пользователя;
  • Поддержка в виртуальных собственных сетях аутентификации с применением сертификатов.

С полным списком отличий можно ознакомиться по адресу: http://download.smoothwall.org/archive/docs/promo/CorporateServer_vs_Express_Comparison_20040113.pdf.
Цена коммерческой версии вполне разумна (посмотрите текущие цены на web-сайте), она существенно меньше стоимости оборудования, на котором межсетевой экран будет функционировать. Компания SmoothWall делает и другие программные продукты - для мониторинга сети и фильтрации информационного наполнения. Изучите всю линейку предлагаемых продуктов, обратившись по адресу http://www.smoothwall.net.
Установка SmoothWall
Предостережение: Помните, что при установке SmoothWall сотрет все данные на жестком диске и разместит на нем собственную операционную систему. Не запускайте его установку на компьютере, где имеются нужные вам данные или программы.

  1. Сначала необходимо создать загрузочный компакт-диск. Воспользуйтесь для этого программным обеспечением для записи компакт-дисков, таким как Nero или Easy CD Creator, и создайте диск из файла с образом .iso (каталог SmoothWall на компакт-диске, приложенном к этой книге). Созданный диск будет загрузочным.
  2. Сконфигурируйте ПК для начальной загрузки с компакт-диска (иначе будет просматриваться жесткий диск и загрузится найденная там операционная система). Обычно это делается в настройках BIOS на ПК, которые доступны в момент старта системы до загрузки OC. На многих ПК для входа в этот режим служит функциональная клавиша F2.
  3. Выполните загрузку с компакт-диска. Появится заглавный экран, содержащий основную информацию о лицензии и ограничении ответственности. Щелкните мышью на OK.

У вас есть выбор между загрузкой с компакт-диска и через HTTP. Помните, что в этот режим нельзя входить, если вы не готовы к стиранию всех данных с жесткого диска и замены их программным обеспечением SmoothWall.
Выберите "CD-ROM", и установка начнется.
Вы увидите, что сначала происходит форматирование диска, а затем опробование сетевых интерфейсов компьютера (автообнаружение всех сетевых интерфейсных плат). У вас есть возможность принять или пропустить каждую из плат и задать их в качестве интерфейсов межсетевого экрана. Например, если в компьютере имеются две сетевые платы, но в качестве интерфейса межсетевого экрана желательно использовать только одну из них.

  1. Задайте атрибуты всех выбранных интерфейсов. Присвойте им IP-адреса и маски подсети. После этого SmoothWall установит некоторые дополнительные файлы драйверов и попросит вас вынуть компакт-диск. Вы завершили установку программы и автоматически переходите в режим настройки.
  2. В режиме настройки вам будет предложено ввести имя хоста для SmoothWall. Это имя можно использовать для доступа к машине вместо ее IP-адреса в ЛВС.
  3. Затем будет предложено восстановить конфигурацию с резервной копии. Эта удобная возможность позволяет легко восстановить первоначальную конфигурацию межсетевого экрана после крушения системы (при условии, что вы делали резервные копии, см. далее в этом разделе). Не выбирайте этот пункт, если не находитесь в процессе восстановления с резервной копии.
  4. Если на предыдущем шаге выбрано конфигурирование нового межсетевого экрана (не с резервной копии), вам будет предложено задать параметры сетей нескольких типов:
    • ISDN: Оставьте состояние "Disable", если не используете ISDN. В противном случае добавьте параметры, соответствующие вашей линии ISDN.
    • ADSL: Этот пункт нужен только в случае использования асимметричных цифровых абонентских линий и наличия в компьютере модема ADSL. Оставьте состояние "Disable", если вы не используете ADSL, или если провайдер предоставил вам для подключения внешний модем. В противном случае щелкните мышью на настройки службы ADSL.
    • Сетевая конфигурация: В SmoothWall зоны подразделяются на три категории:
      • Зеленая (Green): Защищаемый внутренний сетевой сегмент - ваша "доверенная" сеть.
      • Красная (Red): Внешняя сеть, отгораживаемая от ЛВС. "Недоверенная" сеть, обычно - Интернет или все, что не является вашей ЛВС.
      • Оранжевая (Orange): Это необязательный сегмент, который может содержать доверенные машины, открываемые для доступа из Интернета (упоминавшаяся ранее демилитаризованная зона). Организация этого сегмента защищает внутреннюю ЛВС в случае компрометации одного из серверов (так как по умолчанию узлы ДМЗ лишены доступа к ЛВС) и позволяет этим машинам быть доступными внешнему миру.

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

  1. Теперь пришло время конфигурировать сервер DHCP. Если вы хотите сделать ваш межсетевой экран ответственным за раздачу и управление динамическими IP-адресами в ЛВС, включите эту возможность. В противном случае оставьте ее выключенной. Вы можете задать распределяемый диапазон, а также сервер имен и срок годности выданных адресов.
  2. Далее вы задаете несколько паролей для различных уровней и методов доступа. Вход "root" доступен с консоли и из командной строки и действует как root в UNIX в том смысле, что вы получаете полный контроль над машиной. Затем вы выбираете пароль для пользователя "setup", который также может обращаться к системе с консоли и из командной строки, но, по сравнению с пользователем "root", имеет более ограниченные возможности и может выполнять только служебную программу настройки.
  3. Наконец, создается системный счет для web-интерфейса. Это не системный счет в смысле UNIX, он недоступен из командной строки и используется исключительно для управления доступом к различным возможностям средствами web-интерфейса.
  4. Перезагрузите машину, и ваш межсетевой экран SmoothWall должен запуститься и заработать. Можно войти в машину с консоли под именем root или setup. Можно с помощью SSH подсоединиться с удаленного компьютера и получить интерфейс командной строки. Однако одной из по-настоящему изящных возможностей этой программы является развитый, дружественный графический интерфейс, доступный из любого web-навигатора и превращающий администрирование межсетевого экрана в синекуру.

Администрирование межсетевого экрана SmoothWall
Проще всего управлять межсетевым экраном SmoothWall с помощью web-интерфейса. Это дает вам мощное средство администрирования и наращивания функциональности. Доступ к этому интерфейсу можно получить двумя способами: через порт 81 для обычных Web-коммуникаций web или через порт 441 - для защищенных с помощью SSL. В любом случае вы помещаете IP-адрес или универсальный локатор ресурсов с номером порта в поле адреса web-навигатора. Например, если сетевой интерфейс на плате вашего межсетевого экрана имеет IP-адрес 192.168.1.1, наберите в Web-навигаторе
http://192.168.1.1:81/
для обычных web-коммуникаций или
http://192.168.1.1:441/
для защищенного web-доступа.
Появится заставка SmoothWall. Чтобы получить доступ к другим экранам, необходимо ввести имя пользователя и пароль. Подразумеваемое имя пользователя - admin, с паролем, заданным при конфигурировании для web-интерфейса. На главной странице располагается несколько основных меню, включающих ряд подменю:

  • Control: основная страница межсетевого экрана, содержащая данные об авторских правах и периоде работоспособности.
  • About Your Smoothie: здесь находится несколько полезных подменю:
    • Status: показывает состояние различных служб SmoothWall.
    • Advanced: отображает детальную информацию о системе.
    • Graphs: одна из самых замечательных возможностей SmoothWall. Позволяет строить графики интенсивности потоков данных, чтобы можно было анализировать сетевой трафик на различных интерфейсах в разное время дня и в разные дни. Это средство можно использовать в качестве быстрого способа выявления проблем в сети. Если вы заметите резкий рост трафика в выходные дни или поздно ночью без известной причины, то это должно вас насторожить.
  • Sevices: здесь конфигурируются основные и дополнительные службы SmoothWall:
    • Web Proxy: если вы хотите использовать SmoothWall в качестве посредника при web-навигации, то эту функцию можно сконфигурировать здесь.
    • DHCP: здесь настраивается встроенный сервер DHCP.
    • Dynamic DNS: если поставщик Интернет-услуг присваивает вам динамический IP-адрес, но вы, тем не менее, хотите разрешить внешним сервисам внутренний доступ, можно сконфигурировать SmoothWall для автоматической замены записи DNS новым IP-адресом. Можно настроиться на использование любого из оперативных сервисов, таких как dyndns.org и dhs.org.
    • Remote Access: управление доступом к SmoothWall из любого места помимо консоли. Можно включить SSH (по умолчанию он отключен) и указать, с каких конкретных адресов разрешен доступ.
    • Time: конфигурирование параметров времени на машине. Это может быть очень важно, если вы сравниваете свои файлы журналов с другими серверами. Можно задать получение времени с общедоступного сервера времени, что делает журналы более точными.

Networking: здесь конфигурируется все, связанное с экранирующими и сетевыми функциями SmoothWall, в том числе добавление, удаление или модификация наборов правил и другие функции:

    • Port Forwarding: вы можете переправлять данные, посланные в определенный порт или группу портов, на внутренний защищенный хост.
    • Internal Service Access: щелкните мышью здесь, если требуется доступ извне к внутренним сервисам.
    • DMZ Pinhole: позволяет задать доступ из хоста в демилитаризованной зоне к хосту в ЛВС. Обычно это запрещено в силу предназначения ДМЗ.
    • PPP Settings: если вы используете SmoothWall для коммутируемого соединения с Интернет, то здесь можно задать различные телефонные настройки, такие как номер телефона, команды модема и т.д.
    • IP Block: удобное средство, позволяющее легко блокировать IP-адрес или диапазон IP-адресов из вашей сети без необходимости писать какие-либо правила.
    • Advanced: здесь располагается несколько вспомогательных сетевых настроек, таких как поддержка Universal Plug and Play (UpnP).
  • VPN: здесь SmoothWall конфигурируется для работы в виртуальной собственной сети для безопасного удаленного доступа из других сетей. Детали рассмотрены ниже в данной лекции.
  • Logs: этот экран упрощает доступ ко всем файлам журналов SmoothWall. Интерфейс позволяет легко просматривать любые типы журналов, как системных, так и относящихся к безопасности.
  • Tools: здесь представлено несколько стандартных сетевых средств, включая ping, traceroute и whois, а также развитый клиент SSH на основе Java, позволяющий осуществлять доступ к серверам SSH из вашего web-навигатора.
  • Maintenance: этот раздел используется для деятельности по сопровождению системы и содержит несколько подменю:
    • Maintenance: здесь отслеживаются все программные коррекции операционной системы SmoothWall. Своевременное наложение заплат на ОС SmoothWall очень важно. Как в любой операционной системе, в ней время от времени выявляются уязвимости, ликвидируемые с помощью корректирующих заплат. Кроме того, периодически добавляются новые возможности, повышается совместимость.
    • Password: здесь можно изменять входные имена и пароли для системы (при условии, что у вас есть старые пароли).
    • Backup: резервное копирование конфигурации SmoothWall с целью последующего восстановления после аварии системы. Необходимо сделать резервную копию, как только вы сконфигурируете SmoothWall нужным образом, чтобы сохранить свои настройки.
    • Shutdown: безопасное выключение SmoothWall.

 

Создание виртуальной собственной сети с помощью межсетевого экрана SmoothWall
SmoothWall можно использовать для организации безопасного соединения с другой сетью посредством создания туннеля с шифрованием по спецификациям IPsec.

  1. Чтобы сконфигурировать на межсетевом экране функции виртуальных собственных сетей, щелкните мышью на элементе VPN основного меню. В нем находятся два подменю.
    • Control: это основной экран, где вы можете начинать и завершать сеансы конфигурирования виртуальных собственных сетей, а также получать информацию об их состоянии.
    • Connections: здесь весьма несложным образом конфигурируются новые соединения. На SmoothWall Express (свободная версия с лицензией GPL) обе стороны должны иметь статические, общедоступные IP-адреса. Чтобы создать профиль нового соединения, перейдите на вкладку Connections основной вкладки VPN.
  2. Введите имя соединения, по возможности - мнемоничное.
  3. Определите "левую" (Left) и "правую" (Right) стороны соединения. (Эти имена никак не связаны с направлением, но используются просто для ссылок на разные концы соединения. Локальная сторона обычно считается левой.) Введите IP-адрес и подсеть для локального SmoothWall на левой стороне, а также IP-адрес и подсеть удаленного SmoothWall на правой стороне.
  4. Ниже вводится общий секрет, используемый для организации шифрования. Это секрет должен быть одинаковым на обоих соединяемых межсетевых экранах. Он должен быть защищенным и не передаваться небезопасным образом (например, по электронной почте). Сделайте текст секрета длиной не менее 20 символов, включите в него символы верхнего и нижнего регистров и специальные символы, чтобы сделать виртуальную собственную сеть как можно более защищенной.
  5. Можно щелкнуть мышью в поле сжатия (Compression), чтобы снизить интенсивность потоков данных через виртуальную собственную сеть. Но помните, что это создает дополнительную нагрузку на процессор, которая способна превысить выигрыш от сжатия передаваемых данных и в итоге привести к замедлению работы сети.
  6. Не забудьте щелкнуть мышью в поле активизации (Enable), а затем - на кнопке Add, чтобы добавить новое соединение. Теперь вы увидите его на основной странице VPN Control. Оно полностью готово к работе, если канал, с которым ассоциировано соединение, находится в работоспособном состоянии.
  7. Можно экспортировать настройки виртуальной собственной сети на другой экземпляр SmoothWall, чтобы облегчить конфигурирование и избежать ошибок ввода при конфигурировании дополнительных оконечных точек. Щелкните мышью на кнопке Export. Будет создан файл с именем vpnconfig.dat, который можно перенести на удаленную машину, зайти на ту же страницу и выбрать Import. SmoothWall автоматически переставит записи для удаленного конца. Теперь ваша виртуальная собственная сеть готова к работе. Повторите этот процесс для всех производственных площадок, безопасное взаимодействие с которыми вы хотите обеспечить.

Дополнительные приложения SmoothWall
В этом разделе представлен лишь поверхностный обзор основных функций SmoothWall. Существуют другие, продвинутые функции, описанные в документации, прилагаемой к SmoothWall. Детали настройки других специальных служб, таких как web-сервер-посредник или динамический сервис имен, можно найти в справочнике администратора. Все три файла документации в PDF-формате помещены в каталог SmoothWall на компакт-диске, прилагаемом к этой книге. Если вы располагаете свободной машиной, которую можете выделить исключительно для нужд межсетевого экранирования, то SmoothWall Express позволит вам выйти за рамки простой экранирующей функциональности и снабдить свою сеть полноценным защитным устройством.
Межсетевые экраны на платформе Windows
Ни один из межсетевых экранов, описанных в этой лекции, не работает на платформе Windows. С прискорбием приходится констатировать дефицит качественного программного обеспечения межсетевых экранов с открытыми исходными текстами для Windows. Поскольку сами исходные тексты Windows не являются открытыми, программистам нелегко создать столь сложный продукт, каковым является межсетевой экран, требующий доступа к коду уровня операционной системы. С добавлением базового межсетевого экрана в Windows XP, у программистов стало еще меньше мотивации разрабатывать альтернативные решения с открытыми исходными текстами. Это печально, так как межсетевой экран в XP хорош для индивидуальных пользователей, но не годится для решения задач корпоративного экранирования. Имеются коммерческие варианты продуктов для Windows от таких компаний, как Checkpoint, однако даже они отходят от ориентации исключительно на Windows из-за проблем безопасности данной платформы. Если требуется межсетевой экран на платформе Windows, то вам, вероятно, следует искать коммерческое решение, поскольку хорошего межсетевого экрана с открытыми исходными текстами для Windows нет. Это подчеркивает ограничения и проблемы операционных систем с закрытыми исходными текстами.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г.Яндекс.Метрика