Брандмауэры и специальное программное обеспечение 8 Часть 4

Вид материалаРеферат

Содержание


Перенаправление портов
Подобный материал:
1   ...   67   68   69   70   71   72   73   74   ...   101

Перенаправление портов


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

Подход, предусматривающий перемещение служб внутрь вашей доверенной сети, обладает как преимуществами, так и недостатками. Недостаток заключается в том, что если злоумышленник найдет способ взломать внутреннюю систему, в отношении которой осуществляется перенаправление портов, значит, он сможет получить доступ к вашей внутренней сети. Однако осуществить атаку через брандмауэр несколько сложнее, чем взломать узел, расположенный в зоне DMZ. Преимуществ у этого подхода много. Во-первых, вы обеспечиваете более высокий уровень защиты, так как взломщик вынужден работать через перенаправленные порты. Если разные порты брандмауэра перенаправляются на разные внутренние сетевые узлы, взломщик не будет об этом знать и не сможет использовать один порт для получения доступа через другой порт (если, конечно, эти два порта перенаправляются на разные компьютеры). Если ваш интернет-провайдер обеспечивает вас только одним постоянным IP-адресом вместо того, чтобы выделить вам блок адресов, перенаправление портов позволяет вам использовать для обслуживания внешних пользователей Интернета несколько внутренних систем вместо того, чтобы запускать интернет-службы прямо на брандмауэре (что является очень плохой идеей).

В комплекте OpenLinux перенаправление портов также выполняется очень просто, однако, к сожалению, пакет Caldera, прилагаемый к данной книге, не включает в себя средств, необходимых для того, чтобы организовать с его помощью перенаправление портов. Для этой цели вам потребуется найти и установить пакет ipmasqadm. Как только вы установите этот пакет, вы убедитесь, что перенаправление портов организуется не сложнее, чем маскировка IP.


ПРИМЕЧАНИЕ

На компакт-диске, прилагаемом к данной книге, содержится каталог col/security/, в котором содержится RPM-пакет ipmasqadm.

Чтобы использовать перенаправление портов, вы не обязаны использовать маскировку — однако в этом случае адрес, на который вы перенаправляете, должен быть корректным IP-адресом Интернета, а ваш шлюз должен работать как маршрутизатор, то есть он не должен выполнять маскировку IP.

Вы должны убедиться в том, что модуль ip_masq_portfw загружен либо в процессе начальной загрузки системы (имя модуля указано в файле /etc/modules/ default) или вручную, при помощи modprobe. Имейте в виду, что этот модуль не загружается автоматически только потому, что вы обращаетесь к ipmasqadm.

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


СОВЕТ

Ели вы загрузили все необходимые модули, однако ваш брандмауэр все равно не перенаправляет пакеты, чаще всего это происходит потому, что файл /proc/sys/net/ipv4/ip_forward по-прежнему содержит 0, запрещая тем самым перенаправление. Содержимое этого файла всегда следует проверять в первую очередь.


Листинг 18.4. Примеры правил перенаправления портов

ipchains -P forward -j ACCEPT

ipchains -A forward -b -s 0/0 -d 192.168.0.0/24 -j MASQ

ipmasqadm portfw -a -P tcp -L 123.45.67.89 80 -R 192.168.0.2 80

ipmasqadm portfw -a -P udp -L 123.45.67.89 53 -R 192.168.0.3 53

ipmasqadm portfw -a -P tcp -L 123.45.67.89 53 -F 192.168.0.3 53

echo 1 > /proc/sys/net/ipv4/ip_forward


Первая строка листинга 18.4 устанавливает правило по умолчанию для цепочки forward равным ACCEPT (принять). Вторая строка обеспечивает маскировку IP (маскировка необходима, так как мы используем частные IP-адреса, в противном случае использовать это правило не нужно). Если вам не нужно второе правило, так как во внутренней сети вы используете «живые» маршрутизируемые IP-адреса Интернета, значит, вам необходимо первое правило (forward ACCEPT). При желании вы можете использовать политику DENY (запретить), однако в этом случае вам потребуются правила, в соответствии с которыми будут приниматься (ACCEPT) все пакеты через порты, которые вы перенаправляете.

В следующих трех строках определяются правила ipmasqadm. Обратите внимание на две команды, которые перенаправляют пакеты для службы DNS. Можно видеть, что в листинге присутствуют две отдельные строки: для TCP и для UDP. Протокол DNS использует как UDP, так и TCP, поэтому, составляя правила ipmasqadm, необходимо упомянуть все используемые протоколы. Если вы не обладаете возможностью обмена данными с Интернетом (и поэтому не можете обеспечить разрешение доменных имен в процессе начальной загрузки), то в качестве последнего аргумента вы можете добавить ключ -п, который указывает на то, что следует использовать IP-адреса в численном виде. Наконец, следует включить перенаправление IP в ядре.

Команда ipmasqadm обладает пятью параметрами и шестью возможными аргументами. К параметрам этой команды относятся: a (add — добавить), d (delete -удалить), f (flush — очистить), l (list — вывести список правил), n (numeric — ввод в виде чисел). Параметр f не требует аргументов. Параметр l может принимать в качестве аргумента только -п. Ключ -п может использоваться с любыми дурги-ми параметрами, за исключением -f.

Указав параметры -а или -Ь следует указать за ними протокол в форме -Р <про-токол>, затем -L и локальный IP-адрес и порт, куда будет приниматься трафик, а затем -R и удаленный IP-адрес и порт, куда этот трафик будет перенаправлен. Если вы хотите добавить несколько разных серверов (например, для того чтобы обеспечить распределение нагрузки), вы можете указать несколько правил, например для того, чтобы принимать трафик через порт 80 и перенаправлять его нескольким разным серверам. Следует использовать формат -р # (то есть строчная буква р, за которой следует число). Таким образом обеспечивается примитивная форма управления нагрузкой: # — это количество соединений, после достижения которого будет использовано следующее правило перенаправления для указанного локального IP-адреса и порта.