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

Невозможно установить связь через порт 443. Несмотря на то, что исходящий и входящий трафик разрешен через порт 443.

Я пытаюсь выяснить, что происходит с моей сетью, и, надеюсь, разобрался в этом вопросе.

Итак, моя система в настоящее время обменивается данными с https-сервером через TCP-порт 443. Поэтому я попросил свою сетевую команду закрыть весь входящий и исходящий трафик на всех других портах, кроме

  1. TCP IN и OUT на порт 443
  2. UDP-порт 80
  3. ICMP

Но как только я это сделаю. Теперь моя система вообще перестала общаться.

Я все еще могу выполнить пинг. Но мой простой запрос на завиток, как показано ниже. Не работает

curl -X GET "https://www.google.com"

Я получаю сообщение об ошибке

curl: (7) Failed to connect to www.google.com port 443: Connection refused

Я не понимаю, если моя сетевая группа открыла входящий и исходящий трафик на порт 443. Разве мои пакеты не должны просто проходить. Что мне здесь не хватает? Как мне отладить эту конкретную ситуацию.

Я выполнил эти две команды, чтобы разрешить все коммуникации через https:

iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

вот результат netstat

netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN
tcp        0      1 192.168.1.45:58272      13.32.81.90:443         SYN_SENT
tcp        0      0 :::5355                 :::*                    LISTEN
tcp        0      0 :::22                   :::*                    LISTEN
tcp        0    624 ::ffff:192.168.1.45:22  ::ffff:192.168.1.31:52468 ESTABLISHED

Интересно отметить, что я не вижу порта 443 в моем netstat? Я действительно не в своей тарелке. Любая помощь по этому поводу очень ценится. Прямо сейчас у меня нет четкого понимания того, что здесь происходит. Мой Ethernet - это ipv4 на DHCP с DNS, установленным на 8.8.8.8

Edit1: Итак, на основе предложений. Я добавил следующие правила

iptables -A OUTPUT -p udp -d 8.8.8.8 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p udp -s 8.8.8.8 --sport 53 -m state --state ESTABLISHED     -j ACCEPT
iptables -A OUTPUT -p tcp -d 8.8.8.8 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp -s 8.8.8.8 --sport 53 -m state --state ESTABLISHED     -j ACCEPT

iptables -A INPUT  -p tcp -m multiport --dports 21,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 21,80,443 -m state --state ESTABLISHED     -j ACCEPT


iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p tcp --sport 22 -m state --state ESTABLISHED     -j ACCEPT


iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT  -p icmp -m state --state ESTABLISHED,RELATED     -j ACCEPT


iptables -A OUTPUT -p udp --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT  -p udp --sport 123 -m state --state ESTABLISHED     -j ACCEPT

Но я все еще не могу выполнить свою команду curl

Ваши правила FW разрешают отвечать только на установленные входящие запросы на порт 443. Вам нужно другое правило, в котором вы разрешаете выходной трафик на порт DST 443 (вы также должны разрешить исходящий трафик DNS для разрешения имен)