[FTP/TLS] iptables : ftp-data ???
RésoluJ'ai une petite question ....
Je me suis remis au ftp, plus particulierement à l'authentification et chiffrement grace à TLS.
Je trouve des difficultés à configurer NETFILTER pour autoriser les connexions FTP avec TLS....pourtant je connais bien netfilter, mais je lutte un peu.
En effet la premiere connexion s'effectue sur le port 21, l'échange du certificat est ensuite fait, et la on crypte l'envoi des commandes du mot de passe, ainsi que celle du choix des ports utilisés pour le transfert des données (le serveur utilise le port 20 en actif, sinon en passif ce sont des ports hauts supérieurs à 1024 ...), puis vient l
Luc L.
29 réponses
La discussion porte sur la configuration de NETFILTER pour autoriser les connexions FTP avec TLS et sur les difficultés de filtrage liées aux ports de transfert de données. Des modules ip_nat_ftp et ip_conntrack_ftp sont nécessaires pour le NAT et le filtrage, et les règles FORWARD, INPUT et OUTPUT doivent être ajustées pour autoriser le trafic FTP. Les échanges sur le port 21 et le chiffrement des commandes compliquent le filtrage des ports de données, et certains préconisent des règles spécifiques ou l'utilisation de SFTP. En pratique, la compatibilité TLS FTP peut nécessiter d'ouvrir largement les ports et d'envisager des alternatives comme SFTP, selon l'architecture réseau et les exigences de sécurité.
-
Pour permettre à ton script de se lancer au démarrage sous debian, tu le colles dans /etc/init.d/ tu vérifies qu'il soit exécutable. Dans le cas contraire, tape la commande:
chmod +x /etc/init.d/script
Dernière commande à taper:
update-rc.d script start 20 2 3 4 5 . stop 20 0 1 6 .
Le 20 correspond à l'ordre de démarrage
Les 2 3 4 5 et 0 1 6 correspond au différent niveau de démarrage
Attention les points sont obligatoires -
ContributeurBonsoir :)
Merci Kmf d'avoir participé au probleme.
Otipogle, je regarderais ton script un petit plus tard et je te dirais ce que j'en pense, mais je ne prétend pas être un expert (au fait merci Kmf :), je me débrouille un peu.
A bientot et bonne nuit.
-
Pour les regles c'est kelux l'expert, par contre pour lancer au boot: En general il y a dans /etc/rc.d/... (ou un sous-repertoire de ca) un fichier de genre "rc.local" ou "boot.local" dans lequel il suffit d'ajouter une ligne faisant executer ton script et ca y est. Je n'ai pas d'infos specifiques pour Debian mais ca doit etre possible de cette facon. Ce n'est pas elegant mais facile!
-
YES,
mon ftp est accessible de l'extérieur.
Les modules se chargent correctement avec le script.
Les règles ont permis de laisser le ftp sans tout laisser passer (je l'espère :-/)
Par contre, car il y en a toujours :
1 - je sais pas comment faire pour qu'il se lance tjrs au démarrage, en sachant que j'ai une débian et que c pas comme les autres distrib.
2 - Est-ce que tu veux bien jeter un oeil a mes règles, et me dire celles qui servent à rien, celles qui sont dangereuses, sans aucun sens etc ???
#!/bin/bash MODPROBE=/sbin/modprobe $MODPROBE ip_tables $MODPROBE ip_conntrack $MODPROBE ip_conntrack_ftp $MODPROBE iptable_nat $MODPROBE ip_nat_ftp #nat iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE #filter iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -d 127.0.0.0/255.0.0.0 -i lo -j ACCEPT iptables -A INPUT -s 192.168.0.0/255.255.255.0 -i eth1 -j ACCEPT iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -d 192.168.0.0/255.255.255.0 -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A FORWARD -p icmp -m icmp --icmp-type 0 -j ACCEPT iptables -A FORWARD -p icmp -m icmp --icmp-type 3 -j ACCEPT iptables -A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 1863 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 6891 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 6891 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 6891:6900 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 6891:6900 -j ACCEPT iptables -A OUTPUT -s 127.0.0.0/255.0.0.0 -o lo -j ACCEPT iptables -A OUTPUT -s 192.168.0.254 -o eth1 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A OUTPUT -o ppp0 -p ah -j ACCEPT iptables -A OUTPUT -o ppp0 -p esp -j ACCEPT iptables -A OUTPUT -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --sport 22 -j ACCEPT iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 1863 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 6891 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 6891:6900 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 6891:6900 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT echo "1" > /proc/sys/net/ipv4/ip_forward
Merci beaucoup pour ton aide, elle a été plus que précieuse. -
Si ce n'est que ca:
Ta ligne:iptables -nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
est fausse, il faut la corriger:iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
C'est l'option "-nat" qui est fausse, correcte c'est "-t nat".
Avec cette correction la syntax sera correcte mais pour le contenu je n'en ai aucune idee.
Apart ca quand j'essaie ton script chez moi il charge encore quelques modules de plus, en total les modules impliques sont:
ipt_MASQUERADE
ipt_TCPMSS
ipt_tcpmss
ipt_LOG
ipt_state
iptable_filter
ip_nat_ftp
iptable_nat
ip_conntrack_ftp
ip_conntrack
ip_tables
Il semble que chez moi iptables n'a pas de mal de les charger tout seul, donc en principe pas besoin de mettre plus de modprobes (mais ca ne fait pas de mal non-plus). Par exemple quand on appelle iptables avec l'option "-m tcpmss" ca devrait charger les modules: ipt_TCPMSS et ipt_tcpmss . -
Resalut,
J'ai mis tout dans un script. Le chargement des modules plus les règles iptables.
Ensuite dox2unix iptablesScript
Puis ./iptablesScript
Et il me sors :
iptablesv1.2.11: Unknow arg 'iptables'
Je vois pas d'où sors cette erreur ! Peut-être que c'est pas dans /bin/bash mais je pense pas??
En tout cas les modprobe direct en console il accepte bien.
Tu vois où ça coince ??
#!/bin/bash MODPROBE=/sbin/modprobe $MODPROBE ip_tables $MODPROBE ip_conntrack $MODPROBE ip_conntrack_ftp $MODPROBE iptable_nat $MODPROBE ip_nat_ftp #nat iptables -nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE #filter iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -d 127.0.0.0/255.0.0.0 -i lo -j ACCEPT iptables -A INPUT -s 192.168.0.0/255.255.255.0 -i eth1 -j ACCEPT iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -d 192.168.0.0/255.255.255.0 -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A FORWARD -p icmp -m icmp --icmp-type 0 -j ACCEPT iptables -A FORWARD -p icmp -m icmp --icmp-type 3 -j ACCEPT iptables -A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 1863 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 6891 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 6891 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 6891:6900 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 6891:6900 -j ACCEPT iptables -A OUTPUT -s 127.0.0.0/255.0.0.0 -o lo -j ACCEPT iptables -A OUTPUT -s 192.168.0.254 -o eth1 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A OUTPUT -o ppp0 -p ah -j ACCEPT iptables -A OUTPUT -o ppp0 -p esp -j ACCEPT iptables -A OUTPUT -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --sport 22 -j ACCEPT iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 1863 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 6891 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT iptables -A OUTPUT -o ppp0 -p udp -m udp --dport 6891:6900 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp -m tcp --dport 6891:6900 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT echo "1" > /proc/sys/net/ipv4/ip_forward
-
Mais comment on les charge c'est fichus modules ?
C'est une question a laquelle je peux aussi repondre:
Le plus facile c'est de mettre tout au debut de script une liste de commandes de genres:MODPROBE=/sbin/modprobe $MODPROBE ip_tables $MODPROBE ip_conntrack $MODPROBE ip_conntrack_ftp $MODPROBE iptable_nat $MODPROBE ip_nat_ftp
Normalement, l'utilisation de la commande d'iptables charge deja le 1er module automatiquement (et peut-etre d'autres modules). Cependant de les charger manuellement pour en etre sur ne fait pas de mal!! Bien-entendu tu prolonges cette liste avec d'autres modules si necessaire ou souhaitable.
P.S.: Je suis desolee pour ma vu trop simpliste apropos de ftp dans mon poste precedent. J'avais oublie que pour ftp il y a en effet de modules speciaux. Je l'avais remarque il y a longtemps mais je ne m'en suis jamais servit moi meme.
Par contre pour le "sshd" ma proposition ci-dessus marche bien, c.-a-d. dans une config ou la chaine "OUTPUT" est ouverte, sinon il faut aussi ajouter une regle pour ca. -
Salut,
effectivement c ptete bien ça. Il y a un module ip_conntrack (mais pas ip_conntrack_ftp :-( ).
Mais en plus celui-ci semble pas utilisé :
Module Size Used by Not tainted ipt_state 504 10 (autoclean) ipt_MASQUERADE 1304 1 (autoclean) iptable_nat 14766 1 (autoclean) [ipt_MASQUERADE] ip_conntrack 16900 0 (autoclean) [ipt_state ipt_MASQUERADE iptable_nat] ipt_TCPMSS 2104 2 (autoclean) ipt_tcpmss 728 1 (autoclean) iptable_filter 1644 1 (autoclean) ip_tables 10400 8 [ipt_state ipt_MASQUERADE iptable_nat ipt_TCPMSS ipt_tcpmss iptable_filter] pppoe 6816 1 (autoclean) pppox 1016 1 (autoclean) [pppoe] af_packet 11048 2 (autoclean) ppp_generic 17956 3 (autoclean) [pppoe pppox] slhc 4144 0 (autoclean) [ppp_generic] usb-ohci 16488 0 (unused) usbcore 52268 1 [usb-ohci] i810_audio 21372 0 (unused) ac97_codec 11252 0 [i810_audio] soundcore 3268 2 [i810_audio] ide-scsi 8272 0 scsi_mod 86052 1 [ide-scsi] 8139too 12328 1 mii 1952 0 [8139too] sis900 11052 1 crc32 2848 0 [8139too sis900] nls_cp437 4284 2 (autoclean) vfat 8716 1 (autoclean) fat 27576 0 (autoclean) [vfat] ide-cd 27072 0 cdrom 26212 0 [ide-cd] rtc 5768 0 (autoclean) reiserfs 152944 1 (autoclean) ide-detect 288 0 (autoclean) (unused) sis5513 9872 1 (autoclean) ide-disk 12448 3 (autoclean) ide-core 91832 3 (autoclean) [ide-scsi ide-cd ide-detect sis5513 ide-disk] unix 12720 7 (autoclean)
Donc là ils semble pas être chargés ! Mais comment on les charge c'est fichus modules ? :-/ -
ContributeurSalut :)
As tu vérifié si les deux modules ip_nat_ftp et ip_conntrack_ftp étaient bien chargés ?
A chaque démarrage de la machine il se ne charge pas automatiquement, le probleme pourrait venir du fait que le module ip_conntrack_ftp ne soit pas chargé, il permet au firewall d'inspecter les communications FTP et donc savoir sur quel port se fera le transfert des données.
Pour vérifier s'il sont chargés tapelsmod
Vérifie peut etre les firewall des clients , acceptent ils le FTP ?
La solution est proche :)
PS : il y a deux trois règles qui me déplaisent , mais on va déja résoudre le pb du ftp avant tout ...
@+
Luc L.
[Gentoo] enfin :Þ -
ça y est j'ai trouvé le temps de m'y remettre un peu.
Mais ça bloque toujours au momment du LIST, c'est à dire quand le changùent de port de port se fait.
Voicç mes règles iptables, j'avoue que je n'arrive pas à toutes les comprendre même si c'est moi qui les ai mises :-/
Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere 127.0.0.0/8 ACCEPT all -- 192.168.0.0/24 anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT icmp -- anywhere anywhere icmp echo-request ACCEPT icmp -- anywhere anywhere icmp echo-reply ACCEPT icmp -- anywhere anywhere icmp destination-unreachable ACCEPT tcp -- anywhere anywhere tcp dpt:ftp state NEW,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data state ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 state RELATED,ESTABLISHED Chain FORWARD (policy DROP) target prot opt source destination TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN tcpmss match 1400:1536 TCPMSS clamp to PMTU ACCEPT udp -- 192.168.0.0/24 anywhere udp dpt:domain ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:domain ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:www ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:ssh ACCEPT all -- 192.168.0.0/24 anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere 192.168.0.0/24 state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere icmp echo-request ACCEPT icmp -- anywhere anywhere icmp echo-reply ACCEPT icmp -- anywhere anywhere icmp destination-unreachable TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:1863 ACCEPT udp -- 192.168.0.0/24 anywhere udp dpt:1863 ACCEPT udp -- 192.168.0.0/24 anywhere udp dpt:6891 ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:6891 ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:https ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:ftp Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT all -- 127.0.0.0/8 anywhere ACCEPT all -- 192.168.0.254 anywhere ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT tcp -- anywhere anywhere tcp dpt:domain ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT ah -- anywhere anywhere ACCEPT esp -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp spt:ssh ACCEPT icmp -- anywhere anywhere icmp echo-reply ACCEPT icmp -- anywhere anywhere icmp echo-request ACCEPT tcp -- anywhere anywhere tcp dpt:1863 ACCEPT udp -- anywhere anywhere udp dpt:1863 ACCEPT udp -- anywhere anywhere udp dpt:6891 ACCEPT tcp -- anywhere anywhere tcp dpt:https ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp spt:ftp state ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp spt:ftp-data state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpts:1024:65535 state ESTABLISHED
Je ne sais pas trop vers où chercher, c'est ça le problème !
Toi tu vas ptete voir.
Dis-moi ce que tu en penses. -
ContributeurBa alors ca en ou tout ca :) ?
Pas de nouvelles bonnes nouvelles ???
:)
Luc L.
[Gentoo] enfin :Þ -
ContributeurMerci luc, tu es un chef !!!
Merci , mais il y en a certain ici qui maitrisent bien mieux que moi je pense, l'honneur revient aux personnes qui font vivre Comment Ca Marche.
J'ai fait un BTS en alternance Informatique Admin Reseau , mais actuellement je travaille a l'ANPE :)
Je vais certainement continuer sur un BAC +4 ou 5 à la rentrée prochaine, en sécu réseau ca serait l'idéal...
Sinon j'ai d'autres projets, comme la musique électronique, mais les temps sont durs dans ce milieu ces dernieres années, espérons que 2005 soit plus généreuse :)
Debian je connais qu' un tout petit peu , j'ai installé une Woody il y a quelques temps déja. Mais je suis passé sous Gentoo et depuis je ne m'en lasse pas.
Pose tes questions dans un nouveau post c'est mieux :) (notamment pour la recherche sur le forum, c'est nettement plus clair et concis)
@+
Luc L.
[Gentoo] enfin :Þ -
Merci luc, tu es un chef !!!
Je regarde ça des que mes cours sont finis.
Sinon question perso, tu es étudiant ou tu taf ?
ET aussi, es-tu calé Debian? Car j'ai des ptites imprécisions de pensées que j'aimerai bien résoudre.
En tout cas merci pour le FTP. Je teste dès que j'ai fini, sans doute cet après-midi. -
ContributeurEuh sinon je viens de regarder le script ... oui je voulais pas le lire plus tot :)
Voici les lignes qui sont interressantes pour le ftp
-A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT
Mais il en manque UNE .... sur INPUT de ppp0 .... le port 21 n'est pas ouvert ....
Bon FTP :)
Luc L.
[Gentoo] enfin :Þ -
ContributeurAllez c'est parti! j'ai pas dormi de la nuit mais bon je suis frais encore :)
#Chaque ligne commence par "iptables" et se termine par "ACCEPT" #Les commandes iptables ne doivent pas etre écrites sur deux lignes... #on ouvre le port 21 iptables -A INPUT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT #on permet le ftp actif iptables -A INPUT -i ppp0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT #on permet le ftp passif iptables -A INPUT -i ppp0 -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT #fin
Il faut obligatoirement charger les deux modules que j'ai cité plus haut A CHAQUE DEMARRAGE de la machine.
Si tu veux faire encore mieux ... c'est a dire restreindre encore un peu le filtrage pour le passif, définis une plage de ports sur le serveur FTP (on prend par exemple 20000 a 21000)
On remplace donc la partie concernant le ftp passif , voila ce que ca donne:
iptables -A INPUT -i ppp0 -p tcp --sport 1024: --dport 20000:21000 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 20000:21000 --dport 1024: -m state --state ESTABLISHED -j ACCEPT
Un petit "plus" , tu me dis que tu as ton modem branché sur eth1, peu importe ethX, mais il ne faut pas attribuer d'adresse IP a eth1 , dans les scripts de démarrage , il doit y avoir une option du type "up" , et ca suffit....il ne faut surtout pas mettre d'adresse IP c'est tout :)
@+
Luc L.
[Gentoo] enfin :Þ -
royale la faut m'aime au lieu de même !!!! Je sais rien à voir, mais je trouvais cele-ci notable.
-
Tu as tout compris.
Tu peux m'aider ! C'est cool !
Par contre juste au cas où, m'aime si je doute pas que tu l'as vu. Mon ppp0 est branché sur eth0 et non eth1( juste pour rappel car c pas logique mais bon tt pis).
Donc tu penses koi de ce que j'ai fait ? -
ContributeurLe cas déja abordé sur le lien cité concerne un serveur FTP dans une DMZ, la ligne iptables -t nat -A PREROUTING -i $red -p tcp --dport $high_ports -j DNAT --to-destination IP_FTP permet de forwarder une plage de ports passifs vers le serveur en DMZ.
Dans ton cas tu as un serveur FTP sur ta passerelle Internet , si j'ai bien compris ?
Apres on attaque iptables :)
Luc L.
[Gentoo] enfin :Þ -
Oui désolé, de toute façon, je suis reconnaissant a tous ceux qui m'aident.
j'ai vu que tu as déjç eu une conversation similaire
[url]http://www.commentcamarche.net/forum/affich-1138864-IPCOP-et-acc%E8s-FTP[/url]
dedans, tu donne ceci :
#Je définis qq variables basiques :
red=ppp0
green=eth0
orange=eth1
IP_FTP=ip du serveur FTP en DMZ
high_ports=60000:61000
#On fait le forward des ports
#on utilise la table NAT
iptables -t nat -A PREROUTING -i $red -p tcp --dport 21 -j DNAT --to-destination IP_FTP:21
iptables -t nat -A PREROUTING -i $red -p tcp --dport 20 -j DNAT --to-destination IP_FTP:20
iptables -t nat -A PREROUTING -i $red -p tcp --dport $high_ports -j DNAT --to-destination IP_FTP
#on s'occupe du filtrage
iptables -A FORWARD -i $red -o $orange -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $orange -o $red -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $red -o $orange -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $orange -o $red -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $red -o $orange -p tcp --sport 1024: --dport $hight_ports -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $orange -o $red -p tcp --sport $high_ports --dport 1024: -m state --state ESTABLISHED -j ACCEPT
Moi j'utilise pas de variables, mais peu importe.
Que signifie cette ligne :
iptables -t nat -A PREROUTING -i $red -p tcp --dport $high_ports -j DNAT --to-destination IP_FTP
Ensuite, je trouve que certines règles se ressemblent et je me demande s'il n'y a pas des choses de déjà faites involontairement.
Voiçi mon fichier complet :
# Completed on Tue Jan 18 04:36:22 2005
# Generated by iptables-save v1.2.11 on Tue Jan 18 04:36:22 2005
*filter
:INPUT DROP [2857:160500]
:FORWARD DROP [75:3600]
:OUTPUT DROP [64:4243]
-A INPUT -d 127.0.0.0/255.0.0.0 -i lo -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.255.0 -i eth1 -j ACCEPT
-A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 53 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A FORWARD -d 192.168.0.0/255.255.255.0 -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 1863 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p udp -m udp --dport 6891 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 6891 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth1 -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -s 127.0.0.0/255.0.0.0 -o lo -j ACCEPT
-A OUTPUT -s 192.168.0.254 -o eth1 -j ACCEPT
-A OUTPUT -o ppp0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -o ppp0 -p ah -j ACCEPT
-A OUTPUT -o ppp0 -p esp -j ACCEPT
-A OUTPUT -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 1863 -j ACCEPT
-A OUTPUT -o ppp0 -p udp -m udp --dport 1863 -j ACCEPT
-A OUTPUT -o ppp0 -p udp -m udp --dport 6891 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -o ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Tue Jan 18 04:36:22 2005
Tu en penses quoi. Je trouve vraiment le ftp pas simple du tout.
Merci de ton aide -
ContributeurQuoiqu'il arrive les deux modules ip_nat_ftp et ip_conntrack_ftp sont nécessaires pour respectivement avoir du NAT et gérer du filtrage.
Lis le lien que je t'ai donné... malgré tout il faudra changer les règles FORWARD en INPUT et OUTPUT.
Tu devrais aussi remercier kmf , il a pris la peinne de te répondre.
Bonne journée.
Luc L.
[Gentoo] enfin :Þ
- 1
- 2