
- •Лабораторная работа «Межсетевой экран netfilter/iptables»
- •1 Описание
- •1.1 Порядок прохождения таблиц и цепочек
- •1.1.1 Таблица Mangle
- •1.1.2 Таблица Nat
- •1.1.3 Таблица Filter
- •1.2 Построение правил
- •1.2.1 Основы
- •1.2.2 Таблицы
- •1.2.3 Команды
- •1.3 Критерии
- •1.3.1 Общие критерии
- •1.3.2 Неявные критерии
- •1.3.3 Явные критерии
- •1.4 Действия и переходы
- •1.4.1 Понятие переходов
- •1.4.2 Действие accept
- •1.4.3 Действие drop
- •1.4.4 Действие queue
- •1.4.5 Действие return
- •1.4.6 Действие log
- •1.4.7 Действие mark
- •1.4.8 Действие reject
- •1.4.9 Действие tos
- •1.4.10 Действие mirror
- •1.4.11 Действие snat
- •1.4.12 Действие dnat
- •1.4.13 Действие masquerade
- •1.4.14 Действие redirect
- •1.4.15 Действие ttl
- •1.4.16 Действие ulog
- •2 Рабочее задание
- •2.1 Фильтрация по критерию «отправитель»
- •2.2 Фильтрация по критерию «протокол»
- •2.3 Фильтрация по критерию «порт назначения»
- •2.4 Фильтрация по критерию «входной интерфейс»
- •2.5 Маскировка машины путем блокирования icmp-пакетов
- •2.6 Журналирование пакетов
- •3 Форма отчета по лабораторной работе
- •1. Фильтрация по критерию «отправитель»
- •2. Фильтрация по критерию «протокол»
1.4.13 Действие masquerade
Маскарадинг (MASQUERADE) в основе своей представляет то же самое, что и SNAT только не имеет ключа --to-source. Причиной тому то, что маскарадинг может работать, например, с dialup подключением или DHCP, то есть в тех случаях, когда IP адрес присваивается устройству динамически.
Маскарадинг подразумевает получение IP адреса от заданного сетевого интерфейса, вместо прямого его указания, как это делается с помощью ключа --to-source в действии SNAT. Действие MASQUERADE имеет хорошее свойство - «забывать» соединения при остановке сетевого интерфейса. В случае же SNAT, в этой ситуации, в таблице трассировщика остаются данные о потерянных соединениях, и эти данные могут сохраняться до суток, поглощая ценную память. Эффект «забывчивости» связан с тем, что при остановке сетевого интерфейса с динамическим IP адресом, есть вероятность на следующем запуске получить другой IP адрес, но в этом случае любые соединения все равно будут потеряны, и было бы глупо хранить трассировочную информацию.
Действие MASQUERADE допускается указывать только в цепочке POSTROUTING таблицы nat, так же как и действие SNAT. MASQUERADE имеет ключ, описываемый ниже, использование которого необязательно.
Таблица 25 – Действие MASQUERADE
Ключ |
--to-ports |
Пример |
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000 |
Описание |
Ключ --to-ports используется для указания порта источника или диапазона портов исходящего пакета. Можно указать один порт, например: --to-ports 1025, или диапазон портов как здесь: --to-ports 1024-3000. этот ключ можно использовать только в правилах, где критерий содержит явное указание на протокол TCP или UDP с помощью ключа --protocol. |
1.4.14 Действие redirect
Выполняет перенаправление пакетов и потоков на другой порт той же самой машины. К примеру, можно пакеты, поступающие на HTTP порт перенаправить на порт HTTP proxy. Действие REDIRECT очень удобно для выполнения «прозрачного» проксирования (transparent proxying), когда машины в локальной сети даже не подозревают о существовании прокси.
REDIRECT может использоваться только в цепочках PREROUTING и OUTPUT таблицы nat. Для действия REDIRECT предусмотрен только один ключ.
Таблица 26 – Действие REDIRECT
Ключ |
--to-ports |
Пример |
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 |
Описание |
Ключ --to-ports определяет порт или диапазон портов назначения. Без указания ключа --to-ports, перенаправления не происходит, то есть пакет идет на тот порт, куда и был назначен. В примере, приведенном выше, --to-ports 8080 указан один порт назначения. Если нужно указать диапазон портов, то мы должны написать нечто подобное --to-ports 8080-8090. Этот ключ можно использовать только в правилах, где критерий содержит явное указание на протокол TCP или UDP с помощью ключа --protocol. |