Guida Autenticazione MySQL per proFTPd

carlino1994

Utente Assiduo
Autore del topic
25 Luglio 2008
961
0
Miglior risposta
0
In questa guida vi spiegherò come configurare proFTPd in modo che l’autenticazione venga eseguita tramite MySQL, così facendo, è possibile creare utenti virtuali senza creare account sul sistema.


Prima di tutto, se non lo avete ancora fatto dovete installare proFTPd e MySQL.
Successivamente accediamo tramite SSH al server.
Installiamo il pacchetto proftpd-mysql:
sudo apt-get install proftpd-mysql
Ora dovremmo configurare un utente e database MySQL usufruendo dell’account root. Vi consiglio di accedere tramite phpMyAdmin:
Creiamo il database:
CREATE DATABASE proftpd;
Creiamo l’utente e diamoli i privilegi sul database:
GRANT CREATE,DROP,SELECT,DELETE,UPDATE,ALTER ON proftpd.* TO proftpd@localhost IDENTIFIED BY ‘password’;
Sostituire password con una password da assegnare all’account proftpd.
Ora creiamo le tabelle, entriamo nel database proftpd e lanciamo questa query:
CREATE TABLE groups (
groupname varchar(30) NOT NULL default ”,
gid int(11) NOT NULL default '0',
members varchar(255) default NULL
) TYPE=MyISAM;

CREATE TABLE users (
userid varchar(30) NOT NULL default ”,
passwd varchar(30) NOT NULL default ”,
uid int(11) default NULL,
gid int(11) default NULL,
homedir varchar(255) default NULL,
shell varchar(255) default NULL,
UNIQUE KEY uid (uid),
UNIQUE KEY userid (userid)
) TYPE=MyISAM

Ora dovremmo configurare proFTPd. Apriamo il file di configurazione /etc/proftpd/proftpd.conf ed inseriamo alla fine di tutto il codice:
AuthOrder mod_sql.c mod_auth_unix.c
SQLAuthenticate on
SQLConnectInfo proftpd@localhost proftpd password
SQLAuthTypes Crypt Backend Plaintext
SQLNegativeCache on
RequireValidShell off
SQLLogFile /var/log/proftpd/mysql.log

Sostituire password con la password impostata per l’utente proftpd.
A questo punto dobbaimo riavviare proFTPd per applicare le modifiche.
/etc/init.d/proftpd reload
Ora prima di creare gli utenti dobbiamo effettuare l’ultimo passo.
Eseguire i seguenti comandi dal terminale o tramite SSH:
cd /home/ftp
sudo mkdir ./users

Creare un utente
In questo passo viene spiegato come creare un utente. Prima di tutto logghiamoci in phpMyAdmin oppure usufruiamo di mysqladmin, entriamo nel database proftpd e lanciamo la seguente query:
INSERT INTO users VALUES ('utenteprova', 'passwordprova', 1004, 65534, '/home/ftp/users/utenteprova', '/bin/false');
Prima di effettuare l’accesso tramite proFPTd dovremmo creare la home per l’utente eseguendo i seguenti comandi dal terminale o SSH:
cd /home/ftp/users
sudo mkdir ./utenteprova
sudo chmod 777 ./utenteprova

Ora l’utente è stato creato è potete accedere tramite il vostro client FTP.

Permettere l'accesso solo alla propria home
Molti si chiedono, come permettere a chiunque abbia accesso all'FTP di visualizzare solo la propria home, e non di girare e scaricare file da tutto il filesystem. Per ovviare a ciò dobbiamo aprire il file di configurazione di proFTPd (se utilizzate l'SSH potete usare l'applicazione nano).
/etc/proftpd/proftpd.conf
Poi trovare:
# DefaultRoot ~
E sostituirlo con:
DefaultRoot ~
Cioè semplicemente togliendo il commento.





Fonte 1: Guida completamente mia! :emoji_slight_smile:
Fonte 2:
Perfavore, Entra oppure Registrati per vedere i Link!
 
Ultima modifica:
  • Like
Reactions: 1 person
Complimenti, già in molti chiedono come autenticare MySQL per proFTPd, dovrebbero metterla in rilievo, evitando così 500 topic di assistenza.
 
Grazie, ora faccio una modifica al post per scrivere come permettere l'accesso agli utenti ftp solo alla propria home e non a tutto il filesystem.
 
Ciao
grazie per la guida. risconto il seguente problema : "421 Service not available, remote server has closed connection" si verifica solo quando inserisco il codice nel proftpd.conf , se disabilitò l'ultima parte si logga correttamente con l'account di sistema.
come posso risolvere questo problema?
grazie

EDIT: Sono riuscito a sistemare il problema (errore mio nelle impostazioni del account mysql)
volevo sapere se si poteva assegnare ad un utente virtuale + cartelle magari con permessi diversi

Wablo
 
Ultima modifica: