J'ai pur-ftpd fonctionnant sur le serveur Web avec Fail2Ban. Fail2Ban autorise les connexions Apache2 mais refuse toute connexion FTP à partir d'un hôte autre que local. J'ai tenté de modifier les fichiers jail.local et jail.conf mais j'ai toujours des problèmes.
Voici la section pure-ftpd de mon fichier jail.local:
[pure-ftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = pure-ftpd
logpath = /var/log/auth.log
maxretry = 6
Voici une vue de mes iptables -L -n:
Chain INPUT (policy DROP)
target prot opt source destination
fail2ban-postfix tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190
fail2ban-dovecot tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190
fail2ban-roundcube tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190
fail2ban-ssh tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
fail2ban-pure-ftpd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 21,20,990,989
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-dovecot (1 references)
Si j'exécute manuellement les commandes suivantes, FTP fonctionne (comme actif, ne peut toujours pas fonctionner de manière passive), mais je veux vraiment que cela fonctionne avec Fail2Ban:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
Des idées sur la façon d'obtenir le fail2ban pour configurer correctement iptables? Sinon, quelles règles dois-je définir pour que le FTP actif et passif fonctionne correctement?
J'ai trouvé la configuration IPTABLES par défaut dans/etc/default/iptables et ajouté les éléments suivants et redémarré le service iptables et ftp fonctionne maintenant:
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
Comment configurer les ports passifs pour Pure-FTPd (et configurer votre pare-feu):
Définissez le nombre maximal de connexions ftp simultanées dans ce fichier:
/etc/pure-ftpd/conf/MaxClientsNumber
par exemple:
50
Définissez la plage de ports passifs souhaitée dans ce fichier:
/etc/pure-ftpd/conf/PassivePortRange
par exemple:
42420 42520
Conseils:
Sudo iptables -nvL
.Ports ouverts dans le pare-feu:
Puis-je suggérer d'utiliser UFW en plus d'iptables? Cela rendra la définition des règles de pare-feu beaucoup plus facile pour vous et rendra vos règles persistantes.
Chaque fois que vous changez des choses sur votre pare-feu, veillez à ne pas vous verrouiller de votre machine! Vérifiez que le port 22/ssh est ouvert si vous êtes connecté via ssh.
Installez UFW, refusez tout trafic entrant (fermez tout d'abord, puis ouvrez simplement les ports nécessaires), ouvrez le port 22/ssh, puis démarrez UFW:
Sudo apt-get install ufw
Sudo ufw default deny incoming
Sudo ufw default allow outgoing
Sudo ufw allow ssh
Sudo ufw enable
Ports ouverts pour FTP: (veuillez remplacer 42420: 42520 par vos propres ports.)
Sudo ufw allow ftp
Sudo ufw allow proto tcp from any to any port 42420:42520
Ports ouverts pour votre serveur Web:
Sudo ufw allow http
Sudo ufw allow https
Ouvrez les ports pour votre serveur de messagerie: (peut-être que vous n'avez pas besoin de tous ces ports. Pour de bons conseils, voir ici .)
Sudo ufw allow 25
Sudo ufw allow 110
Sudo ufw allow 143
Sudo ufw allow 465
Sudo ufw allow 587
Sudo ufw allow 993
Sudo ufw allow 995
Sudo ufw allow 4190
Enfin, vérifiez vos paramètres et activez-les de manière permanente:
Sudo ufw status verbose
Sudo ufw disable
Sudo ufw enable
Dernière étape: vérifiez à nouveau si l'installation UFW a pris en charge toutes vos règles iptables antérieures - et si ce n'est pas le cas, supprimez-les manuellement.
iptables -nvL --line numbers
iptables -D INPUT X
Remplacez X par le numéro de ligne que vous avez lu dans la sortie de la première commande et répétez (les deux commandes!) Pour chaque règle iptables que vous souhaitez supprimer.
Surtout vérifiez à nouveau cette règle iptables sur la chaîne IPUT (comme vu sur vos données ci-dessus) avec l'option '-v' Sudo iptables -nvL
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Si vous voyez une colonne qui dit "lo" dans cette ligne, alors tout va bien et rien ne doit être fait ici. S'il n'y a pas de "lo" dans cette ligne, cela pourrait signifier que votre pare-feu acceptera tout le trafic sur tous les ports (comme si vous n'aviez aucun pare-feu) et qu'il devrait être supprimé.
Maintenant, vous devriez avoir Pure-FTPd acceptant les ports passifs et la configuration UFW comme simple pour gérer la gestion du pare-feu.