Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd
Cuprins:
- Cerințe preliminare
- Instalarea vsftpd pe Ubuntu 18.04
- Configurarea vsftpd
- 1. Acces FTP
- 2. Activarea încărcărilor
- 3. Închisoarea Chroot
- 4. Conexiuni FTP pasive
- 5. Limitarea autentificării utilizatorului
- 6. Securizarea transmisiilor cu SSL / TLS
- Reporniți serviciul vsftpd
- Deschiderea firewallului
- Crearea utilizatorului FTP
- Dezactivarea accesului la Shell
- Concluzie
FTP (File Transfer Protocol) este un protocol de rețea standard utilizat pentru a transfera fișierele către și dintr-o rețea de la distanță. Pentru transferuri de date mai sigure și mai rapide, utilizați SCP sau SFTP.
Există multe servere FTP open source disponibile pentru Linux. Cele mai populare și utilizate pe scară largă sunt PureFTPd, ProFTPD și vsftpd. În acest tutorial, vom instala instalarea vsftpd (Daemon Ftp foarte sigur). Este un server FTP stabil, sigur și rapid. Vă vom arăta, de asemenea, cum să configurați vsftpd pentru a restricționa utilizatorii la directorul lor de origine și a cripta întreaga transmisie cu SSL / TLS.
Deși acest tutorial este scris pentru Ubuntu 18.04, aceleași instrucțiuni se aplică pentru Ubuntu 16.04 și pentru orice distribuție bazată pe Debian, inclusiv Debian, Linux Mint și OS Elementary.
Cerințe preliminare
Înainte de a continua cu acest tutorial, asigurați-vă că sunteți autentificat ca utilizator cu privilegii sudo.
Instalarea vsftpd pe Ubuntu 18.04
Pachetul vsftpd este disponibil în depozitele Ubuntu. Pentru a o instala, pur și simplu executați următoarele comenzi:
sudo apt update
sudo apt install vsftpd
Serviciul vsftpd va începe automat după finalizarea procesului de instalare. Verificați prin imprimarea stării serviciului:
sudo systemctl status vsftpd
Rezultatul va arăta ca mai jos, arătând că serviciul vsftpd este activ și funcționează:
* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf
Configurarea vsftpd
Serverul vsftpd poate fi configurat prin editarea fișierului
/etc/vsftpd.conf
. Majoritatea setărilor sunt bine documentate în fișierul de configurare. Pentru toate opțiunile disponibile, vizitați pagina oficială vsftpd.
În secțiunile următoare, vom trece peste câteva setări importante necesare pentru a configura o instalare sigură vsftpd.
Începeți prin deschiderea fișierului de configurare vsftpd:
1. Acces FTP
Vom permite accesul la serverul FTP doar utilizatorii locali,
local_enable
directivele
local_enable
și
local_enable
și
local_enable
verifica potrivirea configurației la liniile de mai jos:
anonymous_enable=NO local_enable=YES
2. Activarea încărcărilor
write_enable
setarea
write_enable
pentru a permite modificări la sistemul de fișiere, cum ar fi încărcarea și ștergerea fișierelor.
3. Închisoarea Chroot
Pentru a împiedica utilizatorii FTP să acceseze orice fișiere din afara directorilor lor de origine, nu respectă setarea
chroot
.
chroot_local_user=YES
În mod implicit pentru a preveni o vulnerabilitate de securitate, când chroot este activat, vsftpd va refuza să încarce fișiere dacă directorul în care utilizatorii sunt blocați este scris.
Utilizați una dintre metodele de mai jos pentru a permite încărcarea când chroot este activat.
-
Metoda 1. - Metoda recomandată pentru a permite încărcarea este să mențineți activarea chroot și să configurați directoare FTP. În acest tutorial, vom crea un director
/etc/vsftpd.confftp
în interiorul locuinței utilizatorului, care va servi drept chroot și un director deuploads
scris pentru încărcarea fișierelor.user_sub_token=$USER local_root=/home/$USER/ftp
Metoda 2. - O altă opțiune este adăugarea următoarei directive în fișierul de configurare vsftpd. Utilizați această opțiune dacă trebuie să acordați accesului scriitorului la directorul său de origine.
/etc/vsftpd.confallow_writeable_chroot=YES
4. Conexiuni FTP pasive
vsftpd poate folosi orice port pentru conexiuni FTP pasive. Vom specifica intervalul minim și maxim de porturi și vom deschide ulterior intervalul în firewall-ul nostru.
Adăugați următoarele linii în fișierul de configurare:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Limitarea autentificării utilizatorului
Pentru a permite doar anumitor utilizatori să se autentifice pe serverul FTP, adăugați următoarele linii la sfârșitul fișierului:
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Când această opțiune este activată, trebuie să specificați în mod explicit ce utilizatori se pot autentifica adăugând numele de utilizator la fișierul
/etc/vsftpd.user_list
(un utilizator pe linie).
6. Securizarea transmisiilor cu SSL / TLS
Pentru a cripta transmisiile FTP cu SSL / TLS, va trebui să aveți un certificat SSL și să configurați serverul FTP pentru al utiliza.
Puteți utiliza un certificat SSL existent semnat de o autoritate de certificare de încredere sau puteți crea un certificat auto-semnat.
Vom genera un certificat SSL
openssl
folosind comanda
openssl
.
Următoarea comandă va crea o cheie privată de 2048 biți și un certificat semnat auto valabil timp de 10 ani. Atât cheia privată cât și certificatul vor fi salvate într-un același fișier:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Odată ce certificatul SSL este creat, deschideți fișierul de configurare vsftpd:
sudo nano /etc/vsftpd.conf
Găsiți directivele
rsa_private_key_file
și
rsa_private_key_file
, schimbați valorile lor pe calea fișierului
pam
și setați directiva
ssl_enable
la
YES
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Dacă nu se specifică altfel, serverul FTP va folosi doar TLS pentru a realiza conexiuni sigure.
Reporniți serviciul vsftpd
După ce ați terminat de editat, fișierul de configurare vsftpd (excluzând comentariile) ar trebui să arate așa:
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Salvați fișierul și reporniți serviciul vsftpd pentru ca modificările să intre în vigoare:
Deschiderea firewallului
Pentru a deschide portul
21
(port de comandă FTP), portul
20
(port de date FTP) și
30000-31000
(interval de porturi pasive), executați următoarele comenzi:
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
Pentru a evita blocarea, deschideți portul
22
:
sudo ufw allow OpenSSH
Reîncărcați regulile UFW prin dezactivarea și reabilitarea UFW:
sudo ufw disable
sudo ufw enable
Pentru a verifica modificările rulate:
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Crearea utilizatorului FTP
Pentru a testa serverul FTP vom crea un utilizator nou.
- Dacă aveți deja un utilizator căruia doriți să acordați acces FTP, săriți la primul pas. Dacă setați
allow_writeable_chroot=YES
în fișierul dvs. de configurare, săriți la al treilea pas.
-
Creați un utilizator nou numit
newftpuser
:sudo adduser newftpuser
Adăugați utilizatorul la lista de utilizatori FTP permisă:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
Creați arborele de director FTP și setați permisiunile corecte:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
După cum s-a discutat în secțiunea anterioară, utilizatorul va putea încărca fișierele sale în directorul
ftp/upload
.
În acest moment, serverul dvs. FTP este complet funcțional și ar trebui să vă puteți conecta la serverul dvs. folosind orice client FTP care poate fi configurat pentru a utiliza criptarea TLS, cum ar fi FileZilla.
Dezactivarea accesului la Shell
În mod implicit, la crearea unui utilizator, dacă nu este specificat explicit, acesta va avea acces SSH la server.
Pentru a dezactiva accesul la shell, vom crea un nou shell care va tipări pur și simplu un mesaj care să spună utilizatorului că contul său este limitat doar la acces FTP.
Creați shell-ul
/bin/ftponly
și faceți-l executabil:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Adăugați noul shell la lista de cochilii valide din
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Modificați shell-ul utilizatorului în
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Utilizați aceeași comandă pentru a schimba shell-ul tuturor utilizatorilor cărora doriți să le acordați numai acces FTP.
Concluzie
În acest tutorial, ați învățat cum să instalați și să configurați un server FTP sigur și rapid pe sistemul dvs. Ubuntu 18.04.
ftp ubuntuCum să configurați și să folosiți serverul ftp pe Android
Doriți să transferați fișierele de pe dispozitivul Android pe PC fără cablu USB? Încercați metoda serverului FTP pentru a partaja fișiere între Android și PC fără fir.
Cum să configurați serverul ftp cu vsftpd pe centos 7
În acest tutorial vom instala versiunea vsftpd. Este un server FTP stabil, sigur și rapid. Vă vom arăta, de asemenea, modul de configurare vsftpd pentru a restricționa utilizatorii la directorul lor de origine și cripta întreaga transmisie cu SSL / TLS.
Cum configurați serverul ftp cu vsftpd pe debian 9
În acest tutorial vom instala versiunea vsftpd. Este un server FTP stabil, sigur și rapid. Vă vom arăta, de asemenea, modul de configurare vsftpd pentru a restricționa utilizatorii la directorul lor de origine și cripta întreaga transmisie cu SSL / TLS.