7.3. Filtrage

Comme pour les autres services, il faudra ouvrir le port correspondant au service ftp (21/tcp).

#
# ######################################
# TCP entrant
# Il faudra ouvrir des ports au fil de l'eau
# lors de la mise en place de 
# services TCP (ssh, apache, ...).
# ######################################
#
-A TCP_IN -j TCP_INLIMITS
-A TCP_IN -j STATEFUL
-A TCP_IN -j TCP_SYNLIMITS
-A TCP_IN -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m limit --limit 10/min -j LOG --log-prefix "TCP_IN:" --log-level 6 
-A TCP_IN -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -j DROP
#
# Ajouter les rêgles ici lors de l'installation de services TCP si ces services
# doivent être ouverts
#
-A TCP_IN -s adresse_ip_autorisée -p tcp --dport 21 -j ACCEPT ❶
# on peut aussi débloquer le port 21 pour tout le monde
-A TCP_IN -p tcp --dport 21 -j ACCEPT ❷
#

Régle autorisant l'accès au port 21/tcp (ftp) pour l'adresse adresse_ip_autorisée (qui peut aussi être un subnet). Cette règle peut être répétée autant de fois que nécessaire.

Régle autorisant l'accès au port 21/tcp (ftp) pour tout le monde.

Mais concernant le protocole FTP, il y a une subtilité que l'on ne trouve pas ailleurs. Ce protocole nécessite deux connexions pour fonctionner. Un connexion de contrôle, qui est initiée par le client vers le port 21 du serveur. C'est par elle que transite l'authentification et les ordres envoyés par le client. Mais FTP à aussi besoin d'une connexion data. C'est par cette connexion que transiteront les données. La situation pour l'établissment de ce canal de données est moins simple, puisque protocole FTP a deux mode de fonctionnement, et que selon ce mode, c'est le client ou le serveur qui va se connecter à l'autre partie pour établir le canal de données.

Ces deux modes sont parfaitement supportés par netfilter/iptables. Un module spécialisé (nf_conntrack_ftp) scrute les connexion FTP et permet aux canaux de contrôle de s'établir sans problème, aussi bien en mode passif qu'en mode actif. Mais nous reviendrons là dessus plus tard dans le chapitre sur le chiffrement (Section 10.3.2, « FTP/TLS »), car cette particularité du protocole FTP nous posera alors un réèl problème.