je ne peux pas me connecter au port 80 sur mon serveur web. mes iptables sont dans l'état par défaut:
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
quand je démarre différents serveurs (nginx, nodejs ...), je peux leur faire écouter le port 80, mais en essayant d'accéder, je reçois toujours "connexion refusée". L'écoute de n'importe quel autre port (81 8080, quel que soit) fonctionne parfaitement. Seul le port 80 est en quelque sorte bloqué. Accéder au port 80 via localhost fonctionne, donc à des fins de test, j’ai même basculé du pare-feu externe, toujours pas de chance. Que puis-je faire pour savoir qui bloque ce port 80?
comme demandé la sortie de netstat -tlpn (lors de l'exécution de nginx sur le port 80):
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
j'ai fait un tcptraceroute 87.106.64.11 80
et son définitivement mon serveur qui bloque le port. À un moment donné, j'ai eu ceci:
s18132051.onlinehome-server.info (87.106.64.11) [closed]
Donc i réinitialiser mes tables d'IP , et c'est ce qui s'est passé.
Donc soit là où une règle cachée dans la table, ou iptable -L
ne m'a pas donné toutes les règles. Je vais marquer ceci comme la réponse car cela résout le problème.
J'aimerais toujours savoir pourquoi je n'ai pas de règles de blocage lorsque je fais iptables -L
J'ai rencontré le même problème, mais sous Debian 8.4 (Jessie). Comme ci-dessus, la solution consistait en un script de vidage IPTables, comme indiqué à la section http://insanelabs.net/linux/linux-reset-iptables-firewall-rules/ . Bien qu'iptables n'ait signalé aucune règle, il devait y avoir des règles "cachées", ou sinon un bogue dans iptables lui-même. Je rapporte ce bogue aux responsables de Debian.
Au cas où le site lié disparaîtrait, voici le texte intégral du script en question, reproduit ici par souci de commodité.
#!/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
Vous n'avez pas énuméré toutes vos règles. J'ai trouvé un bon moyen d'obtenir des tables de netfilter actives:
pour bla dans Sudo /bin/cat /proc/net/ip_tables_names
; faire Sudo/sbin/iptables -t $ blah -L -vn --line-numbers | sed "s/^/$ blah: /"; fait | moins -RXF
Une autre option consiste à exécuter:
/ sbin/iptables-save
Si vous avez la patience, vous pouvez parcourir chaque règle une à la fois et modifier les cibles DENY en ACCEPTER pour voir laquelle corrige le problème.