Tag : Ftp

Problème avec Pure Ftp Mysql et Inetd

Inetd est un démon très avantageux qui active automatiquement un service lorsqu'un client tente de s'y connecter. Il permet donc d'allouer des ressources uniquement quand c'est nécessaire. Suite à une mise à jour des paquets un serveur Debian, je me suis retrouvé avec une erreur lors de la connexion au ftp.

Can't exec "/usr/sbin/pure-ftpd": No such file or directory at /usr/sbin/pure-ftpd-wrapper line 174.

Cette erreur apparaît car inetd a mal été configuré avec pure ftp mysql. Pour la corriger il suffit d'éditer les quelques premières lignes du fichier /usr/sbin/pure-ftpd-wrapper.

Remplacez les trois lignes suivantes :

my $daemon = '/usr/sbin/pure-ftpd';
my @capabilities = @ARGV;
 
if ($ARGV[0]) {
$daemon = "$daemon-$ARGV[0]";
}

Par ceci :

my $daemon = '/usr/sbin/pure-ftpd-mysql';
my @capabilities = @ARGV;
 
#if ($ARGV[0]) {
#$daemon = "$daemon-$ARGV[0]";
#}

On a donc remplacer le chemin du démon et commenté les quelques lignes qui normalement auraient du ajouter "-mysql" au nom du démon.

Vous pouvez ensuite redémarrer inetd, et tout devrait à nouveau fonctionner !
/etc/init.d/openbsd-inetd restart

En espérant vous avoir rendu service !

Ajouter PureFTP dans fail2ban

http://www.maraumax.fr/medias/Billets/fail2ban.pngFail2ban est un excellent framework permettant d'éviter ou du moins limiter les intrusions sur votre serveur. Voici la procédure pour ajouter le serveur ftp PureFTP dans les règles fail2ban. En ajoutant cette règle votre adresse ip peut se retrouver filtré à partir de trois echecs de connexion pendant 10 minutes (par défaut), faites donc attention à vos test !

Ajoutez au fichier /etc/fail2ban/jail.conf dans la section FTP servers de préférence le contenu suivant :

[pure-ftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = pure-ftpd
logpath = /var/log/messages
maxretry = 3

Cette section vas permettre à fail2ban de filtrer (interdire) les ports 21, 20, 990 et 989 en cas de détection d'echec de login dans le fichier /var/log/messages (logs par défaut de PureFtpd)

Le fichier /etc/fail2ban/filter.d/pure-ftpd.conf est normalement crée par défaut sur votre machine, vérifiez son contenu. Il doit ressembler à celà :

# Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: Yaroslav Halchenko for pure-ftpd
#
# $Revision: 3$
#
 
[Definition]
 
# Error message specified in multiple languages
__errmsg = (?:Authentication failed for user|Erreur d'authentification pour l'utilisateur)
 
#
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#         host must be matched by a group named "host". The tag "<HOST>" can
#         be used for standard IP/hostname matching and is only an alias for
#         (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$
 
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Il s'agit de regex permettant de récupérer l'adresse IP d'un echec de connexion à votre serveur ftp.

Pour tester si votre regex est correcte, vous pouvez exécuter la commande suivante après avoir de préférence effectué une mauvaise connexion à votre serveur ftp.

# Test de la regex
fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf

Vous devriez retrouver votre adresse IP dans "Addresses found".

Il faut ensuite re-démarrer le service fail2ban :

# On rédémarre
/etc/init.d/fail2ban restart

Pour vérifier si le filtre à bien été pris en compte, vous pouvez utiliser la commande suivante :

# Test
cat /var/log/fail2ban.log |grep pure-ftpd

Et vous devriez avoir le résultat suivant :

2012-03-27 10:23:10,041 fail2ban.jail   : INFO   Creating new jail 'pure-ftpd'
2012-03-27 10:23:10,041 fail2ban.jail   : INFO   Jail 'pure-ftpd' uses poller
2012-03-27 10:23:10,051 fail2ban.jail   : INFO   Jail 'pure-ftpd' started

Et voilà votre serveur ftp est maintenant géré par fail2ban !

Ignorer certains fichiers avec Filezilla (svn, thumbs.db...)

Le client FTP FileZilla ne cèsse de s'améliorer au fil du temps. Il est possible depuis la version 3 de gérer des filtres permettant d'éviter de transférer (et d'affichier) un fichier ou un dossier.

Ces filtres sont très pratiques si vous souhaitez éviter de transférer par exemple les fichier .svn d'un de vos dépots ou encore les fameux fichiers thumbs.db de Windows.

La procédure pour les activer est très simple :
http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-filtres-de-contenu.jpg

Ensuitre la fenêtre suivante s'ouvre. Il vous suffit de cocher comme moi les deux premières options :
http://www.maraumax.fr/medias/Billets/tutoriels/filezilla-svn-thumbs.jpg

La première permet de filtrer les dossiers des dépots SVN et la seconde le fichiers thumbs.db de windows ! Pensez bien à cocher des deux cotés (Local et Distant)