Problème iptables bloque connection

Tags: #<Tag:0x00007f509c95bcf0>

Bonjour, Je travail aujourd’hui sur un serveur de test afin de déployer un FTP qui ce situera dans une DMZ (port 1085 passif 64000 - 65000)
ainsi qu’un serveur web (interne a l’entreprise)
Mais lorsque j’exécute mon script iptables (je ne suis pas encore très a l’aise avec) je n’arrive plus a me connecter en SSH / HTTP, pourtant mes regles ont l’air bonne.

Mon interface eth0 ce situe dans ma DMZ et mon interface eth3 dans mon LAN.

voila mon script :blush:

#Supprime les ancienne regles
iptables -F
iptables -X

#Policy ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#INPUT
#Input ICMP OK
iptables -A INPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Input FTP OK
iptables -A INPUT -i eth0 -p tcp -m state --state NEW,ESTABLISHED,RELATED --dport 1085 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m state --state NEW,ESTABLISHED,RELATED --dport 64000:65000 -j ACCEPT

#Input SSH OK
iptables -A INPUT -i eth3 -p tcp -m state --state NEW,ESTABLISHED --dport 63999 -j ACCEPT

#Input HTTP/S et APT OK
iptables -A INPUT -i eth3 -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT
iptables -A INPUT -i eth3 -p tcp -m state --state NEW,ESTABLISHED --dport 443 -j ACCEPT

#Input DNS OK
iptables -A INPUT -i eth3 -p tcp -m state --state ESTABLISHED --dport 53 -j ACCEPT
iptables -A INPUT -i eth3 -p udp -m state --state ESTABLISHED --dport 53 -j ACCEPT

#Input SNTP OK
iptables -A INPUT -i eth3 -p udp -m state --state ESTABLISHED --dport 123 -j ACCEPT

#Input Loopback OK
iptables -A INPUT -i lo -j ACCEPT

#OUTPUT
#Output ICMP OK
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT

#Output FTP OK
iptables -A OUTPUT -o eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 1085 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 64000:65000 -j ACCEPT

#Output SSH OK
iptables -A OUTPUT -o eth3 -p tcp -m state --state ESTABLISHED --sport 63999 -j ACCEPT

#Output HTTP/S et APT OK
iptables -A OUTPUT -o eth3 -p tcp -m state --state ESTABLISHED --sport 80 -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp -m state --state ESTABLISHED --sport 443 -j ACCEPT

#Output DNS OK
iptables -A OUTPUT -o eth3 -p tcp -m state --state NEW,ESTABLISHED --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth3 -p udp -m state --state NEW,ESTABLISHED --sport 53 -j ACCEPT

#Output SNTP OK
iptables -A OUTPUT -o eth3 -p udp -m state --state NEW,ESTABLISHED --sport 123 -j ACCEPT

#Output Loopback OK
iptables -A OUTPUT -o lo -j ACCEPT

#Reject tout le reste
iptables -A INPUT -j REJECT
iptables -A OUTPUT -j REJECT
iptables -A FORWARD -j REJECT

Salut !
Question con, comment on accède à ta DMZ si tu rejettes tout FORWARD ?
Le script iptables que tu nous donnes, il est sur le routeur entre le réseau DMZ et LAN, c’est ça ?

Bonjour, merci de la réactivité,
Ce serveur n’est pas le routeur, c’est un futur serveur FTP qui servira à la sauvegarde des postes nomades / autres sites, il est donc derrière le routeur / pare feu… et il à 2 adresses, une dans la DMZ et une dans le LAN serveur.

Mon problème est que, même en me mettant dans mon LAN serveur, une fois mon script iptables lancé, je perd toutes connexion.

C’est donc pour cela que je n’ai pas besoin de FORWARD, car il ne nat/route pas, il est juste présent dans 2 réseaux physique distinct.

Je suis toujours bloqué sur ce problème, j’ai commencer mes premiers tests sans le pare-feu et tout est OK. Il ne me manque plus que ça.

Alors, on faisait ça au boulot, ça pose problème au niveau des routes parce que le serveur va voir l’IP de la requête et va y répondre en utilisant la route la plus courte. Explications :

Chemin aller :
client → routeur → serveur

Chemin retour :
serveur → client

Comme les paquets ne passent pas par le routeur au retour, tu vas te retrouver bloqué parce que le routeur ne pourra pas suivre les connexions.

De plus, pour limiter la surface d’exposition de ton serveur et la complexité de la configuration, je te conseille de virer l’interface de ton serveur sur le LAN, virer la configuration de pare-feu, puis de configurer ton routeur pour que ce soit lui qui gère le filtrage du traffic.

J’ai pourtant tester aujourd’hui dans des conditions propice au tests et j’ai eu aucun problème sans mes règles iptables.
Uniquement lorsque j’applique mes regles iptables a partir de ce moment la c’est le cafouillage extreme. Mes regles fonctionne pas du tout, mes paquets ne passe pas, on m’a conseiller de faire une regles de log juste avant mes reject afin de pouvoir voir ce qui passe et ne passe pas, cependant je n’ai pas le temps aujourd’hui je le ferait surement semaine prochaine :slight_smile:
(Mon serveur doit entrer en production d’ici mi-janvier)

Je précise que je suis étudiant en bac+2 et que j’apprend principalement par autodidaxie donc je m’excuse d’avance pour mon manque de connaissance avec iptables mais ce n’est même pas au programmes des BTS… ^^

Je fais un schema pour que vous puissiez visualiser mon infrastructure de manière précise :

Si jamais uniquement mon routeur gère la couche de pare-feu je ne perd aucune protection ? Je ne suis pas plus exposé ?

Merci

Ah, oui, je ne voyais pas du tout ton réseau comme ça, il me semblait que ton client de sauvegarde était sur le LAN.
En effet, ça ne change rien pour ton problème.