salta alla navigazione

Installazione e configurazione del server Pure-FTPD in ambiente chroot 16 dicembre 2006 - 2:56

Inviato da Antonio De Luci (imu) in : Debian, Guide, Linux, O.S. Revolution, Only Nerd, Tips , trackback
Articolo scritto da astars

debian pure ftp

NOTA:
Dove c’è il cancelletto # si intende esclusivamente l’uso del comando tramite root oppure sudo, fatta eccezione per la redirezione del comando echo, in tale evenienza sostituire echo con un editor per poter scrivere sui file, alcuni comandi vanno a capo causa layout di wordpress,si prega di scriverli tutti su una riga

Potete scaricare i sorgenti da qui:

http://www.pureftpd.org

Posizionatevi in /usr/local e scaricate l’ultima versione di pure-ftp trovata sul sito con il seguente comando:

$ wget -c ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz

Scompattate i sorgenti :

$ tar -zxvf pure-ftpd-1.0.21.tar.gz

Una volta estratti i sorgenti entrate nella directory che si e’ appena creata :

$ cd pure-ftpd-1.0.21

ed avviate la configurazione e compilazione dei sorgenti in questo modo:

installate il necessario per la compilazione con ” sudo apt-get install build-essential”

$ ./configure --with-ftpwho --with-paranoidmsg --with-puredb --withprivsep --with-quotas --without-banner

$ make

# make install

File di avvio (questo file e’ da creare solo se non esiste ), potete verificarlo con il seguente comando:

# updatedb && locate rc.local

Se non c’e’ create il file /etc/rc.local cosi che potrete lanciare pure-ftpd(SERVER)

Per fare questo digitate quanto segue:

# echo '#!/bin/sh' >> /etc/rc.local

# ln -s /etc/rc.local /etc/rcS.d/S99rclocal

Utente e gruppo

Adesso create l’utente e il gruppo per il server usando questi comandi:

# groupadd ftpgroup

# useradd -g ftpgroup -d /dev/null -s /etc ftpuser

gabbia

A questo punto mettete tutto in “gabbia” chroot, userete come directory per il chroot /var/chroot.

NOTA
Vi consiglio di crearvi un bash script che faccia tutto in un colpo solo tipo pureftpd-chroot.sh.
Vi metto direttamente tutto senza dovervi fare la ricerca delle librerie per ogni cosa con il comando ldd.
Nel caso in cui non abbiate determinate librerie, installatele e riprovate.

Copiate questo script:

#!/bin/bash
#Creazione della struttura della gabbia chroot
mkdir /var/chroot
mkdir /var/chroot/pureftpd
mkdir /var/chroot/pureftpd/bin
mkdir /var/chroot/pureftpd/sbin
mkdir /var/chroot/pureftpd/lib
mkdir /var/chroot/pureftpd/etc
mkdir /var/chroot/pureftpd/man
mkdir /var/chroot/pureftpd/dev
echo "Struttura chroot creata."
#Copia delle librerie all'interno della struttura
cp /lib/ld-linux.so.2 /var/chroot/pureftpd/lib/
cp /lib/libcrypt.so.1 /var/chroot/pureftpd/lib/
cp /lib/libdl.so.2 /var/chroot/pureftpd/lib/
cp /lib/libc.so.6 /var/chroot/pureftpd/lib/
cp /lib/libncurses.so.5 /var/chroot/pureftpd/lib/
echo "Librerie inserite."
#Copia dei sorgenti all'interno della struttura chroot
cp /usr/local/bin/pure-pw /var/chroot/pureftpd/bin/
cp /usr/local/bin/pure-pwconvert /var/chroot/pureftpd/bin/
cp /usr/local/bin/pure-statsdecode /var/chroot/pureftpd/bin/
cp /bin/sh /var/chroot/pureftpd/bin/
cp -r /usr/local/man/man8 /var/chroot/pureftpd/man/
cp /usr/local/sbin/pure-authd /var/chroot/pureftpd/sbin/
cp /usr/local/sbin/pure-ftpd /var/chroot/pureftpd/sbin/
cp /usr/local/sbin/pure-ftpwho /var/chroot/pureftpd/sbin/
cp /usr/local/sbin/pure-mrtginfo /var/chroot/pureftpd/sbin/
cp /usr/local/sbin/pure-quotacheck /var/chroot/pureftpd/sbin/
cp /usr/local/sbin/pure-uploadscript /var/chroot/pureftpd/sbin/
echo "Copa sorgenti effettuata."
#Cancellazione installazione di default
rm -rf /usr/local/pure-ftpd-1.0.18.tar.gz
rm -rf /usr/local/pure-ftpd-1.0.18
rm -rf /usr/local/bin/pure-pw
rm -rf /usr/local/bin/pure-pwconvert
rm -rf /usr/local/bin/pure-statsdecode
rm -rf /usr/local/man/man8
rm -rf /usr/local/sbin/pure-authd
rm -rf /usr/local/sbin/pure-ftpd
rm -rf /usr/local/sbin/pure-ftpwho
rm -rf /usr/local/sbin/pure-mrtginfo
rm -rf /usr/local/sbin/pure-quotacheck
rm -rf /usr/local/sbin/pure-uploadscript
echo "Installazione di default cancellata."
#Creazione link dei file password e database
ln -s /etc/pureftpd.passwd /var/chroot/pureftpd/etc/
ln -s /etc/pureftpd.pdb /var/chroot/pureftpd/etc/
echo "Link creati."
#Comando per lanciare il server
echo "/var/chroot/pureftpd/sbin/pure-ftpd -A -b -B -c 5 -C 2 -E -j -l puredb:/var/chroot/pureftpd/etc/pureftpd.pdb -u 1 -X" >> /etc/rc.local
##
mknod /var/chroot/pureftpd/dev/null c 1 3
mknod /var/chroot/pureftpd/dev/random c 1 8
mknod /var/chroot/pureftpd/dev/urandom c 1 9
chmod 666 /var/chroot/pureftpd/dev/{null,random,urandom}
echo "Nodi creati."
##
echo "pure-FTPD (SERVER) creato in ambiente chroot."
#FINE#

Diamo i permessi di esecuzione al Bash script appena creato e lanciamolo in questo modo:

# chmod +x pureftpd-chroot.sh
# ./pureftpd-chroot.sh

Il server e’ ora installato in ambiente chroot, non resta che provarlo. Per far partire il server basta digitare i seguenti comandi:

# chmod +x /etc/rc.local
# /etc/rc.local

Con il comando ps x controllate che il server sia partito, se lo e’ troverete un output simile a quello riportato sotto:

806 ? Ss 0:00 pure-ftpd (SERVER)

Comandi pure-FTPD (SERVER)

NOTA
Sostituite USER con l’utente che volete creare

Creare un utente:

$ /var/chroot/pureftpd/bin/pure-pw useradd USER -u ftpuser -d /home/ftpuser/USER

Inserire l’utente al DB pureftpd.pdb:

$ /var/chroot/pureftpd/bin/pure-pw mkdb

Cambiare password ad un utente:

$ /var/chroot/pureftpd/bin/pure-pw passwd USER

Inserire la nuova passwd al DB pureftpd.pdb:

$ /var/chroot/pureftpd/bin/pure-pw mkdb

Eliminare un utente:

$ /var/chroot/pureftpd/bin/pure-pw userdel USER

Eliminare dal DB pureftpd.pdb un utente:

$ /var/chroot/pureftpd/bin/pure-pw mkdb

Verificare un account utente:

$ /var/chroot/pureftpd/bin/pure-pw show USER

Controllare gli utenti connessi:

$ /var/chroot/pureftpd/sbin/pure-ftpwho

## http://www.pureftpd.org
## http://www.debian.org

Cristian ‘astars’ Amadori
admin@s0linux.com

Commenti»

1. Dario - 4 ottobre 2008- 15:54

Salve,
a quasi due anni dal post ho trovato utile questa guida.
L’ho confrontata con la documentazione ufficiale per configurare pure-ftpd.
Nel mio caso però avevo Debian Etch e, installato pure-ftpd da repo ufficiali, il wizard di configurazione mi ha proposto le directory chrooted.
La versione del pacchetto è la stessa: 1.0.21 e non suggerisce alcun pacchetto per il chroot che non ho al momento installato. Francamente mi domando se sto effettivamente usando qualche forma di ingabbiamento…

Cmq, se può essere utile…
Durante l’installazione ho scelto la modalità standalone. Poi la procedura è la stessa descritta qui (istallando però da repo e saltando però l’intero chroot).
Infine questo è il comando che ho usato per lanciare il server:
$ sudo pure-ftpd -j -lpuredb:/etc/pure-ftpd/pureftpd.pdb &

ciao!

Usa Debian IceWeasel Debian IceWeasel 3.0.1 con Debian GNU/Linux Debian GNU/Linux