Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Брандмауэр

Подписаться на эту рубрику по RSS

Огненная стенаКак и в сценарии для простой реализации сети с DMZ, первоначально определяются слу­жебные переменные, которые будут использоваться в новом сценарии - firewall.sh. Описание каждой переменной можно найти в этом же разделе. Начало сценария будет таким:

#/bin/sh

IF_LAN="ethl"

IF_DMZ="eth2"

IF_EXT="eth0"

IP_LAN="192.168.1.1"

IP_DMZ="192.168.0.1"

DMZ_HTTP="192.168.0.3"

DMZ_DNS="192.168.О.2"

DMZ_MAIL="192.168.0.4"

## Путь к исполнимому файлу iptables.

## Может отличаться в зависимости

## от дистрибутива Linux

IPT="/usr/sbin/iptables"

Далее...

Правила брандмауэра.

     На рисунке показана предложенная топология с IP-адресами интерфейсов. Опишем словесно все пра­вила маршрутизации трафика, а потом реализуем их на IPTables:

  • Пакеты, выходящие за пределы локальной сети (то есть ад­ресованные интернет-узлам), должны проходить через интерфейс eth0. Кроме этого, нужно перезаписать адрес отправителя: поскольку используем внутренние адреса, то нужно заменить внутренний адрес отправителя адресом внешнего интерфейса.
  • Ответы на эти пакеты должны быть переданы на интерфейс eth1 (интерфейс внутренней сети), при этом адрес получателя должен быть корректно перезаписан. Так как ответ, полученный от интернет-узла, будет предназначен внешнему интерфейсу, то нуж­но вернуть ответ внутреннему узлу, указав его внутренний IP-адрес.
  • Пакеты из локальной сети, адресованные компьютерам нейтраль­ной зоны, должны быть переданы на интерфейс eth2. Для этих пакетов NAT не нужен, поскольку DMZ-компьютеры также используют внутренние адреса.
  • Пакеты из нейтральной зоны, адресованные компьютерам локаль­ной сети, должны быть переданы на интерфейс eth1. NAT также не нужен.
  • Пакеты DMZ-компьютеров, адресованные интернет-узлам, должны покинуть пределы сети через интерфейс eth0. В этом случае NAT нужен: нужно перезаписать адрес отправителя ад­ресом внешнего интерфейса.
  • Ответы на эти пакеты должны быть отправлены назад, при этом адрес получателя должен быть корректно перезаписан, так как пакет нужно отправить соответствующей машине нейтральной зоны.
  • Входящие запросы на ТСР-соединения (SYN-пакеты) по портам 80 и 443 должны быть переданы Web-серверу (из нейтральной зоны).
  • Входящие запросы на TCP/UDP-соединения по порту 53 должны быть переданы DNS-серверу (из нейтральной зоны).
  • Входящие запросы на ТСР-соединения по порту 25 должны быть переданы почтовому серверу (из нейтральной зоны).

Далее...

Цели правил IPTables.

Рубрика: Безопасность | Брандмауэр
Метки: | | |
Дата: 20/02/2009 09:30:23

Целью правил IPTables называется действие, которое выполняется над пакетом, если его заголовок соответствует совпадению правила. Обычно используются 15 стандар­тных целей. Также можно указать в качестве цели пользовательскую це­почку, которой передается управление. Если ни одно из правил в пользовательской цепочке не совпало, выполнение передается назад в вызывающую цепочку.

     Опция -j используется для задания цели. Стандартные цели пишутся прописными буквами.

Далее...

Расширения Iptables дают возможность установки дополнительных критериев отбора паке­тов. Их еще называют явными критериями отбора пакетов.

     Отличие между явными и неявными критериями заключается в том, что первые нужно подгружать явно, а вторые подгружаются автоматически.

     Чтобы использовать эти расширения, их нужно загрузить с помощью ключа -m или --match. После опции -m указывается имя расширения и параметры расширения.

     Например, если используется критерий state, то он явно указывается в строке правила: -m state перед используемым критерием.

Далее...

Следующие совпадения можно применять только к определенному протоколу: специальные совпадения TCP к TCP-пакетам, UDP к UDP-пакетам и ICMP к ICMP-пакетам соответственно. Из-за этого их выделили в отдельную группу компонент правил IPTables. Их так и называют - специальные совпадения протокола(TCP, UDP или ICMP).

     В документе Iptables Tutorial эти совпадения называют неявными критериями выделения пакета. Под этим там понимаются те критерии, которые явно не выражены и становятся доступны только после указания критерия, например -p tcp

     Эти критерии можно подгрузить и явным образом, указав ключа -m (-match), к примеру -m tcp.

     Рассмотрим эти специальные совпадения.

Далее...

В разных документах и руководствах по iptables используются разные обозначения для тех или иных описаний правил iptables.      Например, в IPTables Tutorial компоненты правил называют критерием выделения пакетов.

     Мы будем называть обозначение компонентов правил совпадением.

     Совпадением назовем пару, состоящую из объекта сравнения (то есть того, что сравнивается, в частности адрес отправителя) и его значения-образца (с этим значением будет сравниваться соответствующее объекту поле заголовка).

     Так как объект совпадения зависит от определенных полей заголовка, некоторые совпадения можно использовать только для пакетов определен­ных типов. Другие же совпадения можно использовать для всех IP-пакетов.

Далее...

SNAT.

     SNAT использует такой синтаксис:

# iptables -t nat -A POSTROUTING --out-interface <интерфейс> -j MASQUERADE

     Указываем таблицу (NAT), цепочку (в SNAT используется только це­почка POSTROUTING), исходящий интерфейс (внешний интерфейс) и цель - в этом случае MASQUERADE (маскарадинг). MASQUERADE полезен для соединений с динамическими или по­лудинамическими IP-адресами. Если хватает статических адресов, SNAT может быть реализован следующим образом:

# iptables -t nat -A POSTROUTING --out-interface <интерфейс> -j SNAT --to-source <адрес>

     В этом случае мы должны указать реальный адрес нашего внешнего интер­фейса.

Далее...