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

Iptables: разница между состоянием RELATED и ESTABLISHED?

Я пробовал читать много статей в Интернете, но ни одна из них не совсем понятна. Я также знаю, что аналогичный вопрос был размещен здесь раньше, но ни один из них не объясняет мою ситуацию. Раньше я тратил на это 2-3 часа.

Руководство говорит:

НОВОЕ - означает, что пакет начал новое соединение или иным образом связан с соединением, которое не встречало пакетов в обоих направлениях, и

ESTABLISHED - означает, что пакет связан с соединением, которое принимает пакеты в обоих направлениях,

СВЯЗАННЫЙ - означает, что пакет начинает новое соединение, но связан с существующим соединением, например с передачей данных FTP или ошибкой ICMP.

Мои iptables на сервере выглядят так:

iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

# Flush old rules
    iptables -F

# Loopback
    iptables -I INPUT 1 -i lo -j ACCEPT

# Allow responses from OUTPUT connection
    iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

# Apache
    iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

Всякий раз, когда я пытаюсь curl --verbose https://server_ip/ с моего ПК он работает отлично. Но когда я пробовал это изнутри сервера после подключения к нему SSH, он всегда застревал на CLIENT HELLO. Почему это происходит? Примечание: curl --verbose http://server_ip/(без SSL) отлично работал как с локальным ПК, так и с сервера.

После того, как я казнил iptables -A INPUT -m state --state RELATED -j ACCEPT, он тоже начал работать изнутри сервера. Опять же, почему он начал работать?

Руководство говорит RELATED -- meaning that the packet is starting a new connection. Это угроза безопасности? Может ли клиент открыть соединение с другим портом, используя это? Когда это пригодится?

RELATED полезен для таких протоколов, которым необходимо открывать новое соединение. Часто используется в сочетании с ip_conntrack_ftp для ftp-соединений взгляните Вот от того, как работает активный ftp.