Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
Защита подсетей с помощью брандмауэров
Для организации демилитаризованной зоны обычно используется один из двух способов. Первый способ предполагает применение брандмауэра бастионного типа с тремя сетевыми интерфейсами. Один сетевой интерфейс подключается к Интернету, а два остальных -k двум изолированным локальным сетям. Одна из сетей выполняет роль демилитаризованной зоны, в ней размещаются общедоступные серверы. Во второй сети располагаются службы, предназначенные для внутреннего использования и компьютеры пользователей.
Другой способ состоит в использовании второго брандмауэра, называемого заглушкой (choke). Компьютер, на котором реализован брандмауэр-заглушка, выполняет роль шлюза между демилитаризованной зоной и локальной сетью. Внутренний сетевой интерфейс бравдмауэра-заглушки подключен к локальной сети, а внешний -k демилитаризованной зоне. Данные, передаваемые компьютерами локальной сети, маскируются. Таким образом, с точки зрения брандмауэра-бастиона и машин, принадлежащих демилитаризованной зоне, вся внутренняя сеть представлена одним брандмауэром-заглушкой.
Бастион маскирует трафик внутренней сети, поэтому, на первый взгляд, брандмауэр-заглушка не должен выполнять маскировку. Однако, если вся внутренняя сеть имеет один адрес, принадлежащий брандмауэру-заглушке, набор правил бастиона упрощается.
Подобная структура реализует две линии обороны локальной сети. Локальная сеть расположена за заглушкой и полностью изолирована от бастиона и, тем более, от Интернета. При использовании описанной системы необязательно задавать полный набор правил для внутреннего интерфейса бастиона, достаточно, если правила, осуществляющие фильтрацию пакетов, будут связаны с внешним интерфейсом заглушки.
Таким образом, система защиты внутренней сети содержит как минимум четыре набора правил – по одному для внутреннего и внешнего интерфейса каждого из брандмауэров. Правила для внешнего интерфейса бастиона практически совпадают с правилами брандмауэра, описанного ранее.
Реально описанная здесь система отличается от ранее рассмотренной наличием демилитаризованной зоны, а также новыми правилами, заданными для внутреннего интерфейса бастиона и для внешнего интерфейса заглушки. Указанные два набора правил, по сути, представляют собой зеркальное отражение друг друга.Отладка брандмауэра
Брандмауэр установлен, настроен и активизирован, но функционирует не так, как хотелось. Даже если брандмауэр работает, рекомендуется сразу после установки и настройки произвести проверку правильности функционирования брандмауэра.
Общие рекомендации по отладке брандмауэра
Ниже приведены рекомендации, позволяющие облегчить отладку брандмауэра.
• Перед запуском сценария убедитесь, что в первой строке находится команда удаления существующих правил, а следующая команда устанавливает политику по умолчанию.
• Не рекомендуется производить изменения в правилах брандмауэра в X Window, поскольку неправильно заданное правило может «подвесить» X Window.
• Производите отладку с текстовой консоли. Не производите отладку брандмауэра с удаленной машины. В случае обрыва связи или неправильного конфигурирования вы рискуете остаться без доступа в Интернет.
• По возможности производите добавление правил по одному. В этом случае гораздо проще выявить причину неисправности. Сразу после добавления правил рекомендуется проверить их работоспособность.
• Обработка сетевого пакета определяется первым правилом, которому удовлетворяет этот сетевой пакет, поэтому порядок следования правил имеет большое значение.
• Помните, что существуют как минимум две не зависящие друг от друга цепочки: input и output. Если правила, содержащиеся в одной цепочке, обрабатывают пакет корректно, причина неисправности, очевидно, находится в другой цепочке.
• Если сценарий «зависает», возможно, что правило, в котором содержится доменное имя узла, вступает в действие раньше, чем правило, разрешающее доступ к DNS. Если какое-либо правило предшествует правилам, определяющим взаимодействие с DNS, в нем должны быть указаны IP-адреса. Использование доменных имен в таких правилах недопустимо, поскольку у вас еще нет доступа к серверу DNS.
• Проверяйте синтаксис команд программы ipchains. При составлении правил легко перепутать адрес или порт источника с адресом или портом назначения либо неверно задать регистр опции.
• При наличии синтаксической ошибки выполнение сценария брандмауэра завершается, и последующие правила не устанавливаются. Чтобы определить неверно составленное правило, запускайте сценарий с опциями -х или – v. Если указана опция – v, строки сценария выводятся в тот момент, когда они читаются интерпретатором команд. Опция -х задает вывод строк по мере выполнения команд оболочкой.
• Если какой-либо из серверов не работает, включите протоколирование удаляемых пакетов, указав опцию -l программы ipchains. Проанализируйте записи в файле /var/log/messages.
• Если вы обмениваетесь данными с Интернетом, работая на компьютере-брандмауэре, но не можете сделать этого с узла локальной сети, проверьте установки в /etc/sysconfig/network, связанные с перенаправлением пакетов.
• Если сервер доступен в пределах локальной сети, но попытка обратиться к нему извне оканчивается неудачей, включите протоколирование пакетов, проходящих через внутренний интерфейс. Постарайтесь выполнить всю проверку как можно быстрее, в противном случае в файле /var/log/messages появятся сотни записей.
• Если одна из служб не работает, временно включите в начало сценария брандмауэра правила, разрешающие прохождение пакетов в обоих направлениях, и задайте протоколирование, указав опцию -l. Проверьте, доступен ли сервер. Если это так, просмотрите записи в файле /var/log /messages и определите, какие порты используются при его работе.
Отображение списка правил брандмауэра
Чтобы убедиться, что правила брандмауэра инсталлированы именно так, как вы это планировали при составлении сценария, можно вывести содержимое цепочек. Сделать это позволяет опция -l программы ipchains. Если опция -l задана, ipchains выводит содержащиеся в соответствующей таблице ядра правила в той последовательности, в которой они применяются при обработке пакета. Для вывода содержимого цепочек используются следующие команды:
ipchains -L input
ipchains -L output
ipchains -L forwardРазличные опции программы ipchains позволяют выводить содержимое одной и той же цепочки с различной степенью детализации. Форматы вывода для цепочек input, output и forward совпадают.
Утилиты
В состав пакета ipchains входит утилита ipchains-save, с помощью которой вы можете получить текущую конфигурацию брандмауэра на стандартный вывод, а затем перенаправить его в файл. Так же есть утилита – близнец ipchains-restore, которая может получать информацию из стандартного ввода.
Ссылки
• bog.pp.ru/work/ipchains.html – Bog BOS: ipchains: фильтрация пакетов в Linux: принципы работы, установка и настройка.
• Ipchains-HOWTO (см. гл. 13).Глава 30 Организация шлюза в Интернете для локальной сети
В этой главе мы займемся созданием точки доступа в Интернет для локальной сети. Обычно для этого используется выделенная линия, по концам которой установлены модемы, подключаемые к последовательному порту. В последнее время все чаще для организации подключения по выделенной линии используются технологии. vDSL, при которых специальные модемы подключаются по интерфейсу Ethernet напрямую к сетевой карте, причем эти достаточно дорогие модемы сами уже и являются маршрутизаторами. Для определенности будем считать, что у нас есть модем, подключенный к последовательному порту.
Обычно в небольших локальных сетях выделяется один компьютер, который и выполняет роль маршрутизатора между локальной сетью и Интернетом, а также – счетчика трафика, брандмауэра, ограничителя скорости Web-сервера и т. п. Почти все, что необходимо для создания такой многопрофильной системы мы уже описывали выше, поэтому в этой главе остановимся только на тех проблемах, которые еще не рассматривались.
Начальные установки
Как правило во всех современных дистрибутивах Linux ядро собрано так, что работает как маршрутизатор пакетов между разными сетями и поддерживает механизм защиты маршрутизируемых пакетов и подсчет статистики.
Однако не будет лишним убедиться перед началом настройки системы, что в ядре вашей операционной системы присутствуют следующие необходимые для построения маршрутизатора элементы (функции):
• Networking support (поддержка сетевых свойств);
• TCP/IP networking (поддержка TCP/IP);
• IP forwarding/gatewaying (поддержка IP-маршрутизации);
• IP multicasting (поддержка специфических свойств IP-протокола);
• IP firewalling (поддержка брадмауэров);
• IP accounting (поддержка управления IP);
• Network device support (поддержка сетевых устройств).
Помимо этого, ядро операционной системы должно уметь работать с сетевыми картами, установленными на вашем компьютере, и поддерживать протокол РРР (Point-to-Point Protocol).