Installer vsFTPd 3

Skrevet af: Patrick Kerwood

vsFTPd står for “Very Secure FTP Daemon” og er rigtig nem og hurtig at sætte op. På få minuter kan du installer og konfigurer en funktionel FTP server, med basis indstillinger.

Jeg kan godt lide vsFTPd fordi, den er nem/hurtig at sætte op, den er meget stabil og kan smide meget data rundt.

Installation

Start med at installer vsFTPd med din package manager.

Debian:
apt-get install vsftpd

Konfiguration

Åben konfigurations filen med din favorit text editor.
nano /etc/vsftpd.conf

De fleste indstillinger er ret selvforklarende så jeg vil kun gennemgå de mest relevante.

Tillad logins fra anonyme brugere (uden login) YES/NO.
anonymous_enable=NO

Tillad system brugere at logge ind YES/NO.
local_enable=YES

Aktiver muligheden for at uploade/oprette mapper på serveren YES/NO.
write_enable=YES

Denne indstilling styre hvilke rettigheder, uploadede filer får. Måden man regner værdien ud på er 777 minus local_umask. Hvis local_umask er 022 bliver rettighederne 777-022 = 755. Vær opmærksom på at nedenstående linje er udkommenteret (#). local_umask vil fra standard være 077, hvis ikke det er lavet om. Vær også opmærksom på at denne ikke gælder for anonyme logins. Der er en anden linje til dem.
local_umask=022

Tillad anonyme brugere at uploade YES/NO.
anon_upload_enable=YES

Tillad anonyme brugere at oprette mapper YES/NO.
anon_mkdir_write_enable=YES

Velkomsthilsen ved server connect.
ftpd_banner=Welcome to vsFTPd

De næste par linjer er ikke i vsftpd.conf fra standard, så tilføj dem hvis du vil bruge dem.

Max antal klienter der må være forbundet på samme tid.
max_clients=20

Max antal klienter forbundet fra samme IP adresse.
max_per_ip=1

Der er mange andre lækre indstillinger. Du kan se dem alle ved at kører man vsftpd.conf i din terminal eller søge efter “vsftpd man page” som denne.

Husk at genstarte vsftpd, efter du har redigeret i conf filen, for at ændringerne skal træde i kraft.
service vsftpd restart

Chroot dine brugere

Ofte har man brug for, at en bruger ikke har mulighed for, at gå ud af sit homedir. Dette kalder man “chroot”.

Uncomment nedenstående linje, i vsftpd.conf, ved at fjerne hash-tagget foran. Dine brugere er nu chrooted til deres homedir.
chroot_local_user=YES

Hvis du ønsker at have brugere der ikke er chrooted, din egen for eksempel, skal du uncomment nedenstående linje. Hvis chroot_local_user er sat til YES er filen /etc/vsftpd.chroot_list en liste over brugere der ikke skal chrootes.
chroot_list_file=/etc/vsftpd.chroot_list Tilføj derfor dit bruger navn til filen.
nano /etc/vsftpd.chroot_list

Bruger administration

Når du har installeret, konfigureret og genstartet vsftpd kan brugerne på serveren logge ind via FTP. Ofte har man nogle brugere der skal kunne logge ind via FTP, men skal ikke kunne logge ind på en Shell, fx via SSH.

Hvis brugeren allerede er lavet og Shell logins skal deaktiveres, åbner du /etc/passwd med en text editor.
nano /etc/passwd

I filen vil du se en liste med brugerne på dit system. Se nedenstående eksempel.
carsten:x:1003:1004::/home/carsten:/bin/bash

  • carsten – Brugernavn
  • 1003 – Bruger UID
  • 1004 – Gruppe GID
  • /home/carsten – Home Directory
  • /bin/bash – Brugerens Shell

Ændre brugerens shell, som i mit tilfælde er /bin/bash, til /bin/false carsten:x:1003:1004::/home/carsten:/bin/false Så er Shell logins for brugeren “carsten” deaktiveret. Du har også muligheden for at skifte brugerens homedir.

Når du opretter brugere har du mulighed for at oprette dem med de overstående konfigurationer.

Opret en bruger med standard home directory og Shell logins deaktiveret.
useradd -m -s /bin/false BRUGERNAVN

Opret en bruger med home directory i /home/ftp og Shell logins deaktiveret.
useradd -m -d /home/ftp -s /bin/false BRUGERNAVN

Det kan være en fordel at lave en gruppe på serveren, til FTP brugerne, for at styre deres rettigheder. Opret en FTP gruppe.
groupadd ftpusers

Tilføj en eksisterende bruger til FTP gruppen.
usermod -a -G ftpusers BRUGERNAVN

Opret en bruger med standard home directory, som er med i gruppen “ftpusers” og Shell logins deaktiveret.
useradd -m -G ftpusers -s /bin/false BRUGERNAVN

SSL/TLS Opsætning

FTP er ikke en sikker protocol at bruge. Bruger navne og passwords bliver sendt i plain-text og er nemt at samle op af andre. Heldigvis kan du kryptere din forbindelse, så dette ikke bliver muligt.

Start med at skifte mappe til /etc/ssl/privat cd /etc/ssl/privat

Lav et selv signeret certifikat.
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem

Du skal nu indtaste forskellige informationer, som nedenstående. Det behøver nødvendigvis ikke at være rigtigt info. Du kan evt. bare trykke [ENTER] hele vejen igennem for at bruge de standard svar der er.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]: DK
State or Province Name (full name) [Berkshire]: LinuxLand
Locality Name (eg, city) [Newbury]: [ENTER]
Organization Name (eg, company) [My Company Ltd]: LinuxBloggen.dk
Organizational Unit Name (eg, section) []: [ENTER]
Common Name (eg, your name or your server's hostname) []: LBs FTP Server
Email Address []: Linux@Bloggen.dk

Åben vsftpd.conf og tilføj nedenstående, nederst i filen.
nano /etc/vsftpd.conf ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=HIGH
require_ssl_reuse=NO

Hvis anonyme logins skal kunne bruge SSL/TLS, skal du også tilføje denne linje.
allow_anon_ssl=YES

Jeg vil ikke gennemgå hver linje. Du kan finde en beskrives af dem i vsftpd’s manual. Genstart vsftpd.
service vsftpd restart

Du kan nu forbinde til din vsFTPd server med SSL.

For at kunne bruge SSL/TLS skal din FTP klient understøtte det. På billedet nedenunder er et eksemple på en SSL/TLS forbindelse i FileZilla. Når du tilføjer et nyt “FTP Site” vælger du en normal FTP forbindelse og i “Encryption” vælger du “Require explicit FTP over TLS.


2 apr 2013   | Alle · Fildeling · Programmer

3 thoughts on “Installer vsFTPd

  1. Reply Søren Torp apr 2,2013 20:15

    Meget udførlig – kort og præcis, med henvisninger til mere info. Godt arbejde – hold det kørende!

  2. Reply Morten okt 5,2017 09:04

    Jeg har prøvet at tilføje en bruger uden SSH adgang men når jeg så prøver at logge på ftp’en siger den incorrect passwd.
    Serveren virker fint med min egen bruger.

Leave a Reply