Je souhaite autoriser le trafic FTP entrant.
CentOS 5.4:
Voici mon /etc/sysconfig/iptables
dossier.
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
De plus, par défaut, le module ip_conntrack_netbios_n est chargé.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Mais le problème n'est pas avec ce module, car j'ai essayé de le décharger et toujours pas de chance.
Si je désactive iptables, je peux transférer ma sauvegarde d'une autre machine vers FTP. Si iptables est en vigueur, le transfert a échoué.
la source
--sport 1024: and --dport 1024:
signifie que nous incluons tous les ports de la gamme1024:32535
qui sont des ports non privilégiés, ce qui signifie que les utilisateurs sans accès privilégié peuvent utiliser ces ports pour tester leurs applications.--sport
pour être un mode non privilégié pour les problèmes de pare-feu privé et permettre aux clients de se connecter au serveur.NEW,ESTABLISHED
mais cela ne devrait pas avoir d'importance. Une connexion est d'abord toujours dans unNEW
état puis elle saute versRELATED
ce qui indique que cette connexion est liée à une connexion déjà autorisée. Lorsque la connexion change d'ESTABLISHED
état, elle nous informe qu'une connexion a été établie des deux côtés (serveur / client). Vous pourriez essayer à la-m state --state ...
place.NEW
fait compte vraiment. Cela ne semble pas fonctionner sans cela.--sport 1024:
. Pourquoi le port du client serait-il utile pour la règle? S'il se connecte d'un port 80 aux ports passifs du serveur, il doit également être autorisé à se connecter.J'ai déjà vu des règles aussi complètes dans plusieurs blogs, etc. et je me suis demandé pourquoi ne pas simplement utiliser
avec le
nf_conntrack_ftp
module. C'est plus concis et lisible, ce qui est généralement une bonne chose, surtout avec les pare-feu ...FWIW, il semble qu'il y ait eu un changement dans le noyau 4.7, de sorte que vous devez soit définir
net.netfilter.nf_conntrack_helper=1
viasysctl
(par exemple le mettre/etc/sysctl.d/conntrack.conf
), soit utiliser(voir ici pour plus de détails)
la source
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helper
et tout fonctionne comme prévu.Client FTP:
SERVEUR FTP:
Pour basculer entre le mode passif et le mode actif côté client
la source
L'ajout de NEW l'a corrigé, je crois.
Maintenant, mon fichier iptables ressemble à ceci ..
Taper comme réponse, car trop de caractères ne sont pas autorisés dans les commentaires. Merci beaucoup pour votre aide.
la source
--dport 20:65535
laisse tous les ports de 20 à 65535 ouverts à partir de n'importe quel port source entre 1024: 65535, ce qui laisse de nombreux services exposés qui ne devraient probablement pas l'être, sauf autorisation explicite. Je crois que ce qui était prévu est--dport 1024:65535
Si vous avez besoin de connexions actives et passives et acceptez déjà des
ESTABLISHED
connexions, telles que:Il vous suffit ensuite d'ouvrir le port 21 et d'ajouter une règle spéciale pour les ports passifs. Aucune règle n'est nécessaire pour le port 20 car elle est déjà acceptée par la
ESTABLISHED
règle ci-dessus.Acceptez d'abord les nouvelles connexions sur
port 21
:Ajoutez ensuite l'assistant CT pour les ports passifs
1024:
:Voir également:
Remarque: vous devez définir le
1024:
comme dans votre serveur FTP: recherchez les ports passifs par défaut dans votre configuration FTP. Sinon, vous ouvririez trop de ports qui ne sont peut-être pas relatifs à FTP.Remarque importante: je n'ai pas ajouté de
OUTPUT
règles car mes valeurs par défaut vont de pairiptables -P OUTPUT ACCEPT
. Ce qui signifie que je fais confiance à ce qui sort de ma boîte. Ce n'est peut-être pas une bonne option, en particulier dans une configuration NAT.Remarque très importante: FTPS ne fonctionnera pas avec une telle configuration, car le port passif est caché (crypté), il n'y a donc aucun moyen
iptables
de deviner le bon port. Voir Modification des IPTables pour autoriser FTP sur TLS à l'aide de ports passifs et https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-okla source