Iptable redirection vers serveur FTP

Bonjour à tous,

Voici ma configuration

Internet (ip xxxxxxxx)<==> neufbox<==>192.168.1.1<==>192.168.1.2 FIREWAL (iptable,proxy analyseur de contenu)172.16.0.254

Je cela fonctionne bien, sauf que je voudrait exceptionnelement mettre en place un acces vers notre ftp local.

Ma neuf box j’ai rediriger les port 20 21 vers 192.168.1.2

Et voici mon iptable:

#!/bin/bash
#script de configuration iptables
#16-05-2009



wan="eth1"
lan="eth0"
serveur1="172.16.0.19"
serveur2="172.16.0.252"
intranet="172.16.0.31"
pcadmin1="172.16.0.91"
pcadmin2=$(/usr/bin/host pan-por03.panidor.org | cut -d" " -f4)
as400="172.16.0.2"
# Refuse les rénses aux broadcasts.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Log les paquets spoofé le routage des paquets source et la redirection des paquets.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise àero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X 

iptables -A POSTROUTING -t nat -o $wan -j MASQUERADE
######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################
iptables -A FORWARD -i $wan -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $lan -o $wan -m state --state ESTABLISHED,RELATED -j ACCEPT

######################## PARTIE SERVEUR #######################
#### Autorise protocole UDP pour le dns, Serveur 1 et 2 #######
iptables -A FORWARD -p udp --dport 53 -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -i $lan -o $wan -s $serveur2 -m state --state NEW -j ACCEPT
#### Autorise protocole TCP pour serveur 1 (pop3,smtp,dns)et 2(dns) ####
iptables -A FORWARD -p tcp --dport 53 -i $lan -o $wan -s $serveur2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 110,25,53 -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
#### Autorise LAN àaire de l'https ####
iptables -A FORWARD -p tcp --dport 443 -i $lan -o $wan -m state --state NEW -j ACCEPT
iptables -A FORWARD -p ICMP -i $lan -o $wan -m state --state NEW -j ACCEPT
## Autorisation des pcadmin 1 et 2 en tcp udp 47 (gre)
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $pcadmin2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $pcadmin2 -m state --state NEW -j ACCEPT

####Autorisation RH vers serveur hardis

iptables -A FORWARD -p tcp -m multiport --dport 910,7300,23 -i $lan -o $wan -d 194.3.108.246 -m state --state NEW -j ACCEPT



iptables -t nat -A PREROUTING -d 192.168.1.2  -p tcp --dport ftp -j DNAT --to-destination 172.16.0.2:21
# On fait suivre les demandes FTP.
iptables -A FORWARD -i $wan  -d 172.16.0.2 -p tcp --dport ftp -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 172.16.0.2 -o $wan -p tcp --sport ftp -m state --state RELATED,ESTABLISHED -j ACCEPT

############################################################################################################

iptables -A FORWARD -p tcp  -i $lan -o $wan -s $intranet -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $intranet -m state --state NEW -j ACCEPT

iptables -A FORWARD  -p 47  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT


#iptables -A FORWARD -p tcp  -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -p udp  -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT


############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT
############iptables -A OUTPUT -p tcp --sport 80 -o $lan -m state --state NEW -j ACCEPT



#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $wan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $wan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger DNS LAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $wan -p tcp --dport 80 -m state --state NEW -j ACCEPT

##############PING ################
iptables -A OUTPUT -o $wan -p icmp -j ACCEPT
###############################################################
######################    FTP    ##############################
###############################################################
#################### Active Module ############################
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
####################### FW => WAN ############################
iptables -A OUTPUT -o $wan -p tcp --dport 21 -m state --state NEW -j ACCEPT
################## ftp du LAN vers WAN #######################
iptables -A FORWARD -p tcp -i $lan --sport 1024:65535 --dport 21 -o $wan -m state --state NEW -j ACCEPT




J’ai rajouté cette regle mais cela ne fonctionne pas:

iptables -t nat -A PREROUTING -d 192.168.1.2  -p tcp --dport ftp -j DNAT --to-destination 172.16.0.2:21
# On fait suivre les demandes FTP.
iptables -A FORWARD -i $wan  -d 172.16.0.2 -p tcp --dport ftp -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -s 172.16.0.2 -o $wan -p tcp --sport ftp -m state --state RELATED,ESTABLISHED -j ACCEPT

Quelle erreur est-je commis?

Merci

guigui69

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

Ça, c’est bon.
En fait ces noms sont maintenant des alias, les modules de suivi de connexion et NAT étant désormais nommés nf_conntrack_* et nf_nat_*.

iptables -t nat -A PREROUTING -d 192.168.1.2 -p tcp --dport ftp -j DNAT --to-destination 172.16.0.2:21

Ça, c’est bon.
:21 est inutile puisque le port ne change pas.

iptables -A FORWARD -i $wan -d 172.16.0.2 -p tcp --dport ftp -m state --state ! INVALID -j ACCEPT

Ça, s’est bon.
"–state NEW" aurait été suffisant, l’état ESTABLISHED étant déjà pris en charge précédemment par une règle générale.

iptables -A FORWARD -s 172.16.0.2 -o $wan -p tcp --sport ftp -m state --state RELATED,ESTABLISHED -j ACCEPT

Règle redondante puisque les états ESTABLISHED et RELATED sont déjà pris en charge précédemment par une règle générale.

Rediriger le port 20 sur la box ne sert normalement à rien.
Qu’est-ce qui ne marche pas exactement ?
La connexion de commande ?
La connexion de données ?
Comment as-tu testé ?

Ben j’essaie de me connecter depuis filezilla en indiquant mon IP public (ip : 93.17.87.35 vous pouvez tester) mais cela reste sur

Statut :	Connexion à 93.17.87.35:21...
Erreur :	Délai d'attente expiré
Erreur :	Impossible d'établir une connexion au serveur

pouvez-vous tester pour voir si cela va plus loin?

Merci

guigui69

Salut,

Statut : Connexion à 93.17.87.35:21... Erreur : Délai d'attente expiré Erreur : Impossible d'établir une connexion au serveur Statut : Attente avant nouvel essai...

Même erreur de mon côté.

En faisant un traceroute TCP sur le port 21, je reçois bien un paquet ICMP “TTL exceeded” de l’adresse de la box, ce qui indique que la redirection a lieu. Mais je ne reçois pas celui que devrait envoyer ton firewall.

Tu peux faire une capture des paquets FTP sur ses deux interfaces pendant que tu essaies de te connecter ?

D’accord,

Comment je doit m’y prendre? pour réaliser la capture des paquets ftp

Voici les résultat:

FW-PROXY:/etc/network/if-pre-up.d# tcpdump -pnti eth1 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
IP 192.168.1.2.1923 > 93.17.87.35.21: S 242975146:242975146(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 192.168.1.2.1923 > 192.168.1.2.21: S 242975146:242975146(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 192.168.1.2.1923 > 93.17.87.35.21: S 242975146:242975146(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 192.168.1.2.1923 > 192.168.1.2.21: S 242975146:242975146(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 192.168.1.2.1923 > 93.17.87.35.21: S 242975146:242975146(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 192.168.1.2.1923 > 192.168.1.2.21: S 242975146:242975146(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel
FW-PROXY:/etc/network/if-pre-up.d# tcpdump -pnti eth0 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
IP 172.16.0.91.1924 > 93.17.87.35.21: S 3856715000:3856715000(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 172.16.0.62.1479 > 93.17.87.35.21: S 3473172268:3473172268(0) win 65535 <mss 1460,nop,nop,sackOK>
IP 172.16.0.91.1924 > 93.17.87.35.21: S 3856715000:3856715000(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 172.16.0.62.1479 > 93.17.87.35.21: S 3473172268:3473172268(0) win 65535 <mss 1460,nop,nop,sackOK>
IP 172.16.0.91.1924 > 93.17.87.35.21: S 3856715000:3856715000(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
IP 172.16.0.62.1479 > 93.17.87.35.21: S 3473172268:3473172268(0) win 65535 <mss 1460,nop,nop,sackOK>
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel
FW-PROXY:/etc/network/if-pre-up.d#

le test: Poste lan vers l’ip public du serveur ftp
eth1= 192.168.1.2 coté net
eth0= 172.16.0.254 coté lan

Ou est-le problème?

guigui69

Visiblement la box ne gère pas correctement la redirection depuis le LAN (elle ne modifie pas l’adresse source). Il faut tester depuis l’extérieur.

Je test depuis chez moi (je me suis connecté en vnc)

FW-PROXY:/etc/network/if-pre-up.d# tcpdump -pnti eth1 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
IP 92.130.154.240.57609 > 192.168.1.2.21: S 3760266442:3760266442(0) win 5840 <mss 1460,sackOK,timestamp 20010572 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.154.240.57609: S 1045670091:1045670091(0) ack 3760266443 win 8192 <mss 536>
IP 192.168.1.2.21 > 92.130.154.240.57609: S 1045670091:1045670091(0) ack 3760266443 win 8192 <mss 536>
IP 92.130.154.240.57612 > 192.168.1.2.21: S 4153901651:4153901651(0) win 5840 <mss 1460,sackOK,timestamp 20014819 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.154.240.57612: S 1052182367:1052182367(0) ack 4153901652 win 8192 <mss 536>
IP 92.130.154.240.57612 > 192.168.1.2.21: S 4153901651:4153901651(0) win 5840 <mss 1460,sackOK,timestamp 20015570 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.154.240.57612: S 1052182367:1052182367(0) ack 4153901652 win 8192 <mss 536>
^C
7 packets captured
7 packets received by filter
0 packets dropped by kernel
tcpdump -pnti eth0 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
IP 92.130.154.240.52068 > 172.16.0.2.21: S 3971808081:3971808081(0) win 5840 <mss 1460,sackOK,timestamp 20082344 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.154.240.52068: S 1117470891:1117470891(0) ack 3971808082 win 8192 <mss 536>0) win 5840 <mss IP 172.16.0.2.21 > 92.130.154.240.52064: S 1111038683:1111038683(0) ack 3556115799 win 8192 <mss 536>
IP 172.16.0.2.21 > 92.130.154.240.52068: S 1117470891:1117470891(0) ack 3971808082 win 8192 <mss 536>
IP 92.130.154.240.52071 > 172.16.0.2.21: S 73552373:73552373(0) win 5840 <mss 1460,sackOK,timestamp 20086593 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.154.240.52071: S 1123969055:1123969055(0) ack 73552374 win 8192 <mss 536>1(0) win 5840 <mss IP 92.130.154.240.52071 > 172.16.0.2.21: S 73552373:73552373(0) win 5840 <mss 1460,sackOK,timestamp 20087343 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.154.240.52071: S 1123969055:1123969055(0) ack 73552374 win 8192 <mss 536>
IP 92.130.154.240.52071 > 172.16.0.2.21: S 73552373:73552373(0) win 5840 <mss 1460,sackOK,timestamp 20088843 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.154.240.52071: S 1123969055:1123969055(0) ack 73552374 win 8192 <mss 536>
^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel

Tout a l’air normal : le firewall reçoit le paquet SYN, le NATe et le transmet vers le serveur. Le serveur renvoie un paquet SYN+ACK au firewall qui le déNATe et le retransmet vers l’extérieur. La seule “explication” que je vois à l’absence de réponse reçue par le client est que la box ne retransmet pas le paquet SYN+ACK pour une raison qui m’échappe.

Question : le serveur peut établir des connexions TCP sortantes vers l’extérieur (web, mail, ssh…) ?

Quand tu parle de serveur tu parle du serveur ftp? (c’est un as400)

je vait vérifier, la machine nous sert uniquement en interne (c’est un tres tres tres vieu as400) toute connexion avant ce fesait a travers des tunnel ipsec (avec un autre routeur.)

donc pour toi le problème viendrait ou ? c’est le serveur ftp qui envoie pas de réponse? ou bien la box?

Il y a un autre serveur ?

Il me semblait avoir été clair. Le serveur envoie une réponse, mais la box ne la fait pas suivre. Peut-être à cause d’une caractéristique particulière de la pile TCP/IP de l’OS de l’AS/400 qui ne lui revient pas (absence d’options TCP “modernes”, valeur de MSS basse… mais rien de foncièrement invalide à mes yeux), c’est pourquoi j’étais intéressé de savoir si le serveur pouvait établir des connexions sortantes (en les autorisant dans les règles du firewall si nécessaire).

Je vait regarder ca

ce qui est sur c’est c’est que le serveur ftp sur l as400 fonctionne, je l’ai deja utilisé et un autre prestataire l’utilise aussi.

je regarde les regle demain matin dans mon script (celui poster au debut).

J’ai modifier l’ip du serveur ftp pour le faire pointer vers mon poste windows (j’ai installé un petit soft ftp)

#!/bin/bash
#script de configuration iptables
#16-05-2009



wan="eth1"
lan="eth0"
serveur1="172.16.0.19"
serveur2="172.16.0.252"
intranet="172.16.0.31"
pcadmin1="172.16.0.91"
pcadmin2=$(/usr/bin/host pan-por03.panidor.org | cut -d" " -f4)
as400="172.16.0.2"
# Refuse les rénses aux broadcasts.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Refuse le routage des paquets source.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Refuse les redirections ICMP.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Active la protection contre les erreurs ICMP.
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Log les paquets spoofé le routage des paquets source et la redirection des paquets.
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians

# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#activation du routeur####
echo "1" > /proc/sys/net/ipv4/ip_forward


# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

#Remise àero

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X 

iptables -A POSTROUTING -t nat -o $wan -j MASQUERADE
######################## LAN ##################################
#### Autoriser les connexions deja etablis ou renouvellé#####
#### qui traverse le pare-feu #################################
iptables -A FORWARD -i $wan -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $lan -o $wan -m state --state ESTABLISHED,RELATED -j ACCEPT

######################## PARTIE SERVEUR #######################
#### Autorise protocole UDP pour le dns, Serveur 1 et 2 #######
iptables -A FORWARD -p udp --dport 53 -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -i $lan -o $wan -s $serveur2 -m state --state NEW -j ACCEPT
#### Autorise protocole TCP pour serveur 1 (pop3,smtp,dns)et 2(dns) ####
iptables -A FORWARD -p tcp --dport 53 -i $lan -o $wan -s $serveur2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 110,25,53 -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
#### Autorise LAN àaire de l'https ####
iptables -A FORWARD -p tcp --dport 443 -i $lan -o $wan -m state --state NEW -j ACCEPT
iptables -A FORWARD -p ICMP -i $lan -o $wan -m state --state NEW -j ACCEPT
## Autorisation des pcadmin 1 et 2 en tcp udp 47 (gre)
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $pcadmin2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $pcadmin2 -m state --state NEW -j ACCEPT

#AS400
iptables -A FORWARD -p tcp  -i $lan -o $wan -s $as400 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $as400 -m state --state NEW -j ACCEPT

####Autorisation RH vers serveur hardis

iptables -A FORWARD -p tcp -m multiport --dport 910,7300,23 -i $lan -o $wan -d 194.3.108.246 -m state --state NEW -j ACCEPT

iptables -t nat -A PREROUTING -d 192.168.1.2  -p tcp --dport ftp -j DNAT --to-destination 172.16.0.62
# On fait suivre les demandes FTP.
iptables -A FORWARD -i $wan  -d 172.16.0.62 -p tcp --dport ftp -m state --state NEW  -j ACCEPT
#iptables -A FORWARD -s 172.16.0.62 -o $wan -p tcp --sport ftp -m state --state RELATED,ESTABLISHED -j ACCEPT


############################################################################################################

iptables -A FORWARD -p tcp  -i $lan -o $wan -s $intranet -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp  -i $lan -o $wan -s $intranet -m state --state NEW -j ACCEPT

iptables -A FORWARD  -p 47  -i $lan -o $wan -s $pcadmin1 -m state --state NEW -j ACCEPT


#iptables -A FORWARD -p tcp  -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -p udp  -i $lan -o $wan -s $serveur1 -m state --state NEW -j ACCEPT


############ LAN => FW ###################
#### redirection du port 80 qui rentre par l'interface lan vers le port dansgaurdian ####
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-ports 8080
#### Autorise le SSH du lan vers FW ####
iptables -A INPUT -p tcp --dport ssh -i $lan -m state --state NEW -j ACCEPT
#### Autorise le LAN a rentrer sur le port 8080 et donnéa rénse sur le 80
iptables -A INPUT -p tcp --dport 8080 -i $lan -m state --state NEW -j ACCEPT
############iptables -A OUTPUT -p tcp --sport 80 -o $lan -m state --state NEW -j ACCEPT



#########
### FW ##
#########
###############################################################
##### Autorise les connexion dè etablished ou renouvellé###
#####             en  input /output                  ####
###############################################################
iptables -A INPUT -i $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### interface local ########################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
############### Autoriser le FW interroger DNS WAN ################
iptables -A OUTPUT -o $wan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $wan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger DNS LAN ################
iptables -A OUTPUT -o $lan -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $lan -p tcp --dport 53 -m state --state NEW -j ACCEPT

############### Autoriser le FW interroger web ################
iptables -A OUTPUT -o $wan -p tcp --dport 80 -m state --state NEW -j ACCEPT

##############PING ################
iptables -A OUTPUT -o $wan -p icmp -j ACCEPT
###############################################################
######################    FTP    ##############################
###############################################################
#################### Active Module ############################
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
####################### FW => WAN ############################
iptables -A OUTPUT -o $wan -p tcp --dport 21 -m state --state NEW -j ACCEPT
################## ftp du LAN vers WAN #######################
iptables -A FORWARD -p tcp -i $lan --sport 1024:65535 --dport 21 -o $wan -m state --state NEW -j ACCEPT





toujours le même phénomène.

Ou se trouve le problème?

C’est fois c’est bon pour le ftp qui est sous windows j’arrive jusqu’a erreur login mais des que je remet l’adresse IP de notre as400 dans le script iptable denouveau un problème.

Peux-tu refaire les captures de paquets lors d’une tentative de connexion FTP depuis l’extérieur, mais cette fois avec tcpdump -pnevi au lieu de -pnti ?

EDIT : nos messages se sont croisés, inutile si ça marche avec le serveur FTP sur une autre machine.

Sur le as400 j’arrive a ping l’exterieur:

tcpdump -pnti eth0 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
IP 92.130.63.148.37428 > 172.16.0.2.21: S 1741536225:1741536225(0) win 5840 <mss 1460,sackOK,timestamp 12853119 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37428: S 2240992747:2240992747(0) ack 1741536226 win 8192 <mss 536>
IP 92.130.63.148.37428 > 172.16.0.2.21: S 1741536225:1741536225(0) win 5840 <mss 1460,sackOK,timestamp 12853869 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37428: S 2240992747:2240992747(0) ack 1741536226 win 8192 <mss 536>
IP 92.130.63.148.37428 > 172.16.0.2.21: S 1741536225:1741536225(0) win 5840 <mss 1460,sackOK,timestamp 12855369 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37428: S 2240992747:2240992747(0) ack 1741536226 win 8192 <mss 536>
IP 172.16.0.2.21 > 92.130.63.148.37427: S 2220449855:2220449855(0) ack 456355881 win 8192 <mss 536>
IP 172.16.0.2.21 > 92.130.63.148.37428: S 2240992747:2240992747(0) ack 1741536226 win 8192 <mss 536>
IP 92.130.63.148.37429 > 172.16.0.2.21: S 2142629894:2142629894(0) win 5840 <mss 1460,sackOK,timestamp 12859618 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37429: S 2247489763:2247489763(0) ack 2142629895 win 8192 <mss 536>
IP 92.130.63.148.37429 > 172.16.0.2.21: S 2142629894:2142629894(0) win 5840 <mss 1460,sackOK,timestamp 12860368 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37429: S 2247489763:2247489763(0) ack 2142629895 win 8192 <mss 536>
IP 92.130.63.148.37429 > 172.16.0.2.21: S 2142629894:2142629894(0) win 5840 <mss 1460,sackOK,timestamp 12861868 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37429: S 2247489763:2247489763(0) ack 2142629895 win 8192 <mss 536>
IP 172.16.0.2.21 > 92.130.63.148.37428: S 2240992747:2240992747(0) ack 1741536226 win 8192 <mss 536>
IP 172.16.0.2.21 > 92.130.63.148.37429: S 2247489763:2247489763(0) ack 2142629895 win 8192 <mss 536>
IP 92.130.63.148.37431 > 172.16.0.2.21: S 2548754165:2548754165(0) win 5840 <mss 1460,sackOK,timestamp 12866116 0,nop,wscale 6>
IP 172.16.0.2.21 > 92.130.63.148.37431: S 2253985791:2253985791(0) ack 2548754166 win 8192 <mss 536>
^C
18 packets captured
18 packets received by filter
0 packets dropped by kernel
FW-PROXY:~# tcpdump -pnti eth1 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
IP 92.130.63.148.52178 > 192.168.1.2.21: S 3922901219:3922901219(0) win 5840 <ms                                             s 1460,sackOK,timestamp 12819609 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.52178: S 2207455615:2207455615(0) ack 39229012                                             20 win 8192 <mss 536>
IP 92.130.63.148.52178 > 192.168.1.2.21: S 3922901219:3922901219(0) win 5840 <ms                                             s 1460,sackOK,timestamp 12820359 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.52178: S 2207455615:2207455615(0) ack 39229012                                             20 win 8192 <mss 536>
IP 92.130.63.148.52178 > 192.168.1.2.21: S 3922901219:3922901219(0) win 5840 <ms                                             s 1460,sackOK,timestamp 12821859 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.52178: S 2207455615:2207455615(0) ack 39229012                                             20 win 8192 <mss 536>
IP 192.168.1.2.21 > 92.130.63.148.52178: S 2207455615:2207455615(0) ack 3922901220 win 8192 <mss 536>
IP 92.130.63.148.37426 > 192.168.1.2.21: S 59670896:59670896(0) win 5840 <mss 1460,sackOK,timestamp 12826107 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.37426: S 2213953071:2213953071(0) ack 59670897 win 8192 <mss 536>
IP 92.130.63.148.37426 > 192.168.1.2.21: S 59670896:59670896(0) win 5840 <mss 1460,sackOK,timestamp 12826857 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.37426: S 2213953071:2213953071(0) ack 59670897 win 8192 <mss 536>
IP 92.130.63.148.37426 > 192.168.1.2.21: S 59670896:59670896(0) win 5840 <mss 1460,sackOK,timestamp 12828357 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.37426: S 2213953071:2213953071(0) ack 59670897 win 8192 <mss 536>
IP 192.168.1.2.21 > 92.130.63.148.52178: S 2207455615:2207455615(0) ack 3922901220 win 8192 <mss 536>
IP 192.168.1.2.21 > 92.130.63.148.37426: S 2213953071:2213953071(0) ack 59670897 win 8192 <mss 536>
IP 92.130.63.148.37427 > 192.168.1.2.21: S 456355880:456355880(0) win 5840 <mss 1460,sackOK,timestamp 12832605 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.37427: S 2220449855:2220449855(0) ack 456355881 win 8192 <mss 536>
IP 92.130.63.148.37427 > 192.168.1.2.21: S 456355880:456355880(0) win 5840 <mss 1460,sackOK,timestamp 12833355 0,nop,wscale 6>
IP 192.168.1.2.21 > 92.130.63.148.37427: S 2220449855:2220449855(0) ack 456355881 win 8192 <mss 536>
^C
19 packets captured
19 packets received by filter
0 packets dropped by kernel

toujours le blocage

Par contre je veux bien la capture de paquets TCP/21 et ICMP sur l’interface $WAN

lors d’un tcptraceroute depuis l’extérieur vers le port 21.

Nos messages se sont encore croisés. Je ne parle pas de ping (ICMP) mais de connexion TCP sortante vers un port quelconque pourvu que ce soit autorisé par le firewall. D’autre part ta dernière capture ne montrait pas le ping et n’apportait rien par rapport à la précédente, il était inutile de la publier.