web-dev-qa-db-fra.com

Fail2Ban / IPTables et Pure-Ftpd

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?

1
QuantumPhysGuy

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
2
QuantumPhysGuy

Comment configurer les ports passifs pour Pure-FTPd (et configurer votre pare-feu):

  1. Définissez le nombre maximal de connexions ftp simultanées dans ce fichier:

    /etc/pure-ftpd/conf/MaxClientsNumber
    

    par exemple:

    50
    
  2. Définissez la plage de ports passifs souhaitée dans ce fichier:

    /etc/pure-ftpd/conf/PassivePortRange
    

    par exemple:

    42420 42520
    

    Conseils:

    • Entrez deux numéros de port séparés par un espace.
    • Ouvrez deux fois plus de ports, comme vous l'avez défini dans MaxClientsNumber, par exemple. MaxClientsNumber = 50 -> ouvrez 100 ports passifs.
    • Les ports doivent être dans une plage de ports libres (non encore utilisés sur votre machine par un autre service et non utilisés par un autre service standard).
    • Exemples de plage de ports passifs: 29100-29200 ou 32770-32870 ou 42420-42520 ou 51899-51999. Voir la liste complète des ports IP standard ici . Vérifiez les ports utilisés sur votre ordinateur avec Sudo iptables -nvL.
  3. 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
    
  4. 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.

0
Bob