Я только что установил apache на новую установку CentOS 6.5. Я ввел IP-адрес в адресную строку браузера, и он не смог подключиться. Затем я отключил iptables и обновился, и на этот раз я смог подключиться.
Итак, очевидно, что iptables блокирует трафик http (порт 80).
Итак, я посмотрел на правила iptables (не тронутые после новой установки Centos, помните):
[root@centos ~]# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Я не эксперт по iptables, но мне показалось, что я понял его достаточно хорошо, чтобы устранять неполадки в таких простых вещах, как эта. Но я запутался, потому что 3-я строка в цепочке INPUT такова:
ACCEPT all -- anywhere anywhere
Что, по-видимому, говорит «для любого протокола, из любого источника, в любое место назначения, принять»
Поэтому я ожидал, что смогу подключиться к веб-сайту (tcp, порт 80). Но я не могу. Так что я, должно быть, что-то неправильно понял о том, как работает iptables, или о значении листинга.
Кто-нибудь может объяснить, почему приведенные выше правила не разрешают входящие http-соединения?