В чем разница между PREROUTING и FORWARD в iptables?

7

Я пытаюсь понять, как работает эта система, и у меня есть проблемы, чтобы понять разницу между использованием NAT PREROUTING или фильтром FORWARD. Из того, что я понимаю, PREROUTE может отправить пакет на другой сервер, избегая фильтра. Если NAT может справиться с этим через PREROUTE, какова цель использования правила FORWARD в фильтре?

    
задан Diazepaam 29.01.2015 в 12:06
источник

2 ответа

11

Таблица NAT :

  

Эта таблица должна использоваться только для NAT (трансляция сетевых адресов) для разных пакетов. Другими словами, его следует использовать только для перевода исходного поля или целевого поля пакета.

Таблица фильтров :

  

Таблица фильтров в основном используется для фильтрации пакетов. Мы можем сопоставлять пакеты и фильтровать их любым способом. Это место, в котором мы фактически принимаем меры против пакетов, и смотрим, что они содержат, и DROP или / ПРИНИМАЮ их, в зависимости от их содержимого. Конечно, мы можем также выполнить предварительную фильтрацию; однако эта конкретная таблица является местом, для которого была разработана фильтрация.

В Перемещение таблиц и цепочек мы видим, что цепочка FORWARD фильтра проходит только пересылаемые пакеты (пакеты, которые поступают из сети, и выходят в сеть), т. е. ваш компьютер работает как маршрутизатор, а цепочка PRETOUTING nat проходит как пересылаемыми пакетами, так и пакетами, назначение которых является локальным узлом.

Вы должны использовать PRETOTING nat только для изменения адреса назначения пакетов и форварда фильтра только для фильтрации (сброса / принятия пакетов).

  

Если мы получим пакет в первое решение маршрутизации, которое не предназначено для самой локальной машины, оно будет маршрутизироваться через цепочку FORWARD. Если пакет, с другой стороны, предназначен для IP-адреса, который прослушивает локальная машина, мы отправим пакет через цепочку INPUT и на локальный компьютер.      Пакеты могут быть предназначены для локальной машины, но адрес назначения может быть изменен в цепочке PREROUTING, выполняя NAT. Поскольку это происходит до первого решения о маршрутизации, пакет будет рассмотрен после этого изменения. Из-за этого маршрутизация может быть изменена до того, как будет принято решение о маршрутизации. Обратите внимание, что все пакеты будут проходить через один или другой путь на этом изображении. Если вы переадресовываете пакет обратно в ту же сеть, из которой он пришел, он все равно будет перемещаться по остальным цепям до тех пор, пока он не вернется в сеть.

    
ответ дан Eric Carvalho 29.01.2015 в 12:37
источник
3

PREROUTING . Эта цепочка используется для принятия любых связанных с маршрутизацией решений до ( PRE ) отправки любых пакетов. Всегда помните, что в таблице PREROUTING/POSTROUTING i.e. NAT значения ACCEPT/DROP/REJECT и т. Д. Таблицы FILTER по умолчанию не будут работать. Таблица NAT используется только для принятия решений о маршрутизации. Вы должны использовать PREROUTING при принятии любых решений о маршрутизации, то есть решениях, которые необходимо предпринять до того, как пакет начнет перемещаться по сети. Вот пример, мы перенаправляем любой трафик, который только что достиг сервера на порт 80, на порт 8080:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

FORWARD . Как следует из названия, цепочка FORWARD таблицы FILTER используется для пересылки пакетов из источника в пункт назначения, здесь источником и местом назначения являются два разных хоста. Итак, как вы можете себе представить, FORWARD правила в основном используются на серверах, где один хост отправляет / получает трафик с другого хоста через сервер. Когда пакет генерируется с сервера, цепочка OUTPUT , то есть трафик выходит из себя, тогда как INPUT - означает, что пакеты предназначены только для самого сервера. Вот пример цепи FORWARD , где любой TCP трафика, полученного на порт 80 на интерфейсе eth0 , предназначенном для хоста 192.168.0.4 , будет принят и перенаправлен на 192.168.0.4 :

iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.0.4 -j ACCEPT
    
ответ дан heemayl 29.01.2015 в 12:32
источник

Ознакомьтесь с другими вопросами по меткам