
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:
FTP casalingo con PURE-FTPD
urpmi.update -a
urpmi MySQL MySQL-client phpmyadmin
Ho abilitato i servizi direttamente da riga di comando:
chkconfig mysqld onchkconfig 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 ftpgroupuseradd -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_origcat /dev/null > /etc/pure-ftpd/pureftpd-mysql.confvi /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/ftpcd /home/ftpchmod 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:
vi pureadmin.desktop
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: 