L4L.be

...because open source matters

  • Increase font size
  • Default font size
  • Decrease font size
Home Linux Documentatie Server toepassingen Installatie en configuratie vsftpd

Installatie en configuratie vsftpd

E-mail Print PDF

Op mijn todo stond al enige tijd het installeren van een lokale ftp server. Meestal gebruik ik voor ftp servers pure-ftpd maar door een posting op een forum leek het me wel aardig om gebruik te maken van vsftpd. Vsftpd staat voor Very Secure FTP Daemon, en security spreekt me altijd wel aan.

Bij de posting stond ook een link naar een blog artikel van Ferdy Christant, en volgens zijn disclaimer mag ik wel gebruik maken van zijn artikel, wat dus het uitgangspunt diende voor mijn document.

Hoewel dit document geschreven is voor gebruik onder openSUSE zal de configuratie grotendeels identiek zijn op elke andere distributie.

Doel

Het doel van de ftp-server is het aanbieden van bestanden aan gebruikers, met een eigen account op de Linux machine, dus geen anonymous access. Daarnaast een aparte gebruiker die alleen bij /srv/ftp kan.

Installatie

De software wordt standaard meegeleverd, dus kan eenvoudig via Yast of met Zypper geinstalleerd worden:

zypper install vsftpd

Mensen die houden van een grafische admin interface voor vsftpd kunnen ook gebruik maken van system-config-vsftpd.

Configuratie

Configuratie vind, zoals dat altijd gebeurd onder Linux/Unix, plaats met behulp van het bewerken van een configuratie bestand. In dit geval gaat het om /etc/vsftpd.conf

Hieronder volgt het benodigde configuratie bestand, het makkelijkste is om het origineel te verplaatsen en te vervangen door onderstaand voorbeeld:

write_enable=YES
dirmessage_enable=YES
local_enable=YES
local_umask=022
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
anonymous_enable=NO
syslog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
pam_service_name=vsftpd
listen=YES
pasv_min_port=30000
pasv_max_port=30100

Extra gebruiker

Ik volg hier gewoon de howto van Ferdy voor het aanmaken van de gebruiker:

# maak FTP root directory als deze nog niet bestaat
mkdir /srv/ftp
# maak een ftp group
groupadd ftp-users
# maak de net gemaakte directory toegankelijk voor de groep ftp-users
chown root:ftp-users /srv/ftp
# maak een gebruiker aan, die aan de groep ftp-users toe behoort
useradd -g ftp-users -d /srv/ftp ftpadmin
# wachtwoord aan de gebruiker toekennen
passwd ftpadmin
# geef read/write toegang tot de ftp root directory
chmod 770 /srv/ftp

Je zou eventueel een gebruikersnaam kunnen toevoegen aan het bestand /etc/vsftpd.chroot_list (als het bestand niet bestaat, deze aanmaken). Gebruikers die hierin staan, mogen kijken buiten hun eigen homedirectory.

Firewall

Open de nodige poorten in je firewall om toegang te verlenen. Dit kan grafisch, maar we waren toch al op de command-line bezig:

sudo /sbin/SuSEfirewall2 open EXT TCP ftp-data
sudo /sbin/SuSEfirewall2 open EXT TCP ftp
sudo /sbin/SuSEfirewall2 open EXT TCP 30000:30100
sudo /sbin/rcSuSEfirewall2 restart

Dan nog blijken connecties soms niet te doen wat ze zouden moeten doen, time-outs e.d. Hiervoor is een iptables module beschikbaar

modprobe ip_conntrack_ftp

Je wilt er uitaard voor zorgen dat dit bij het rebooten van je server opnieuw gebeurt. Dit doe je door de volgende entry in het bestand /etc/sysconfig/kernel:

MODULES_LOADED_ON_BOOT="ip_conntrack_ftp"

Starten

Eerst er voor zorgen dat vsftp gestart wordt bij het booten:

sudo /sbin/chkconfig vsftpd on

En nu de service starten:

sudo /sbin/service vsftpd start