#!/bin/bash # ftp ftp_root="/home/ftp" ftp_host="ftp.host.com" ftp_port="21" ftp_user=$1 ftp_passwd=`pwgen -y 12 1` ftp_owner="www-data:www-data" ftp_perm="555" ftp_uid="33" ftp_gid="33" # mysql mysql_user="PUREUSER" mysql_db_name="DBNAME" mysql_table="TABLE" mysql_passwd="PASSWORD" # lftp lftp_bin="/usr/bin/lftp" function usage { echo "Usage:" echo "$0 ftp_user" } if [[ $1 == "" ]]; then usage exit 1 fi if [ ! -d "$ftp_root/$ftp_user" ]; then echo "create user home dir $ftp_root/$ftp_user" mkdir $ftp_root/$ftp_user chown $ftp_owner $ftp_root/$ftp_user chmod $ftp_perm $ftp_root/$ftp_user echo "create user $ftp_user" mysql -u"$mysql_user" -p"$mysql_passwd" <<EOF INSERT INTO $mysql_db_name.$mysql_table (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles) VALUES ('$ftp_user', '1', MD5('$ftp_passwd'), '$ftp_uid', '$ftp_gid', '$ftp_root/$ftp_user', '0', '0', '', '*', '0', '0'); EOF echo "## FTP USER ##" echo "host: $ftp_host" echo "port: $ftp_port" echo "login: $ftp_user" echo "password: $ftp_passwd" echo "## TEST ACCOUNT ##" if [ -f "$lftp_bin" ]; then $lftp_bin -u $ftp_user,$ftp_passwd localhost -e "ls;quit" else echo "lftp ($lftp_bin) not found" fi echo "done." else echo "user $ftp_user already exists" fi
Tag Archives: pureftpd
LINUX comment cree un serveur ftp avec pureftpd et mysql
Ce we pendant mes moments perdu et dieu sait qu’ils ne sont pas nombreux :p
J’ai installé un serveur pureftpd avec le support de mysql, gestion des quota et gestion de bande passante.
Donc voila un tuto très bien fais, en gros si on a des bases suffisante, c’est terminer en 5 minutes.
This document describes how to install a PureFTPd server that uses virtual users from a MySQL database instead of real system users. This is much more performant and allows to have thousands of ftp users on a single machine. In addition to that I will show the use of quota and upload/download bandwidth limits with this setup. Passwords will be stored encrypted as MD5 strings in the database.
For the administration of the MySQL database you can use web based tools like phpMyAdmin which will also be installed in this howto. phpMyAdmin is a comfortable graphical interface which means you do not have to mess around with the command line.
source
Pour le TLS , sécurité tout ça, tout ça :p
1 2 3 | mkdir -p /etc/ssl/private openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem chmod 600 /etc/ssl/private/*.pem |
Et on restart pureftpd avec l’option
–tls=1 : Connexions de client normaux ou sécurisé autorisé.
–tls=2 : Seul les clients sécurisés peuvent se connecter.