Как я и подозревал, iptables -L
скрыть дополнительное совпадение, но iptables-сохранить
показал голую правду. Ваше правило №3 подходит только для вот
- петлевой интерфейс. Этот брандмауэр принимает подключения только к tcp/22 (SSH) извне.
Самое простое решение будет:
iptables -I ВВОД 4 -p tcp --dport 80 -j ПРИНЯТЬ
iptables -I ВВОД 5 -p TCP --dport 443 -j ПРИНЯТЬ
Можно дополнительно отфильтровать с помощью conntrack и объединить оба правила в одно с мультипортом:
iptables -I INPUT 4 -m conntrack --ctstate NEW -p tcp -m multiport --dports 80 443 -j ACCEPT -m comment --comment "Служба HTTP/HTTPS"
Обратите также внимание на комментарий, который я добавил. Используйте комментарии для каждый правило, и через день вы поблагодарите меня за этот совет, если ваш брандмауэр вырастет до более чем 50 правил.
Не используйте -м состояние
. Это устарело. Он действительно использует -м коннтрек
под капотом, и более прозрачно написать это так явно.
Не используйте iptables -L
. Как видите, его вывод выглядит "красивее", и на этом преимущества заканчиваются, но и не дает всех необходимых деталей. Результат iptables-сохранить
выглядит менее красиво, но показывает все мельчайшие детали, поэтому всегда используйте последнее.