Назад | Перейти на главную страницу

Вопрос для начинающих IPTables

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

$ UNIVERSE определяется как 0.0.0.0/0. Каковы варианты использования следующего правила?

# Allow any related traffic coming back to the MASQ server in.
-A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m conntrack --ctstate 
   ESTABLISHED,RELATED -j ACCEPT

Какие типы связанных соединений может иметь HTTP (S)? Мне действительно нужно указывать здесь RELATED?

# External interface, HTTP/HTTPS traffic allowed
-A INPUT -i $EXTIF -m conntrack --ctstate NEW,ESTABLISHED,RELATED -p tcp -s 
   $UNIVERSE -d $EXTIP --dport 80 -j ACCEPT
-A INPUT -i $EXTIF -m conntrack --ctstate NEW,ESTABLISHED,RELATED -p tcp -s 
   $UNIVERSE -d $EXTIP --dport 443 -j ACCEPT

Зачем мне нужно следующее? Что такое варианты использования?

# Accept solicited tcp packets
-A FORWARD -i $EXTIF -o $INTIF -m conntrack --ctstate 
      ESTABLISHED,RELATED  -j ACCEPT

Кроме того, когда я это сделаю lsmod я могу видеть nf_conntrack и nf_conntrack_ftp. Мне все еще нужно использовать -m conntrack или -m nf_conntrack?

ОБНОВЛЕНИЕ: полный сценарий Вот Мне нужно изменить политику по умолчанию на DROP.

-A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Это правило позволяет пакетам входить на внешний IP-адрес и предназначаться для самого брандмауэра (не проходящего NAT) из любого места, пока состояние УСТАНОВЛЕНО (т. Е. Ответ на исходящий пакет) или СВЯЗАНО (например, сообщение об ошибке ICMP относительно исходный исходящий пакет, например «назначение недоступно»)

-A INPUT -i $EXTIF -m conntrack --ctstate NEW,ESTABLISHED,RELATED -p tcp -s $UNIVERSE -d $EXTIP --dport 80 -j ACCEPT
-A INPUT -i $EXTIF -m conntrack --ctstate NEW,ESTABLISHED,RELATED -p tcp -s $UNIVERSE -d $EXTIP --dport 443 -j ACCEPT

NEW, ESTABLISHED и RELATED практически покрывают 99% возможных пакетов на порты 80 и 443. Как и ранее, RELATED в основном используется для сопоставления сообщений об ошибках ICMP.

-A FORWARD -i $EXTIF -o $INTIF -m conntrack --ctstate ESTABLISHED,RELATED  -j ACCEPT

В INPUT Правило выше соответствует пакету, предназначенному самому ящику брандмауэра. В FORWARD Правило разрешает пакеты, которые предназначены не для самого брандмауэра, а для хоста во внутренней сети. Значения ESTABLISHED и RELATED такие же, как и раньше.

Кроме того, когда я выполняю lsmod, я вижу nf_conntrack и nf_conntrack_ftp. Мне все еще нужно использовать -m conntrack или -m nf_conntrack?

Да. В nf_conntrack и nf_conntrack_ftp модули предпосылки для -m conntrack работать. Он будет загружен автоматически iptables первый раз -m conntrack встречается.

Нет такой вещи, как -m nf_conntrack.

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

Возможно, вам понадобится состояние RELATED в HTTP / HTTPS для пакетов в TIME_WAIT, но я не уверен в этом.

Что касается вашего третьего вопроса, правило FORWARD - это пересылка пакетов на внутренний интерфейс (опять же, предполагаемый), вероятно, для туннельного интерфейса, другого хоста или аналогичного.

Из того, что я прочитал, conntrack устарел и теперь заменен nf_conntrack по неизвестным мне причинам.