Falls noch nicht gelöst. Ihre iptables sagen:
Zustand VERWANDT, ERRICHTET
Das bedeutet, dass nur bereits hergestellte Verbindungen durchgelassen werden ... die von Ihnen hergestellt wurden, nicht von entfernten Computern. Ausnahmen davon sehen Sie dann in den nächsten Regeln:
state NEW tcp dpt:ssh
Das gilt nur für ssh, also sollten Sie eine ähnliche Regel/Zeile für http hinzufügen, was Sie so machen können:
state NEW tcp dpt:80
Was Sie so tun können:
sudo iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
(In diesem Fall füge ich die neue Regel in der vierten Zeile hinzu)
Denken Sie daran, dass Sie die Datei nach dem Bearbeiten wie folgt speichern sollten:
sudo /etc/init.d/iptables save
CentOS 7 verwendet jetzt standardmäßig firewalld. Aber alle Antworten konzentrieren sich auf iptables. Also wollte ich eine Antwort in Bezug auf Firewalld hinzufügen.
Da firewalld ein "Wrapper" für iptables ist, scheint die Verwendung von antonio-fornies Antwort immer noch zu funktionieren, aber ich konnte diese neue Regel nicht "speichern". Ich konnte also keine Verbindung zu meinem Apache-Server herstellen, sobald ein Neustart der Firewall stattfand. Glücklicherweise ist es viel einfacher, eine entsprechende Änderung mit Firewalld-Befehlen vorzunehmen. Überprüfen Sie zuerst, ob Firewalld läuft:
firewall-cmd --state
Wenn es läuft, ist die Antwort einfach eine Zeile, die "running" sagt.
So lassen Sie vorübergehend HTTP-Verbindungen (Port 80) in der öffentlichen Zone zu:
sudo firewall-cmd --zone=public --add-service=http
Das Obige wird nicht "gespeichert", beim nächsten Neustart des Firewalld-Dienstes werden die Standardregeln wiederhergestellt. Sie sollten diese vorübergehende Regel zum Testen verwenden und sicherstellen, dass sie Ihr Verbindungsproblem löst, bevor Sie fortfahren.
So lassen Sie HTTP-Verbindungen in der öffentlichen Zone dauerhaft zu:
sudo firewall-cmd --zone=public --permanent --add-service=http
Wenn Sie den „permanenten“ Befehl ausführen, ohne auch den „temporären“ Befehl auszuführen, müssen Sie firewalld neu starten, um Ihre neuen Standardregeln zu erhalten (dies kann für Nicht-CentOS-Systeme anders sein):
sudo systemctl restart firewalld.service
Wenn dies Ihre Verbindungsprobleme nicht gelöst hat, liegt es möglicherweise daran, dass sich Ihre Schnittstelle nicht in der "öffentlichen Zone" befindet. Der folgende Link ist eine großartige Ressource, um mehr über Firewalld zu erfahren. Es wird detailliert beschrieben, wie Zonen überprüft, zugewiesen und konfiguriert werden:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7
SELinux verhindert standardmäßig, dass Apache (und damit alle Apache-Module) Remote-Verbindungen herstellen.
# setsebool -P httpd_can_network_connect=1