1 votes

iptables bloque l'accès au SMTP sur le port 25

J'ai installé iptables sur mon serveur, qui bloque l'accès à tous les ports sauf ceux que j'autorise. L'un de ces ports doit être SMTP sur le port 25, et j'ai mis en place la règle suivante pour cela :

-A INPUT -p tcp --dport 25 -j ACCEPT

La sortie de iptables -L est ci-dessous :

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssmtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     icmp --  anywhere             anywhere
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Cependant, lorsque j'essaie de faire telnet <myip> 25 à partir d'une console Windows, je reçois cette erreur en retour :

Connecting To <my ip>...Could not open connection to the host, on port 25:
Connect failed

Faire la même chose sur d'autres ports ouverts (80, 993 etc.) fonctionne bien. Il doit donc s'agir d'un problème lié à iptables.

Quelle est la bonne façon d'autoriser l'accès au SMTP sur le port 25 en utilisant iptables ?

1 votes

Avez-vous vérifié si un service écoute sur ce port ? ( netstat -an | grep LISTEN o ss -n | grep :25 )

0 votes

Ah mince, on dirait que le SMTP n'est pas en train de fonctionner haha. J'ai suivi un guide pour configurer un serveur de messagerie ( library.linode.com/email/postfix/ ) et j'ai simplement supposé que Dovecot exécuterait SMTP.

0 votes

Si vous ajoutez le -v option pour iptables -L vous obtiendrez également le décompte du nombre de fois où chaque règle a été frappée. Cela permet de déboguer les règles iptables beaucoup plus facile.

2voto

Falcon Momot Points 24815

Étant donné que vos règles d'entrée commencent par une règle universelle d'acceptation, aucune de vos autres règles n'aura d'effet (car iptables fonctionne sur la base d'une règle de première disposition : la première règle de la chaîne à disposer du paquet d'une manière ou d'une autre sera la dernière règle traitée, et l'option ACCEPT la cible est disposée). Votre deuxième règle est également discutable (bloquer tout le trafic localhost), mais seulement parce qu'il n'y a généralement aucune raison crédible de le faire. Il est également inhabituel d'accepter spécifiquement uniquement les paquets nouveaux, liés ou établis sur le port SSH.

Tout cela dit, vos règles acceptent correctement le trafic SMTP, donc le problème est bien que vous n'exécutiez pas le SMTP. Dovecot n'est pas un serveur SMTP ; envisagez d'utiliser l'un des nombreux démons SMTP tels que postfix.

Le cas échéant, pour votre règle 127.0.0.0/8, spécifiez l'interface d'entrée sur laquelle vous vous attendez à recevoir des paquets spoofed localhost, si cela vous inquiète.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X