V případě ještě nevyřešeno. Vaše iptables říkají:
state RELATED,ESTABLISHED
Což znamená, že propustí pouze již vytvořená spojení... která jste vytvořili vy, ne vzdálené stroje. Výjimky z tohoto pak můžete vidět v následujících pravidlech:
state NEW tcp dpt:ssh
Což platí pouze pro ssh, takže byste měli přidat podobné pravidlo/řádek pro http, což můžete udělat takto:
state NEW tcp dpt:80
Což můžete udělat takto:
sudo iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
(V tomto případě volím přidání nového pravidla do čtvrtého řádku)
Pamatujte, že po úpravě byste soubor měli uložit takto:
sudo /etc/init.d/iptables save
CentOS 7 nyní standardně používá firewall. Ale všechny odpovědi se zaměřují na iptables. Takže jsem chtěl přidat odpověď související s firewalld.
Vzhledem k tomu, že firewalld je „obal“ pro iptables, zdá se, že použití antonio-fornieho odpovědi stále funguje, ale nepodařilo se mi toto nové pravidlo „uložit“. Takže jsem se nemohl připojit k mému serveru Apache, jakmile došlo k restartu firewallu. Naštěstí je ve skutečnosti mnohem jednodušší provést ekvivalentní změnu pomocí příkazů brány firewall. Nejprve zkontrolujte, zda je spuštěn firewalld:
firewall-cmd --state
Pokud běží, odezva bude jednoduše jeden řádek, který říká "běží".
Dočasné povolení připojení http (port 80) ve veřejné zóně:
sudo firewall-cmd --zone=public --add-service=http
Výše uvedené nebudou „uloženy“, při příštím restartu služby firewallu se vrátí k výchozím pravidlům. Toto dočasné pravidlo byste měli použít k testování a ujistit se, že řeší váš problém s připojením, než budete pokračovat.
Trvalé povolení připojení http ve veřejné zóně:
sudo firewall-cmd --zone=public --permanent --add-service=http
Pokud provedete příkaz „permanent“, aniž byste provedli také příkaz „dočasný“, budete muset restartovat firewalld, abyste získali nová výchozí pravidla (u systémů bez CentOS se to může lišit):
sudo systemctl restart firewalld.service
Pokud to nevyřešilo vaše problémy s připojením, může to být způsobeno tím, že vaše rozhraní není ve „veřejné zóně“. Následující odkaz je skvělým zdrojem informací o firewallu. Podrobně popisuje, jak kontrolovat, přiřazovat a konfigurovat zóny:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7
SELinux ve výchozím nastavení brání Apache (a tedy všem modulům Apache) ve vzdáleném připojení.
# setsebool -P httpd_can_network_connect=1