Учебное пособие по брандмауэру Linux: таблицы, цепочки, основы IPTables на пальцах

Брандмауэр iptables используется для управления фильтрацией пакетов и правилами NAT.

IPTables поставляется со всеми дистрибутивами Linux.

Понимание того, как установить и настроить iptables, поможет вам эффективно управлять брандмауэром Linux.

Инструмент iptables используется для управления правилами брандмауэра Linux.

На первый взгляд, iptables может показаться сложным (или даже запутанным).

Но, как только вы поймете основы работы iptables и его структуру, чтение и запись правил брандмауэра iptables станет простым делом.

Эта статья является частью продолжающейся серии руководств по iptables.

Это не первая статья в этой серии.

В этой статье объясняется, как структурируется iptables, и объясняются основы таблиц, цепочек и правил iptables.

На высоком уровне iptables может содержать несколько таблиц.

Таблицы могут содержать несколько цепочек.

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

Цепочки могут содержать несколько правил.

Правила определены для пакетов.

Итак, структура выглядит так:  iptables -> Tables -> Chains -> Rules.

Это определено на следующей диаграмме.

Просто для повторения, таблицы — это куча цепочек, а цепочки — куча правил брандмауэра.

I. IPTABLES Таблицы и Цепочки

IPTables имеет следующие 4 встроенные таблицы.

1. Таблица фильтров ( Filter )

Filter — это таблица по умолчанию iptables.

Таким образом, если вы не определите свою собственную таблицу, вы будете использовать таблицу Filter.

Таблица фильтров Iptables имеет следующие встроенные цепочки.

  • Цепочка INPUT — входящий  траффик в брандмауэр. Для пакетов, поступающих на локальный сервер.
  • Цепочка OUTPUT — исходящий траффик из брандмауэра. Для пакетов, генерируемых локально и выходящих из локального сервера.
  • Цепочка FORWARD — Пакеты для другого сетевого адаптера на локальном сервере. Для пакетов, маршрутизируемых через локальный сервер.

2. NAT таблица

Таблица NAT в Iptables имеет следующие встроенные цепочки.

  • PREROUTING  — изменяет пакеты перед маршрутизацией. Т.е. преобразование пакета происходит сразу после поступления пакета в систему (и до маршрутизации). Это помогает преобразовать IP-адрес назначения пакетов во что-то, что соответствует маршрутизации на локальном сервере. Она используется для DNAT (целевой NAT).
  • Цепочка POSTROUTING — Изменяет пакеты после маршрутизации. Т.е. перевод пакетов происходит, когда пакеты покидают систему. Это помогает преобразовать исходный IP-адрес пакетов во что-то, что может соответствовать маршрутизации на сервер назначения. Она используется для SNAT (источник NAT).
  • Цепочка OUTPUT — NAT для локально сгенерированных пакетов на брандмауэре.

3. Mangle таблица

Таблица Mangle Iptables предназначена для специализированного изменения пакетов.

Она изменяет биты QOS в заголовке TCP.

Mangle имеет следующие встроенные цепочки.

  • PREROUTING
  • OUTPUT
  • FORWARD
  • INPUT
  • POSTROUTING

3. Raw таблица

Таблица Iptables Raw предназначена для исключений конфигурации.

Raw таблица имеет следующие встроенные цепочки.

  • PREROUTING
  • OUTPUT

На следующей диаграмме показаны три важные таблицы в iptables.

II. IPTABLES ПРАВИЛА

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

  • Правила содержат критерии и целевые значения.
  • Если критерий соответствует, iptables переходит к правилам, указанным в цели (или), выполняет специальные значения, указанные в цели.
  • Если критерий не сопоставлен, iptables переходит к следующему правилу.

Целевые значения

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

ACCETP  Брандмауэр примет пакет.
DROP — брандмауэр сбросит пакет.
QUEUE — Брандмауэр передаст пакет в пространство пользователя.
RETURN — межсетевой экран прекратит выполнение следующего набора правил в текущей цепочке для этого пакета. Элемент управления будет возвращен в вызывающую цепочку.

Если вы выполняете iptables-list (или) service iptables status, вы увидите все доступные правила брандмауэра в вашей системе.

В следующем приемлемом примере показано, что в этой системе не определены правила брандмауэра.

Как вы видите, он отображает таблицу input  по умолчанию, с цепочкой input  по умолчанию, цепочкой прямой forward и цепочкой output.

# iptables -t filter --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Сделайте следующее, чтобы просмотреть таблицу mangle.

# iptables -t mangle --list

Для просмотра таблицы nat выполните следующие действия.

# iptables -t nat --list

Для просмотра  таблицы raw выполните следующие действия.

# iptables -t raw --list

Примечание. Если вы не укажете опцию -t, будет отображена таблица filter по умолчанию. Итак, обе следующие команды одинаковы.

# iptables -t filter --list
(или)
# iptables --list

В следующем примере показано, что существуют некоторые правила, определенные в цепочке input, forward и output таблицы фильтров.

# iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
3    ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0
5    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
8    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
10   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

В выводе данных команды iptables –list содержат следующие поля у правил:

  • num — номер правила в определенной цепочке
  • target — специальная переменная target, которую мы обсуждали выше
  • prot — протоколы. TCP, UDP, ICMP и т. д.,
  • opt — Специальные опции для этого конкретного правила.
  • source — IP-адрес источника пакета
  • destination — IP-адрес получателя пакета

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40