Bonjour à tous.
J’ai un petit souci sur mon serveur ftp vsftpd. En effet j’utilise pour la gestion des utilisateurs des users virtuels. J’utlise le script suivant pour la création des comptes :
#!/bin/bash
USER_CONFIG_DIR=/etc/vsftpd/vsftpd_user_conf
Création du fichier de diff
diff /etc/vsftpd/.login_tmp.txt /etc/vsftpd/login.txt | grep “<”|tr -s “<” " " >> /etc/vsftpd/login_diff.txt
db4.4_load -T -t hash -f /etc/vsftpd/login_diff.txt /etc/vsftpd/login_diff.db
chmod 600 /etc/vsftpd/login_diff.db
Sauvegarde du fichier login.txt
cp /etc/vsftpd/login.txt /etc/vsftpd/.login_tmp.txt
Création du fichier db utilisateurs
rm /etc/vsftpd/login.db
db4.4_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
chmod 600 /etc/vsftpd/login.db
Pour tous les noms figurant dans la base de données:
for user in ` db4.4_dump -p /etc/vsftpd/login.db | sed -n 's/^ //p' | sed -n '1,${p;n;}' `
do
## Création des répertoires personnels pour les utilisateurs virtuels
if [ ! -d /home/ftp/$user ]; then
echo "$0: ajout du répertoire personnel /home/ftp/$user pour l'utilisateur virtuel '$user'"
mkdir -p /home/ftp/$user/
chmod 770 /home/ftp/$user/
chown ftp:nogroup /home/ftp/$user/
else
echo "$0[warning]: /home/ftp/$user: omission, ce répertoire existe déja."
fi
## Chrootage des utilisateurs virtuels
if ! grep -q "^local_root=" $USER_CONFIG_DIR/$user 2>/dev/null; then
echo "$0: on chroote '$user'"
echo "local_root=/home/ftp/$user" >> $USER_CONFIG_DIR/$user
echo "anon_world_readable_only=NO" >> $USER_CONFIG_DIR/$user
echo "write_enable=YES" >> $USER_CONFIG_DIR/$user
echo "anon_upload_enable=YES" >> $USER_CONFIG_DIR/$user
echo "anon_mkdir_write_enable=YES" >> $USER_CONFIG_DIR/$user
echo "anon_other_write_enable=YES" >> $USER_CONFIG_DIR/$user
else
echo "$0[warning]: $USER_CONFIG_DIR/$user: '$user' est déjà chrooté."
fi
done
Suppression des configurations personnelles pour les utilisateurs virtuels
for user in db4.4_dump -p /etc/vsftpd/login_diff.db | sed -n 's/^ //p' | sed -n '1,${p;n;}'
do
echo "$0: suppression de la configuration personnelle pour l’utilisateur virtuel ‘$user’"
rm -rf /etc/vsftpd/vsftpd_user_conf/$user
done
Suppression des fichiers temporaires
rm /etc/vsftpd/login_diff.txt
rm /etc/vsftpd/login_diff.db
La creation se passe très bien, mais il y’a un problèmme de droit. Le listing ftp ne se fait pas, ainsi que l’upload et le download.
Mais si je met un chmod 777 sur le répertoire la tout fonctionne bien.
D’ou viens le problème ?
Deuxiemme question…
Pour l’acces sur internet du serveur il faut rajouter ceci dans le fichier de configuration
Configuration du serveur pour un accès à partir d’Internet
Si vous voulez accéder à votre serveur FTP depuis internet, ou si celui-ci se trouve derrière un firewall ou un routeur, il est nécessaire de rajouter les lignes suivantes dans votre fichier /etc/vsftpd.conf
pasv_promiscuous=NO
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=XX.XX.XX.XX ou domaine.com avec pasv_addr_resolve=YES
port_promiscuous=NO
Mais sur la page du wiki une personne à dit :
Attention à cette documentation que je viens de suivre et qui présentait des failles de sécurité importantes (partie connexion depuis le web)! Je n’ai pas tout vérifier en détail mais je vous conseille de vérifier les paramètres données avec le man du site officiel!
D’ou viens la faille en question ?
SOURCE : doc.ubuntu-fr.org/vsftpd
Merci beaucoup.