Centos iptables open port 53

8

J'ai des problèmes pour ouvrir le port 53 sur ma machine Centos, pour la configuration DNS.

Voici ma config iptables

-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

Lorsque j'ai exécuté une analyse nmap de la machine, seul le port 80 s'est révélé ouvert. Suis-je en train de manquer quelque chose?

ÉDITER:

Plein iptable

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -p udp -m state --state NEW,ESTABLISHED -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT -reject-with icmp-host-prohibited
-A FORWARD -j REJECT -reject-with icmp-host-prohibited
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
COMMIT 
user1817081
la source
Quelle était la nmapligne de commande que vous avez utilisée?
Hauke ​​Laging
nmap 192.168.1.2
user1817081
1
peut-être avez-vous déjà fait un DROP. -A ajouter ces règles à la fin des chaînes.
Laurentiu Roescu
Un iptables --listserait pratique à voir. Vous voudrez également désactiver le pare-feu dans system-config-firewall-tui(ou dans votre interface graphique), afin de pouvoir le définir manuellement avec les commandes iptables, sinon, il réécrira vos iptables si vous l'utilisez. Astuce bonus, en centos (au moins), vous pouvez faire une service iptables savefois que vous avez terminé, de sorte que les modifications restent valables pour le prochain redémarrage.
dougBTV
2
Vous autorisez uniquement UDP mais nmap ne teste pas les ports UDP par défaut. Vous en avez besoin:nmap -sU -p 53 $host
Hauke ​​Laging

Réponses:

12

Votre sémantique est inversée.

Les règles que vous avez publiées autorisent les connexions DNS sortantes à un serveur DNS distant, et non les connexions entrantes à un serveur DNS local.

Pour autoriser les connexions à votre serveur DNS local, inversez les règles INPUT et OUTPUT:

-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT

(Et veuillez prendre quelques minutes à un moment donné pour réviser votre pare-feu pour qu'il soit avec état.)

Michael Hampton
la source
2
Vous pouvez également souhaiter éventuellement autoriser les connexions TCP si vous effectuez AFXR ou d'autres transferts DNS.
jeffatrackaid
Ne bloquez pas les requêtes TCP sur le serveur DNS. Certaines réponses, comme www.google.com, ne rentrent pas dans le paquet UDP et doivent être répétées par TCP. TCP n'est pas seulement pour les transferts DNS - il est requis pour les requêtes normales.
Tometzky
3

Utilisez -Iau lieu de -A.

Comme vous avez un serveur DNS qui écoute alors il écoutera sur le port 53 donc la règle d'entrée doit être

-I INPUT -p udp -m udp --dport 53 -j ACCEPT
Iain
la source
0

Êtes-vous sûr que le serveur DNS fonctionne activement? Même si le port est ouvert, le service doit être actif. Vous pouvez vérifier ce qui écoute localement en exécutant une commande netstat. De plus, avez-vous essayé de désactiver complètement le pare-feu momentanément juste pour voir ce qui apparaît?

Eric
la source
Oui, je suis sûr que le DNS fonctionne. Si j'ai éteint les iptables et exécuté nmap sur mon autre machine, le port est affiché comme ouvert.
user1817081
Pouvez-vous publier votre configuration complète d'iptables?
Eric
post update voir ci
user1817081