FTP casalingo con PURE-FTPD

Mer, 24/03/2010 - 16:58

FTP casalingo con PURE-FTPD

Inviato da specialworld83 5 commenti

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

Ritratto di Moreno
#1

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.



Ritratto di specialworld83
#2

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



Ritratto di Nick78
#3

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



Ritratto di specialworld83
#4

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



Ritratto di Nick78
#5

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