Per questioni di lavoro, visto che dovevo trasferire una quantità enorme di dati da un pc all'altro ho realizzato un server FTP molto semplice tra l'altro da configurare ed intuitivo.
Per prima cosa ho installato MySQL e PHPmyadmin con i seguenti comandi:
urpmi.update -a
urpmi MySQL MySQL-client phpmyadmin
Ho abilitato i servizi direttamente da riga di comando:
chkconfig mysqld on chkconfig httpd on
e ho fatto partire i servizi:
/etc/init.d/mysqld start /etc/init.d/httpd restart
Ho creato la password per Mysql digitando questo comando:
mysqladmin -u root password vostrapassword
Configurato Mysql installo pure-ftp con supporto Mysql:
urpmi pure-ftpd pure-ftpd-anon-upload pure-ftpd-anonymous
Una volta installato pure creare l'utente e il gruppo per il server ftp:
groupadd -g 2001 ftpgroup useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
Adesso creare il database per Pure-ftpd:
mysql -u root -p
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'vostrapassword';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
Ora dobbiamo creare la tabella per i virtualserver:
USE pureftpd;
CREATE TABLE ftpd ( User varchar(16) NOT NULL default '', status enum('0','1') NOT NULL default '0', Password varchar(64) NOT NULL default '', Uid varchar(11) NOT NULL default '-1', Gid varchar(11) NOT NULL default '-1', Dir varchar(128) NOT NULL default '', ULBandwidth smallint(5) NOT NULL default '0', DLBandwidth smallint(5) NOT NULL default '0', comment tinytext NOT NULL, ipaccess varchar(15) NOT NULL default '*', QuotaSize smallint(5) NOT NULL default '0', QuotaFiles int(11) NOT NULL default 0, PRIMARY KEY (User), UNIQUE KEY User (User) ) TYPE=MyISAM;
quit
Adesso dobbiamo configurare pure-ftpd:
vi /etc/pure-ftpd/pure-ftpd.conf
Abilitare queste righe di codice togliendo il #:
[...] ChrootEveryone yes [...] MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf [...] CreateHomeDir yes
Ora dobbiamo editare il file mysql di pure-ftpd:
cp /etc/pure-ftpd/pureftpd-mysql.conf /etc/pure-ftpd/pureftpd-mysql.conf_orig cat /dev/null > /etc/pure-ftpd/pureftpd-mysql.conf vi /etc/pure-ftpd/pureftpd-mysql.conf
Nel nuovo file di pureftpd-mysql inserire questo codice:
MYSQLSocket /var/lib/mysql/mysql.sock #MYSQLServer localhost #MYSQLPort 3306 MYSQLUser pureftpd MYSQLPassword ftpdpass MYSQLDatabase pureftpd #MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
Ora riavviamo pure-ftpd:
/etc/init.d/pure-ftpd start
Dobbiamo adesso spostare la cartella ftp che si trova in var in home:
mv /var/ftp /home
;
Cambiamo i permessi alle cartelle:
chown -R ftp:nogroup /home/ftp cd /home/ftp chmod 311 incoming/ chmod 555 pub/ cd ../ chmod 555 ftp/
Editare il file pure-ftpd:
vi /etc/pure-ftpd/pure-ftpd.conf
Decommentare le seguenti linee se hanno il # davanti oppure editarle in questo modo:
[...] NoAnonymous no [...] AntiWarez no [...] AnonymousBandwidth 8 [...] AnonymousCantUpload no [...]
Riavviamo il servizio:
/etc/init.d/pure-ftpd restart
Per concludere installiamo pure-admin:
urpmi pureadmin
Andiamo ad editare nuovamente il file di configurazione di pure-ftpd:
vi /etc/pure-ftpd/pure-ftpd.conf
Decommentiamo questa linea di codice:
# PureDB user database (see README.Virtual-Users) #PureDB /etc/pure-ftpd/pureftpd.pdb
in questo modo:
# PureDB user database (see README.Virtual-Users) PureDB /etc/pure-ftpd/pureftpd.pdb
Riavviamo il servizio:
/etc/init.d/pure-ftpd restart
Purtroppo non parte come utente root quindi per chi usa l'icona sul desktop basta modificarla ed inserire kdesu pureadmin.
Mentre chi lo vuole modificare completamente basta andare in /usr/share/applications e modificare in questo modo:
Exec=kdesu pureadmin
Una volta avviato potete creare tutti gli utenti virtuali che desiderate.
Per vedere se l'ftp è stato configurato correttamente e gli utenti virtuali creati da console fare cosi:
ftp 127.0.0.1
Connected to 127.0.0.1. 220---------- Welcome to Pure-FTPd ---------- 220-You are user number 1 of 50 allowed. 220-<< 220-Linux: Where Don't We Want To Go Today? 220- -- Submitted by Pancrazio De Mauro, paraphrasing some well-known sales talk 220->> 220-Local time is now 15:51. Server port: 21. 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. 500 This security scheme is not implemented Name (127.0.0.1:vostronomeutente):admin( io ho creato questo utente per prova ) 331 User admin OK. Password required Password:(inserire la password che avete dato e premere invio)
Questo dovrebbe essere il risultato:
230-User admin has group access to: 10002 230 OK. Current directory is / Remote system type is UNIX. Using binary mode to transfer files. ftp>
Se è così avete adesso configurato il vostro ftp personale.Potete anche accedervi da filezilla, gftp o altri.
Funziona anche in rete locale con l'indirizzo ip della vostra macchina assegnata dal vostro router.
Buona configurazione.
P.S: ecco gli screen
Questo è lo screen per come accedere dal browser:
Questo invece da shell:
Questo da filezilla oppure per chi usa gftp o altro:
Commenti
Inviato da Moreno il Gio, 25/03/2010 - 07:21.
Re: FTP casalingo con PURE-FTPD
Ciao
Guida molto interessante anche perché spazia su vari argomenti.
Una domanda, come mai fai installare phpmyadmin con tutta la sfilza di dipendeze che arrivano sino ad Apache se poi nella guida non viene mai usato??
Ciao Ciao, Moreno
Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.
Inviato da specialworld83 il Gio, 25/03/2010 - 14:29.
Re: FTP casalingo con PURE-FTPD
In teoria non seriverebbe, ma in realtà si, perchè puoi controllare tutto il db da interfaccia grafica.
Mandriva 2010.2 , kernel 2.6.36-desktop, kde-4.5.5, gnome 2.32
http://www.codelinsoft.it
Fabaria Gest, gestionale azieandale
Open Library, gestionale per biblioteche
Inviato da Nick78 il Ven, 26/03/2010 - 21:01.
Re: FTP casalingo con PURE-FTPD
Funziona tutto da me, davvero una bella guida. Una sola cosa, per chi ha KDE4 non esiste più il comando kdesu, pureadmin l'ho fatto partire con su - pwd di root e poi pureadmin, tutto da terminale ovviamente. Dal menu grafico, da utente, non funziona pureadmin.
Ciao ciao!!
Nicola
NiCk on Mandriva 2011 - Asus K61IC - P8700 - 4Gb Ram - KDE SC 4.6.5 - Kernel 3.0.1 - Nvidia GT_220M 1Gb - Linux registered user #496729 - www.nickworlds.it - Samsung Galaxy S3 Android 4.0.3
Inviato da specialworld83 il Sab, 27/03/2010 - 14:20.
Re: FTP casalingo con PURE-FTPD
Funziona il comando kdesu anche in kde 4.4.1, lo provato personalmente e posso garantiri che c'è.Per chi usa gnome basta invece digitare gtksu.
Mandriva 2010.2 , kernel 2.6.36-desktop, kde-4.5.5, gnome 2.32
http://www.codelinsoft.it
Fabaria Gest, gestionale azieandale
Open Library, gestionale per biblioteche
Inviato da Nick78 il Sab, 27/03/2010 - 15:37.
Re: FTP casalingo con PURE-FTPD
Il pacchetto libkdesu sembra sia installato, ma comunque non trovo il comando. Proverò a cercare meglio.
Ciao ciao!!
Nicola
NiCk on Mandriva 2011 - Asus K61IC - P8700 - 4Gb Ram - KDE SC 4.6.5 - Kernel 3.0.1 - Nvidia GT_220M 1Gb - Linux registered user #496729 - www.nickworlds.it - Samsung Galaxy S3 Android 4.0.3