Öffnen Sie Port 80 in CentOS 6.5

14

Ich versuche, den Port 80 in meinem CentOS 6.5 auf meiner virtuellen Maschine zu öffnen, damit ich über den Browser meines Desktops auf den Apache zugreifen kann.

Bildbeschreibung hier eingeben

Wenn Sie sich den Screenshot oben ansehen ... Ich habe die Zeile vor dem blauen Pfeil hinzugefügt, wie auf http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- geschrieben. 80 / Jetzt bekomme ich die Apache-Testseite, wenn ich die IP-Adresse in meinen Browser eingebe, aber immer noch, wenn ich die iptables neu starte, bekomme ich ein "FAILED", wenn CentOS versucht, die neue Regel anzuwenden.

Kennt jemand eine Lösung dafür? Oder muss ich den Fehler ignorieren?

Erik van de Ven
quelle

Antworten:

28

Anstatt die Regeln manuell einzugeben, können Sie iptablessie den entsprechenden Ketten hinzufügen und dann speichern. Auf diese Weise können Sie die Regeln live debuggen und bestätigen, dass sie korrekt sind, anstatt sie der Datei hinzufügen zu müssen, wie Sie es anscheinend tun.

So öffnen Sie Port 80:

$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save

Der letzte Befehl speichert die hinzugefügten Regeln. Dies ist die Regel, die ich verwenden würde, um den Port für den Webdatenverkehr zu öffnen.

Warum Ihre Regel Probleme verursacht

Wenn Sie die Regel bemerken, die Sie verwenden möchten:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Hat eine Kette namens "RH-Firewall-1-INPUT". Wenn Sie diese Kette oder ein Glied von der INPUTKette zu dieser Kette nicht haben, wird diese Regel niemals erreichbar sein. Diese Regel könnte wahrscheinlich so aussehen:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Oder Ihre INPUTKette sollte RH-Firewall-1-INPUTmit einer Regel wie der folgenden mit dieser Kette verknüpft sein :

$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
....

HINWEIS: Mit diesem Befehl können Sie sehen, über welche Ketten Sie verfügen:

$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

Möglicherweise müssen auch die Status geändert werden, damit auch vorhandene Verbindungen zulässig sind.

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Auch wenn Sie den -ASchalter verwenden, hängen Sie die Regel an die Kette an INPUT. Wenn andere Regeln davor sind, die das Erreichen dieser Regel blockieren und / oder stören, wird sie niemals ausgeführt. Vielleicht möchten Sie es nach oben verschieben, indem Sie Folgendes einfügen, anstatt es anzuhängen:

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Verwenden der GUI

Firewalls können komplizierte Biester sein. Vielleicht möchten Sie stattdessen die TUI ausprobieren (TUIs sind GUIs für das Terminal).

$ sudo system-config-firewall-tui

Sie können dann durch die verschiedenen Bildschirme gehen, um iptablesRegeln einzurichten .

            ss # 1

            ss # 2

Verweise

slm
quelle
Die letzte Regel löschte alle vorherigen Regeln in meiner iptables-Datei und fügte nur die oben genannte hinzu (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). Jetzt kann ich auch nicht mehr über meinen Browser auf die Apache-Seite zugreifen.
Erik van de Ven
1
@ErikVandeVen - Entschuldigung, das habe ich nicht klarer formuliert. Die anderen Regeln, die Sie hatten, müssten entweder auf die gleiche Weise hinzugefügt und gespeichert werden (zum gleichen Zeitpunkt), oder Sie können zu der Datei gehen /etc/sysconfig/iptablesund sie hinzufügen. Ihre ursprünglichen Einträge sollten sich in dieser Datei befinden /etc/sysconfig/iptables.save.
slm
Danke, ich konnte iptables wiederherstellen, indem ich die Datei iptables.save kopierte. Trotzdem konnte ich die Regel nicht hinzufügen, ohne einen Fehler zu erhalten und gleichzeitig die Apache-Testseite in meinem Browser zu öffnen. Ich werde einen Blick auf das Tutorial werfen, das Riclags zuerst gepostet hat :)
Erik van de Ven
1
Mann, ich habe total nicht verstanden, warum diese Antwort noch keine einzige wie erhalten hat. Ausgezeichnete ausführliche Antwort. Betrachten Sie meine wie tausend Dank.
Samiron
1
Diese Firewall-GUI ist ein Geschenk von Gott, das noch nie zuvor gesehen wurde!
Matt Fletcher
0

Aus dem gleichen Grund habe ich kürzlich CentOS 6.5 als virtuelle Maschine installiert, um es als virtuellen Webserver zu verwenden. Wie auch immer, ich habe diese sehr detaillierte Anleitung aus dem CentOS-Wiki befolgt . Dann habe ich gemäß der Antwort von @slm Port 80 hinzugefügt und mit gespeichert sudo /etc/init.d/iptables save.

iptables -L -v hat diese Ausgabe:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination
baktin
quelle
0

Wenn Sie Ihre Firewall-Einstellungen bearbeiten möchten, aber nicht mit diesen vertraut sind iptables, empfehlen wir Ihnen, das system-config-firewall-tuiTool zu verwenden , wenn Sie keinen X-Server haben. Verwenden Sie dazu system-config-firewalldas GUI-Tool.

ludiegu
quelle