Ftp et iptables

karon -  
 karon -
Bonjour,

J'ai un petit soucis avec IPtables et mon serveur FTP (sur la même machine Ubuntu 8.10)
En fait je souhaite que l'on puisse se connecter à mon serveur FTP or mes règles iptables font qu'on ne peut
récupérer la liste des fichiers.
voici mes règles concernant le FTP:

#!/bin/bash

#eth0

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 20,21 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dport 20,21 -j ACCEPT

Si quelqu'un a une idée :) parce que la je sèche complétement. MERCI !

13 réponses

  1. foobar47 Messages postés 13654 Statut Contributeur 534
     
    Bonjour,

    Ca se passe dans ton fichier de configuration de ton serveur FTP.

    a+
    0
  2. karon
     
    bonsoir,

    pas plus de détails ? :/ je vais quand même fouiller merci!
    0
  3. foobar47 Messages postés 13654 Statut Contributeur 534
     
    Commence déjà par donner les détails de ton fichier de config ftp, c'est pas à nous de donner des réponses détaillées à des questions qui ne le sont pas...
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT DROP


    Tu sais à quoi corresponds cette politique pour les chaînes iptables?
    Ca correspond au debranchement des cables ou de ton réseau.
    Donc malgré les régles iptables, tout est interdit par la politque des chaînes.

    Tu dois mettre
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    0
    1. sluthole
       
      Bonjour,

      Désolé de contredire, mais -P, c'est la politique *PAR DEFAUT*.
      Il n'y a rien d'incohérent la-dedans si c'est un firewall dit "trust no one" : on DROP tout SAUF ce qui correspond a certaines règles.

      "Donc malgré les régles iptables, tout est interdit par la politque des chaînes"
      ==> Non, si ca correspond à une règle ACCEPT ca va passer, sinon, si ca ne correspond à aucune règle ACCEPT, ca va dropper.

      Si tu met toutes les politiques par défaut à ACCEPT, sans aucune règle DROP ; Alors tout passe, et ce n'est plus un firewall.

      Bref, tout ca se retrouve en détail dans n'importe quel tuto iptables...

      Bisous.
      M.
      0
    2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > sluthole
       
      Re,

      Désolé de contredire, mais -P, c'est la politique *PAR DEFAUT*.
      Il n'y a rien d'incohérent la-dedans si c'est un firewall dit "trust no one" : on DROP tout SAUF ce qui correspond a certaines règles.


      Ben, comme tu veux, mais mettre la politique DROP à toutes les chaînes interdit l'accès = débranchement des cables.
      0
    3. sluthole > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
       
      Encore désolé mais non,
      Si il y a des règles ACCEPT, même avec politique DROP sur toutes les chaines, certains flux vont passer et donc ça ne correspond pas à un débranchement des cables.
      0
    4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > sluthole
       
      Re,

      Ben, si tu le dis.
      Mais en ce cas je ne suis pas le seul qui se trompe ;-)
      Voici mon 1er cours que j'ai lu sur iptables

      Le paragraphe en question (le lien http://olivieraj.free.fr/fr/linux/information/firewall/fw-03-06.html )
      Définition de la politique (cibles) par défaut : La table filter possède 3 chaînes, donc elles sont toutes les trois à initialiser. Par défaut, on décide donc de tout détruire (DROP) : 
      [root@phoenix /]# iptables -t filter -P INPUT DROP
      [root@phoenix /]# iptables -t filter -P OUTPUT DROP
      [root@phoenix /]# iptables -t filter -P FORWARD DROP
      
      A ce stade là, vous avez court-circuité tout votre système de réseau. Toutes vos connexions réseaux sont hors service. Pas un logiciel que vous utilisez ne peut accéder au réseau, ou à vous propres serveur. J'en veux pour preuve, la commande "ping localhost" ne marche même plus, et pourtant il lui en faut pour ne plus marcher ! 
      [olivier@phoenix /]$ ping localhost
      PING localhost.sky.net (127.0.0.1) 56(84) bytes of data.
      ping: sendmsg: Operation not permitted
      ping: sendmsg: Operation not permitted
      ping: sendmsg: Operation not permitted
      
      --- localhost.sky.net ping statistics ---
      3 packets transmitted, 0 received, 100% packet loss, time 2011ms
      
      


      Ben, en ce cas je dois reprendre mes cours.
      0
    5. karon > sluthole
       
      Salut,

      Je suis tout à fait d'accord avec toi sluthole, un pare-feu doit tout refuser et ensuite on lui donne nos règles
      sinon ce n'et plus un firewall...

      Voici mon fichier de config vsftpd.conf mais je ne comprend pas pourquoi tout se passerais la dedans étant donné que c'est un problème de filtrage:

      #daemon en standalone
      listen=YES
      #Permet d'accepter les connexions anonymes
      anonymous_enable=NO
      #Oblige les personnes à s'identifier avec un compte utilisateur
      local_enable=YES

      # Affiche les fichiers caches
      force_dot_files=YES

      # Permission d'écriture
      write_enable=NO
      anon_upload_enable=NO
      anon_mkdir_write_enable=NO
      anon_other_write_enable=NO

      #Ecriture d'un log de fichier (je vous laisse le soin de regler ce parametre)
      #xferlog_file=/etc/vsftpd/log...

      #Banniere d'affichage a la connexion ftp
      #ftpd_banner=/etc/vsftpd/ma_banniere

      # active les utilisateurs virtuels
      guest_enable=YES
      guest_username=www-data

      # droits des fichiers uploades
      anon_umask=022

      # Permet de chrooter la connexion de l'utilisateur
      chroot_local_user=YES

      # nombre maximum de sessions à 200
      # nombre maximum de sessions par IP à 8
      max_clients=200
      max_per_ip=8

      ####################################
      # Debian customization #
      ####################################
      # Some of vsftpd's settings don't fit the Debian filesystem layout by
      # default. These settings are more Debian-friendly.
      #
      # This option should be the name of a directory which is empty. Also, the
      # directory should not be writable by the ftp user. This directory is used
      # as a secure chroot() jail at times vsftpd does not require filesystem
      # access.
      secure_chroot_dir=/var/run/vsftpd
      #
      # This string is the name of the PAM service vsftpd will use.
      pam_service_name=vsftpd
      #
      # This option specifies the location of the RSA certificate to use for SSL
      # encrypted connections.
      rsa_cert_file=/etc/ssl/certs/vsftpd.pem

      # utiliser les configurations individuelles pour chaque utilisateur
      user_config_dir=/etc/vsftpd/vsftpd_user_conf


      En attendant je vais essayer en supprimant la règle
      IPTABLES -A OUTPUT -p tcp -m multiport --dport 20,21 -j ACCEPT

      Je rappelle juste ce que je veux faire: que les machines de mon LAN et celles de l'extérieure accédent à mon serveur FTP.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    Cette régle n'est bonne non plus.
    Il faut mettre
    iptables -A OUTPUT -m state --state ! INVALID -j ACCEPT


    0
  7. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    iptables -A OUTPUT -p tcp -m multiport --dport 20,21 -j ACCEPT
    Tu n'as pas besoin de cette régle.
    Le client se connecte sur ton serveur donc les ports 21 et 20 doivent être ouverts.
    Pour la sortie de toute façon tu peux laisser tout sortir.
    Si dans ton LAN tu as des pc qui ne doivent pas sortir sur net tu n'as qu'à rajouter des régles pour les cas particulières.
    0
  8. karon
     
    si je supprime
    iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
    mon serveur ne pourra plus se connecter aux serveurs ftp genre les màj ubuntu ou encore le ftp de la freebox.
    0
  9. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Essaie tout simplement (au lieu de eth0 mets ton interface réseau) ce script basique

    iptables -P INPUT DROP 
    iptables -P FORWARD DROP 
    iptables -P OUTPUT DROP 
    
    iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --dport 20:21 -j ACCEPT
    iptables -A OUTPUT -o eth0 -m state --state ! INVALID -j ACCEPT

    0
    1. karon
       
      salut

      SA FONCTIONNE !!!!!!
      j'ai ajouté ce que tu m'as filé juste au dessus et c'est OK !

      et effectivement les lignes que j'ai ajouté en sortie sur les ports 20 et 21 ne servent à rien.
      va falloir maintenant que je comprenne comment cela fonctionne avec ces histoires de ESTABLISHED, RELATED...

      en tout cas merci les gars!!

      bonne journée @+++
      0
    2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > karon
       
      Salut,

      ESTABLISHED, RELATED

      Seulement les paquets provenants des nouvelles connexion initialisées par une connexion déjà existante et établie, auront la permission d'entrer.
      0
    3. karon
       
      je me suis un peu emballé trop vite :( sa marche pas.

      je vais me débrouiller et fouiller un peu plus sur le net.
      en tout cas merci pour vos propositions!!
      0
    4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > karon
       
      Re,

      Ben, côté firewall c'est correct donc ce n'est lui qui pose de problèmes
      Il faut voir une autre piste.

      Tu n'as pas dit si tu as bien configurer ton firebox pour la rédirection de ports.
      0
    5. karon > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
       
      pour firefox c'est ok, en fait il utilise le mode passif,
      j'ai du ajouter NEW à la règle:

      iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

      tout est good maintenant, mais il va vraiment falloir que j'en apprene plus sur IPTABLEs parce que là
      j'avoue ne pas tout comprendre. en tout cas merci encore :)
      0
  10. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Et puisque tu parles de freebox, as-tu configuré la freebox pour qu'elle sache quel pc fait l'office de serveur ftp?!
    0
  11. foobar47 Messages postés 13654 Statut Contributeur 534
     
    Au fiat, c'est quoi le message d'erreur que tu reçois ?
    0
  12. karon
     
    lami20j je vais essayer ta dernire proposition

    foobar47 en fait la connexion se fait bien, mais c'est au moment du "LIST des répertoires"
    il mouline et puis me renvoie un message qu'il faudra que je renote et que je posterais.
    0
  13. Manu
     
    Bonsoir,

    foobar47 en fait la connexion se fait bien, mais c'est au moment du "LIST des répertoires"
    il mouline et puis me renvoie un message qu'il faudra que je renote et que je posterais.


    Typique d'un ftp vers un serveur Windows. En général ils ne connaissent pas le mode passif.
    Cela veut dire que c'est le serveur qui initialise les transferts... et le pare-feu doit accepter les connexions entrantes.

    Essayez en mode passif, mais en général avec Windows ça ne marche pas.

    Manu
    0
    1. foobar47 Messages postés 13654 Statut Contributeur 534
       
      mon serveur FTP (sur la même machine Ubuntu 8.10) 

      Le serveur FTP n'est pas sous Windows.

      Essaye de changer le mode sur ton client FTP.
      0
  14. karon
     
    finalement c'est ok, j'ai mi en place les régle de lamij20 et en mode actif tout marche!!

    merciiiii !!
    0