Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Серверы Linux. Часть V. Межсетевой экран iptables

Оригинал: Iptables firewall
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 13 июля 2015 г.

Глава 8. Межсетевой экран iptables

8.4. Практическое задание: фильтрация сетевых пакетов

1. Убедитесь в том, что вы можете войти в вашу систему, исполняющую функции маршрутизатора, с помощью клиента ssh при активированном межсетевом экране iptables.

2. Убедитесь в том, что вы можете использовать утилиту ping для определения доступности вашей системы, выполняющей функции маршрутизатора, при активированном межсетевом экране iptables.

3. Выберите одну из ваших сетей и обозначьте ее как 'внутреннюю сеть', следовательно, другая сеть будет 'внешней сетью'. Настройте маршрутизатор таким образом, чтобы имелась возможность посещения веб-сайта (использующего протокол HTTP) во внешней сети из внутренней сети (но не наоборот).

4. Убедитесь в том, что имеется возможность использования клиента ssh для доступа к системам из внешней сети, при нахождении во внутренней сети, но не наоборот.

8.5. Корректная процедура выполнения практического задания: фильтрация сетевых пакетов

Возможное решение может быть представлено в виде следующего сценария, где сеть с именем leftnet является внутренней сетью, а сеть с именем rightnet - внешней сетью.

8.6. Преобразование сетевых адресов

8.6.1. О механизме преобразования сетевых адресов

Устройство с поддержкой механизма преобразования сетевых адресов является маршрутизатором, который помимо передачи сетевых пакетов изменяет исходные и/или целевые IP-адреса этих пакетов. Чаще всего данный механизм используется для соединения множества компьютеров, работающих в рамках частного диапазона IP-адресов, с сетью Интернет (публичной сетью). Механизм преобразования сетевых адресов позволяет скрыть частные IP-адреса от сервисов сети Интернет.

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

Таблица nat межсетевого экрана iptables содержит две новых цепочки. Цепочка PREROUTING позволяет модифицировать сетевые пакеты перед тем, как они достигнут цепочки INPUT. Цепочка POSTROUTING позволяет модифицировать сетевые пакеты после того, как они покинут цепочку OUTPUT.

О механизме преобразования сетевых адресов

Используйте команду iptables -t nat -nvL для ознакомления с содержимым таблицы nat межсетевого экрана. В примере ниже показана пустая таблица nat.

[root@RHEL5 ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@RHEL5 ~]#

8.6.2. Механизм замены сетевого адреса источника (SNAT)

Цель механизма замены сетевого адреса источника состоит в изменении исходного адреса сетевого пакета перед тем, как он покинет систему (т.е., попадет в сеть Интернет). Целевой сервис будет передавать сетевые пакеты на устройство, осуществляющее замену сетевого адреса источника. Исходя из этого, данное устройство должно хранить в памяти таблицу с информацией обо всех сетевых пакетах, которые были модифицированы, для того чтобы передать принятые пакеты на узел, для которого они в реальности предназначены (т.е., сервису из внутренней сети).

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

Ниже приведен пример правила, реализующего механизм замены сетевого адреса источника. В соответствии с данным правилом, для сетевых пакетов, передаваемых из сети 10.1.1.0/24 и передающихся далее по сетевому интерфейсу eth0 будет устанавливаться исходный IP-адрес 11.12.13.14. (Обратите внимание, что команда для генерации правила межсетевого экрана должна записываться в одной строке!)

iptables -t nat -A POSTROUTING -o eth1 -s 10.1.1.0/24 -j SNAT \
--to-source 11.12.13.14

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

8.6.3. Пример сценария для активации механизма замены сетевого адреса источника

Сценарий из следующего примера осуществляет стандартные манипуляции с таблицей nat межсетевого экрана. Благодаря данному сценарию клиенты из внутренней сети (доступной посредством сетевого интерфейса eth0) получают доступ посредством механизма замены сетевого адреса источника к веб-серверам (использующим порт 80) из внешней сети (доступной посредством сетевого интерфейса eth1).

#!/bin/bash
#
# Простой сценарий настройки межсетевого экрана iptables с задействованием классического
# механизма замены сетевых адресов с целью предоставления возможности веб-серфинга.
# Интерфейс eth0 связан с внутренней сетью, eth1- с сетью Интернет.
#
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o eth1 -s 10.1.1.0/24 -p tcp \
--dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -d 10.1.1.0/24 -p tcp \
--sport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 10.1.1.0/24 -j SNAT \
--to-source 11.12.13.14
echo 1 > /proc/sys/net/ipv4/ip_forward

8.6.4. Маскарадинг

Механизм маскарадинга очень похож на механизм замены сетевого адреса источника, но предназначен для динамических интерфейсов. Типичным примером таких интерфейсов являются сетевые интерфейсы широкополосных 'маршрутизаторов/модемов', соединенных с сетью Интернет и получающих информацию об IP-адресе от провайдера при каждом подключении.

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

iptables -t nat -A POSTROUTING -o eth1 -s 10.1.1.0/24 -j MASQUERADE

8.6.5. Механизм замены сетевого адреса назначения (DNAT)

Механизм замены сетевого адреса назначения обычно используется для разрешения перенаправления сетевых пакетов из сети Интернет на внутренний сервер (находящийся в демилитаризованной зоне вашей сети), а также серверы из частного диапазона адресов, которые недоступны непосредственно из сети Интернет.

Сценарий из следующего примера позволяет пользователям сети Интернет работать с вашим сервером из внутренней сети (с IP-адресом 192.168.1.99) по протоколу ssh (использующему порт 22).

#!/bin/bash
#
#  Простой сценарий настройки межсетевого экрана iptables с задействованием механизма
#  замены сетевого адреса назначения.
#  Интерфейс eth0 связан с внутренней сетью, eth1- с сетью Интернет.
#
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o eth1 -s 10.1.1.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 \
-j DNAT --to-destination 10.1.1.99
echo 1 > /proc/sys/net/ipv4/ip_forward

Предыдущий раздел: Оглавление Следующий раздел:
Глава 8. Межсетевой экран iptables   Глава 9. Вводная информация о сервере Samba