it-swarm.com.de

Port 80-Verbindung abgelehnt

ich kann keine Verbindung zu Port 80 auf meinem Webserver herstellen. Meine Iptables sind im Standardzustand:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

wenn ich verschiedene Server starte (nginx, nodejs ...), kann ich dafür sorgen, dass sie auf Port 80 lauschen, aber wenn ich versuche, darauf zuzugreifen, erhalte ich immer "Verbindung abgelehnt". Das Anhören eines anderen Ports (81.8080, was auch immer) funktioniert einwandfrei. Nur Port 80 ist irgendwie gesperrt. Der Zugriff auf Port 80 über localhost funktioniert, daher habe ich zu Testzwecken sogar die externe Firewall abgeschaltet, immer noch kein Glück. Was kann ich tun, um herauszufinden, wer diesen Port 80 blockiert?

wie gewünscht die Ausgabe von netstat -tlpn (wenn nginx auf Port 80 läuft):

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      710/vsftpd      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1179/sshd       
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1661/master     
tcp        0      0 0.0.0.0:5984            0.0.0.0:*               LISTEN      980/beam.smp    
tcp        0      0 87.106.64.11:3306       0.0.0.0:*               LISTEN      1346/mysqld     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3274/nginx: master 
tcp6       0      0 :::22                   :::*                    LISTEN      1179/sshd       
tcp6       0      0 :::25                   :::*                    LISTEN      1661/master  
4
Holger Will

ich habe einen tcptraceroute 87.106.64.11 80 und es ist definitiv mein Server, der den Port blockiert. Irgendwann in der Spur bekam ich das:

s18132051.onlinehome-server.info (87.106.64.11) [closed]

Also ich setze meine IP-Tabellen zurück , und das hat den Trick getan.

Entweder dort, wo eine versteckte Regel in der Tabelle ist, oder iptable -L hat mir nicht alle Regeln gegeben. Ich werde dies als Antwort markieren, da es das Problem behebt.
Ich würde immer noch gerne hören, warum ich bei der Ausführung von iptables -L keine Sperrregeln erhalten habe.

6
Holger Will

Ich hatte das gleiche Problem, aber unter Debian 8.4 (Jessie). Wie oben war die Lösung das IPTables-Flush-Skript, wie unter http://insanelabs.net/linux/linux-reset-iptables-firewall-rules/ aufgeführt. Obwohl iptables keine Regeln meldete, muss es einige "versteckte" Regeln oder auf andere Weise einen Fehler in iptables selbst gegeben haben. Ich melde diesen Fehler den Debian-Betreuern.

Für den Fall, dass die verlinkte Site ausfällt, finden Sie hier den vollständigen Text des betreffenden Skripts, der der Einfachheit halber hier wiedergegeben wird.

#!/bin/sh
echo "Flushing iptables rules..."
sleep 1
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
3
Jessica

Sie haben nicht alle Ihre Regeln aufgelistet. Ich habe einen guten Weg gefunden, um aktive Netzfiltertabellen zu erhalten:

für blah in Sudo /bin/cat /proc/net/ip_tables_names; do Sudo/sbin/iptables -t $ blah -L -vn --Zeilennummern | sed "s/^/$ blah: /"; erledigt | weniger -RXF

Eine andere Möglichkeit ist das Ausführen von:

/ sbin/iptables-save

Wenn Sie die Geduld haben, können Sie jede Regel einzeln durchgehen und alle DENY-Ziele in ACCEPT ändern, um zu sehen, welches das Problem behebt.

1
Lee