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)
anonymous_enable=NO
Tillad system brugere at logge ind
local_enable=YES
Aktiver muligheden for at uploade/oprette mapper på serveren
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
anon_upload_enable=YES
Tillad anonyme brugere at oprette mapper
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
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_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
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 – Brugernavn1003 – Bruger UID1004 – Gruppe GID/home/carsten – Home Directory/bin/bash – Brugerens Shell
Ændre brugerens shell, som i mit tilfælde er 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
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 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.
Meget udførlig – kort og præcis, med henvisninger til mere info. Godt arbejde – hold det kørende!
Mange tak for det :)
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.