I denna guide kommer jag förklara hur man installerar ftp-servern pure-ftpd på en Raspberry Pi. I detta exemplet har jag använt mig av Raspbian som OS men det fungerar säkert bra med ett annat Debian-liknande OS också.

Vi börjar med att uppdatera pakethanteraren och därefter installerar vi programmet.

sudo apt-get update

sudo apt-get install pure-ftpd-common pure-ftpd

 

Nu ska vi skapa en linux-grupp i Raspbian som vi döper till ”ftpgroup”.

sudo groupadd ftpgroup

 

Nu skapar vi en virtuell linux-användare som vi kopplar till gruppen. Denna användare får ingen hemkatalog eller shell. Användaren döps till ”ftpuser”.

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

 

Nu skapar vi en ftp-användare som kopplas till den virtuella användaren och gruppen som vi redan skapat. Användaren döper vi till ”haschel”. Vi väljer här att ”/home/pubftp/haschel” är användarens root-katalog och han kommer inte kunna komma högre upp i katalogstrukturen.

Här måste man också se till att mapparna pubftp och haschel finns uppskapade under hemkatalogen.

sud0 pure-pw useradd haschel -u ftpuser -g ftpgroup -d /home/pubftp/haschel -N 10

Flaggan ”-N 10” säger att användaren får en gräns på 10mb diskutrymme på sitt ftp-konto. Du kommer här få välja vilket lösenord du vill ha på användaren.

 

För att sätta rättigheter på denna katalog så att t.ex. gruppen ska ha rätt att skriva till mappen kan man göra såhär:

chown ftpuser /home/pubftp/haschel -R

 

Ftp-användare i programmet pure-ftpd sparas normalt sett här: /etc/pureftpd.passwd

Genom att köra nedan kommando så uppdateras användarna och läggs i en databasfil. Detta måste göras varje gång användare har ändrats, tagits bort eller lagts till.

sudo pure-pw mkdb

 

Databasen är egentligen bara en binär fil som är sorterad och har nycklar så att man snabbt hittar i den.

Nedan kommando listar de användare du har i din ftp-användar-databas:

sudo pure-pw list

För att få detaljerad information om en viss användare, t.ex. en användare som heter ”haschel” kör nedan:

sudo pure-pw show haschel

 

Nollställ ett lösenord för en ftp-användare med följande kommando:

sudo pure-pw passwd haschel

 

Glöm då som sagt för allt i världen inte bort att uppdatera databasen:

sudo pure-pw mkdb

Servern har nu förmodligen redan startat av sig själv så för att vara på den säkra sidan bör du först stoppa den:

sudo /etc/init.d/pure-ftpd stop

Därefter kan du kolla om du hittar några processer för pure-ftpd som fortfarande körs. Kolla speciellt efter ftp-port 21.

sudo netstat -tulpn

Hittar du några processer så kan du döda dem med detta fina kommando där {pid} är id-numret på processen (daemonen) som du vill döda.

sudo kill {pid}

När allt är lugnt på port 21 så ska du kunna starta upp servicen som en daemon med följande kommando där vi också specificerat att användare ska hämtas från databasen vi jobbat med i tidigare steg här i guiden:

sudo pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -B -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -c 30 -C 10 -x -E -R

 

Kör gärna ”sudo pure-ftpd -help” för att se vilka olika flaggor du kan ha på detta kommando.

 

Det där var allt som krävdes för att installera en ftp-server på en Raspberry Pi. Nu är det bara att testa att koppla upp sig mot ftp-servern med lämplig ftp-klient.

 

Vill man se till så att tjänsten startar upp med samma parametrar varje gång så bör man ändra konfigurationsfilerna för pure-ftpd enligt följande upplägg:

Kör som daemon (process)
echo ”yes” > /etc/pure-ftpd/conf/Daemonize
Tillåt inte anonym anslutning
echo ”yes” > /etc/pure-ftpd/conf/NoAnonymous
Tillåt chroot
echo ”yes” > /etc/pure-ftpd/conf/ChrootEveryone
Tillåt bara IPV4
echo ”yes” > /etc/pure-ftpd/conf/IPV4Only

 

/etc/init.d/pure-ftpd restart

Restarting ftp server: Running: /usr/sbin/pure-ftpd -l pam -E -A -8 UTF-8 -B -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -4 -B