attention ce tuto n'est plus à jour, retrouver le plus récent ici :
http://infopolux.blogspot.fr/2014/07/serveur-de-partage-de-fichiers-ftp.html
Inspiré du tutoriel de notre communauté ubuntu ici
1/ install de vsftpd
trop dur ... sudo apt-get install vsftpd
voici le petit fichier qui en découle avec une tite config qui fonctionne
dans \etc\vsftpd.conf
# Ceci configure vsFTPd en mode "standalone"
listen=YES
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
# Uncomment this to allow local users to log in.
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
use_localtime=YES
# Activate logging of uploads/downloads.
xferlog_enable=YES
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
# You may change the default value for timing out an idle session.
idle_session_timeout=600
# You may change the default value for timing out a data connection.
data_connection_timeout=120
# You may fully customise the login banner string:
ftpd_banner=Welcome to fuckin'sftp jungle
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_local_user=NO
#chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
#to log users connected
setproctitle_enable=YES
# Options for SSL
# encrypted connections.
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#ici le port choisi, attention aux pare-feu
listen_port=228
#pour les connections externes veiller à ouvrir et rediriger cette plage
#mode passif
pasv_enable=YES
pasv_promiscuous=NO
pasv_min_port=46000
pasv_max_port=54000
#ici ip publique
pasv_address=xx.xxx.xx.xxx
#ou domaine.com avec pasv_addr_resolve=YES
port_promiscuous=NO
#indique ou se trouvent les dossiers utilisateurs externes par variable
local_root=/srv/ftp/$USER
user_sub_token=$USER
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
#l'utilistateur virtuel
guest_username=virtual
virtual_use_local_privs=YES
#lieu ou se trouve la config des utilisateurs
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pam_service_name=vsftpd
hide_ids=YES
à chaque modif de ce fichier relancer le deamon :
sudo /etc/init.d/vsftpd restart
2 / Creation du certificat
sudo apt-get install openssl
puis
mkdir ~/SSL-cert-vsftpd && cd ~/SSL-cert-vsftpd puis openssl req -x509 -nodes -days 730 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pemrépondre aux differentes questions posées de la console...
à cette question :
Common Name (eg, YOUR name) []: saisir l ip ou nom de domaine de votre serveur puis , sudo cp ~/SSL-cert-vsftpd/vsftpd.pem /etc/ssl/certs/ sudo chown root:root /etc/ssl/certs/vsftpd.pem sudo chmod 600 /etc/ssl/certs/vsftpd.pem 3/ Configuration des utilisateurs virtuels ou non locaux installer les paquets libdb4.7 db4.7-util db4.7-doc . Ipuis,effacer le contenu du fichier /etc/pam.d/vsftpd et le remplacer par :
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login account required /lib/security/pam_userdb.so db=/etc/vsftpd/login puis créer un fichier login.txt dans /etc/vsftpd/ avec les futurs utilisateurs virtuels sous cette forme : toto motdepassetoto tata motdepassetata -> l' utilisateur toto a pour mot de passe "motdepassetoto"... sauter une ligne ou deux avant d'enregistrer le fichier.(recommandé) convertir au format "db": sudo db4.7_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db on securise sudo chmod 600 /etc/vsftpd/login.* virer le fichier txt on doit ensuite definir les droits de nos utilisateurs virtuels dans le fichier : /etc/vsftpd/vsftpd_user_conf/toto (toto étant un utilisateur virtuel extrait : ## l'utilisateur est enfermé dans un dossier déterminé local_root=/srv/ftp/toto/ #ne pas oublier de rendre l'utilisateur virtual proprietaire chown virtual:virtual /srv/ftp/ ## droit de lecture(download) anon_world_readable_only=NO ## droit d'écriture(upload) write_enable=YES anon_upload_enable=YES ## créer des dossiers anon_mkdir_write_enable=YES ## droit de renommer, supprimer... anon_other_write_enable=YES ## pour gérer le chmod de l'utilisateur ## activer l'option virtual_use_local_privs=YES ## définir l'option local_umask local_umask=022 anon_umask=022 puis tester avec un client filezilla un en local et un hors serveur pour detecter les problèmes de pare-feu site configuré comme suit
4/ Quelques commandes pour voir quiqui qu'est connecté : watch -n 1 'ps ax | grep vsftpd | grep -v grep'
Aucun commentaire:
Enregistrer un commentaire