Forum Linux.général Règle iptables pour serveur vsftpd

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
27
oct.
2015

Bonjour,

Je cherche atteindre mon serveur de repository.
Lorsque le désactive iptables, pas de soucis ca marche. Lorsque j'active les iptables, impossible de passer. Pourtant je ne trouve pas mon erreur. Une idée ?

Repository host :

ip add
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:a6:8f:9f brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.2/24 brd 172.16.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fea6:8f9f/64 scope link 
       valid_lft forever preferred_lft forever

iptables-save 
# Generated by iptables-save v1.4.21 on Tue Oct 27 11:48:36 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [11:844]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i enp0s3 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Tue Oct 27 11:48:36 2015

Le service vsftpd tourne (de toute façon ca marche lorsque les ipatbles sont off), et l'erreur sur le client est :

Loaded plugins: fastestmirror
ftp://172.16.0.2/pub/localrepo/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to 172.16.0.2:21; Connection refused"

L'un d'entre vous vois t-il l'erreur ?

Zaft

  • # Log

    Posté par  . Évalué à 1.

    Le plus simple, c'est de configurer iptables pour logger les paquets rejetés, ainsi tu vois exactement où est le problème.

    • [^] # Re: Log

      Posté par  . Évalué à 1.

      Merci du conseil. Un truc dans ce genre (google) ?

      -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7

      Je vais essayer. Je suppose que ca tombe dans /var/log/messages.

      • [^] # Re: Log

        Posté par  . Évalué à 1.

        Chez moi ça tombe dans /var/log/syslog.

        • [^] # Re: Log

          Posté par  . Évalué à 1.

          Merci pour l'info. J'ai cherché pas mal de temps, et finalement chez moi par défaut (Centos 7), ca tombe dans la console donc dans dmesg. Je vais modifier ça pour que rsyslog le pose dans un /var/log/iptables.log.

  • # Le FTP est un protocole sale

    Posté par  . Évalué à 2.

    Par défaut curl utilise le mode passif pour le FTP et dans ce cas il faut activer le bon helper :

    -A INPUT -i enp0s -p tcp -m tcp --dport 1024:65535 -m helper --helper ftp -m conntrack --ctstate RELATED -j ACCEPT
    

    Sans ce module, le traqueur de connections sera incapable de marquer la connexion entrante pour le canal de données comme RELATED.

    • [^] # Re: Le FTP est un protocole sale

      Posté par  . Évalué à 1.

      En retard.

      Bon, ca ne marche toujours pas en rajoutant la chaine.

      Le log :
      [ 2991.605932] iptables_INPUT_denied: IN=enp0s3 OUT= MAC=08:00:27:a6:8f:9f:08:00:27:7c:85:5b:08:00 SRC=172.16.0.3 DST=172.16.0.2 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=18738 DF PROTO=TCP SPT=50209 DPT=57719 WINDOW=14600 RES=0x00 SYN URGP=0

      Ca bloque donc sur les ports 50000 et des poussières. Si j'ouvre ces ports ca marche.
      Mon iptable :

      # Generated by iptables-save v1.4.21 on Mon Nov  2 05:43:07 2015
      *filter
      :INPUT ACCEPT [0:0]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [43:46568]
      -A INPUT -p icmp -j ACCEPT
      -A INPUT -i lo -j ACCEPT
      -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
      -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
      -A INPUT -i enp0s3 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
      -A INPUT -i enp0s3 -p tcp -m tcp --dport 1024:65535 -m helper --helper ftp -m conntrack --ctstate RELATED -j ACCEPT
      -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7
      -A INPUT -j REJECT --reject-with icmp-port-unreachable
      -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7
      -A FORWARD -j REJECT --reject-with icmp-port-unreachable
      COMMIT
      # Completed on Mon Nov  2 05:43:07 2015
      

      Mais en y regardant de plus près, la chaine utilise le helper ftp, et le module nf_coontrack_ftp a besoin d'être chargé pour ça.
      Donc un modprobe nf_conntrack_ftp, et là ça marche avec la chaine que tu m'as donné.
      Impeccable donc, j'ai mon serveur avec SELinux et Iptables de up, c'est pas mal.

      Après j'avoue ne pas connaitre ce système de helper. Ca s'utilise pour d'autres choses que les cas particuliers comme le ftp passif ? Parceque j'ai encore pas mal de serveurs à poser et je débute encore dans la matière, autant que je prenne le temps d'explorer la chose si ça vaut le coup… :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.