Questions en vrac sur iptables et les ports

Je suis entrain d’essayer de mieux comprendre iptables et les ports (WE studieux :wink: ) et je vais poser qq questions qui restent en suspens.
je prends l’exemple d’un port qui est, il me semble, indispensable : le ‘20’

ftp-data 20/tcp File Transfer [Default Data] ftp-data 20/udp File Transfer [Default Data]
question : faut-il systématiquement l’ouvrir en ‘ALL’ ou’tcp’ suffit :question: et ds ce cas, pourquoi :question:

A ma connaissance tout le FTP se fait en TCP. C’est le TFTP qui utilise UDP.

Indispensable en quoi ? Il ne me paraît pas indispensable, à moi.

Qu’entends-tu par “ouvrir” ?
Qu’entends-tu par “ALL” ? -p all ? FTP n’utilise que le transport TCP, et de toute façon on ne peut pas spécifier de port dans une règle iptables sans -p tcp ou -p udp.

Indispensable en quoi ? Il ne me paraît pas indispensable, à moi.

Qu’entends-tu par “ouvrir” ?
Qu’entends-tu par “ALL” ? -p all ? FTP n’utilise que le transport TCP, et de toute façon on ne peut pas spécifier de port dans une règle iptables sans -p tcp ou -p udp.[/quote]
excusez-moi votre Honneur, je croyais, c’est tout.
le déclarer ds iptables comme ACCEPT :smt002
excuse-moi, une seconde fois, je croyais que l’on pouvait mettre :
-p ALL
-p 0
-p
-p 7
-p je ne sais plus

faudra que je relise mes notes. 8)

Tout dépend du niveau de filtrage que tu veux établir (IN seul ou IN & OUT), et aussi du type de FTP, actif ou passif? Serveur ou client? Le protocole FTP n’a pas la réputation d’être un protocole simple pour les firewall.

[quote]FTP connections are quite hard to do connection tracking on in normal cases…
iptables-tutorial.frozentux.net/ … orial.html
[/quote]
Un lien trouvé entre plein d’autres:
sns.ias.edu/~jns/wp/2006/01/ … cking-ftp/

Ou bien ces tuto:
iptables-tutorial.frozentux.net/ … orial.html
christian.caleca.free.fr/netfilter/

merci pour les liens mais j’ai passé la journée d’hier à les consulter, entre-autres, celui de frozentux qui est très complet (je l’ai trouvé en FR , traduit d’excellente manière). Par contre, il date un peu.

c’est un server ta bestiolle ?
non ? dans ce cas pas de ports spécifique a ouvrir

cela devrais suffire , je pense

iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp -j DROP iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

ricardo :
C’est joli tout plein ces couleurs ! :slightly_smiling:

Port 20 indispensable ?
Le port 20/tcp sert pour les transferts FTP en mode actif. Si tu n’as pas de serveur FTP et que tu n’utilises que le mode FTP passif (comme la majorité des clients FTP actuels et navigateurs), tu n’as pas besoin de ce port.

ouvrir un port = déclarer dans iptables comme ACCEPT
Ça reste vague. Est-ce en INPUT, FORWARD ou OUTPUT, en tant que port source ou destination… ?
Lorsqu’une connexion de données en mode actif est créée, le port 20 est le port source d’une connexion sortante pour le serveur et entrante pour le client. D’autre part, si le suivi de connexion FTP est actif, le premier paquet des connexions de données ont l’état RELATED aussi bien en mode passif qu’en mode actif, ce qui évite de se casser la tête.

-p et port
On peut spécifier n’importe quel protocole dans l’option -p, mais on ne peut spécifier de port avec une option --dport ou --sport que si le protocole a la notion de port. La notion de port existe pour les protocoles TCP, UDP et quelques autres moins connus (hélas) comme SCTP, mais pas pour ICMP ou GRE (47) par exemple.

En fait les options --dport et --sport ne sont pas des options de base d’iptables comme peuvent l’être -p (protocole), -s (adresse source), -d (adresse destination), -i (interface d’entrée)… Ce sont des options propres à certaines “correspondances” (invoquées avec l’option -m), au même titre que par exemple l’option --state de la correspondance state. De même que l’option --state ne fonctionne qu’avec -m state, les options --dport et --sport ne fonctionnent qu’avec certaines correspondances comme -m tcp ou -m udp. Ces correspondances de protocoles ont la particularité d’être invoquées implicitement lorsque l’option -p spécifie le protocole correspondant (-p tcp = -p tcp -m tcp) c’est pourquoi on les omet souvent, et bien sûr ne sont valides qu’avec ce protocole.

scorpio81 :

NOOOOOOON ! :angry:
On ne bloque pas les paquets ICMP n’importe comment, et surtout pas ceux qui sont dans l’état RELATED ou ESTABLISHED, c’est-à-dire liés ou appartenant à des connexion existantes, et donc qui auraient été acceptés par la règle suivante. Pour illustrer à quel point cette règle est stupide, elle bloque les réponses aux pings émis par la machine !