Installera vsftp på Ubuntu 16.04 server

Peter Hedman

25 augusti, 2017

Om Peter Hedman

Peter Hedman läser fjärde året civilingenjör i Industriell Ekonomi med inriktning IT vid Blekinge tekniska högskola. Peter är idag 27 år och första gången han stötte på kod var han 15 år. Han jobbar extra på Ericsson i Karlskrona som utvecklare och brinner verkligen för programmering. Peter älskar att sätta tänderna i problem. Något av det bästa han vet är känslan av att under en längre tid sitta med ett problem och sedan hitta en lösning.

För varje ny websida jag skapar på en egen server, så skapar jag även en ftpanvändare som bara har tillgång just den sidans webbinnehåll.
Vsftp är ganska krångligt att få att fungera smärtfritt men efter att hittat denna artikeln blev allt så mycket enklare. Här sammanfattar jag mina kommandon baserade på artikeln.

Installing vsftpd

sudo apt-get update
sudo apt-get install vsftpd -Y
Kopiera även orginalconfigfilen då vi kommer redigera vsftpd.conf
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Konfigurera brandvägg

På nya installtioner av ubuntuserver är brandväggen inaktiv.
sudo ufw enable

sudo ufw status
sudo ufw allow 22/tcp
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

Lägg till en ftpanvändare

Nu har jag topweb som användare men du kan byta ut topweb mot vad nu din användare för en websida är.
sudo adduser topweb

sudo mkdir /home/topweb/ftp
sudo chown nobody:nogroup /home/topweb/ftp
sudo chmod a-w /home/topweb/ftp

Här lägger jag till mappar och docker-composefilen som vi använder för att sätta upp wordpress senare.
sudo mkdir -pv /home/topweb/ftp/files/wordpress/home/wp_html
sudo mkdir -pv /home/topweb/ftp/files/wordpress/home/db
sudo touch /home/topweb/ftp/files/wordpress/docker-compose.yml

sudo chown -R topweb:topweb /home/topweb/ftp/files
sudo ls -la /home/topweb/ftp

konfigurera vsftpd.conf

För att öppna vsftpd.conf-filen:
sudo nano /etc/vsftpd.conf

Se till att din vsftpd.conf-fil har följande parametrar:
write_enable=YES
chroot_local_user=YES

user_sub_token=$USER
local_root=/home/$USER/ftp

pasv_min_port=40000
pasv_max_port=50000

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

ssl_enable=YES

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

require_ssl_reuse=NO
ssl_ciphers=HIGH

Generera certifikat

Då ftp utan ssl-certifikat är väldigt osäkert skapar vi ett certifikat och sätter vägen till filen som vi specificerat ovan.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Lägg till användaren i användarlistan

I vsftpd.conf har jag valt att endast användare som är med i userlist_file ska ha rättigheter att ansluta med ftp, så därför måste vi lägga till användaren i den listan.
echo "topweb" | sudo tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

Starta om vsftp service

Sista steg är att starta om vsftp och säkerställa att allt fungerar genom att skriva ut statusen.
sudo systemctl restart vsftpd
sudo systemctl status vsftpd

Lägga till fler ftpanvändare

För att lägga till fler ftpanvändare gör bara samma steg som tidigare
sudo adduser topwebtest

sudo mkdir /home/topwebtest/ftp
sudo chown nobody:nogroup /home/topwebtest/ftp
sudo chmod a-w /home/topwebtest/ftp
sudo mkdir -pv /home/topwebtest/ftp/files/wordpress/home/wp_html
sudo mkdir -pv /home/topwebtest/ftp/files/wordpress/home/db
sudo touch /home/topwebtest/ftp/files/wordpress/docker-compose.yml
sudo chown -R topwebtest:topwebtest /home/topwebtest/ftp/files
sudo ls -la /home/topwebtest/ftp

Lägg till i userlist_file
echo "topwebtest" | sudo tee -a /etc/vsftpd.userlist

Testa TLS med FileZilla

De flesta moderna FTP-klienter kan konfigureras för att använda TLS-kryptering. Enligt bilden nedan är hur inställningarna ska se ut när du lägger till en ny ftpanslutning mot servern med ftpanvändaren vi skapat. Efter du skrivit in lösenordet för användaren i nästa steg som kommer, är det bara att godkänna certifikatet och du har anslutit säkert med ftp mot servern. All trafik är krypterad och om någon ligger och tjuvlyssnar på din trafik är datan helt oförståelig för tjuven.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


PageLines