am instalat vsftpd
pe mine Linux Ubuntu 21.04
exemplu folosind următoarele:
sudo apt-get install vsftpd
Am activat FTP în mine ufw
firewall folosind următoarele:
sudo ufw permit ftp
Ale mele /etc/vsftpd.conf
fișierul conține următoarele:
# Exemplu de fișier de configurare /etc/vsftpd.conf
#
# Valorile implicite compilate în setări sunt destul de paranoice. Acest fișier exemplu
# slăbește puțin lucrurile, pentru a face demonul ftp mai utilizabil.
# Vă rugăm să vedeți vsftpd.conf.5 pentru toate compilatele implicite.
#
# CITIȚI ACEST: Acest fișier exemplu NU este o listă exhaustivă de opțiuni vsftpd.
# Vă rugăm să citiți pagina de manual vsftpd.conf.5 pentru a vă face o idee completă despre vsftpd
# capabilități.
#
#
# A alerga singur? vsftpd poate rula fie dintr-un inetd, fie ca independent
# daemon a pornit de la un initscript.
asculta=DA
#
# Această directivă permite ascultarea pe socket-uri IPv6. Implicit, ascultare
# pe adresa IPv6 „orice” (::) va accepta conexiuni de la ambele IPv6
# și clienții IPv4. Nu este necesar să ascultați atât pe IPv4, cât și pe IPv6
# prize.Dacă vrei asta (poate pentru că vrei să asculți anume
# adrese), atunci trebuie să rulați două copii ale vsftpd cu două configurații
# fișiere.
listen_ipv6=NU
#
# Permiteți FTP anonim? (Dezactivat implicit).
anonymous_enable=NU
#
# Anulați comentariul pentru a permite utilizatorilor locali să se conecteze.
local_enable=DA
#
# Anulați comentariul pentru a activa orice formă de comandă de scriere FTP.
write_enable=DA
#
# Umask implicit pentru utilizatorii locali este 077. Poate doriți să schimbați acest lucru la 022,
# dacă utilizatorii dvs. se așteaptă la asta (022 este folosit de majoritatea celorlalți ftpd-uri)
#local_umask=022
#
# Anulați comentariul pentru a permite utilizatorului FTP anonim să încarce fișiere. Doar asta
# are efect dacă activarea de scriere globală de mai sus este activată. De asemenea, vei face
# evident că trebuie să creați un director care poate fi scris de către utilizatorul FTP.
#anon_upload_enable=DA
#
# Anulați comentariul dacă doriți ca utilizatorul FTP anonim să poată crea
# directoare noi.
#anon_mkdir_write_enable=DA
#
# Activați mesajele directoare - mesaje date utilizatorilor de la distanță atunci când aceștia
# intra într-un anumit director.
dirmessage_enable=DA
#
# Dacă este activat, vsftpd va afișa liste de directoare cu ora
# în fusul orar local. Implicit este afișarea GMT. The
# de ori returnate de comanda MDTM FTP sunt, de asemenea, afectate de acest lucru
# opțiune.
use_localtime=DA
#
# Activați înregistrarea încărcărilor/descărcărilor.
xferlog_enable=DA
#
# Asigurați-vă că conexiunile de transfer PORT provin din portul 20 (ftp-data).
connect_from_port_20=DA
#
# Dacă doriți, puteți aranja ca fișierele anonime încărcate să fie deținute
# un alt utilizator. Notă! Utilizarea „rădăcină” pentru fișierele încărcate nu este
# recomandat!
#chown_uploads=DA
#chown_username=oricine
#
# Puteți suprascrie unde merge fișierul jurnal dacă doriți. Valoarea implicită este afișată
# de mai jos.
#xferlog_file=/var/log/vsftpd.log
#
# Dacă doriți, puteți avea fișierul jurnal în format standard ftpd xferlog.
# Rețineți că locația implicită a fișierului jurnal este /var/log/xferlog în acest caz.
#xferlog_std_format=DA
#
# Puteți modifica valoarea implicită pentru expirarea unei sesiuni inactive.
#idle_session_timeout=600
#
# Puteți modifica valoarea implicită pentru expirarea unei conexiuni de date.
#data_connection_timeout=120
#
# Este recomandat să definiți pe sistemul dvs. un utilizator unic pe care
# serverul ftp poate fi folosit ca utilizator total izolat și neprivilegiat.
#nopriv_user=ftpsecure
#
# Activați acest lucru și serverul va recunoaște cererile ABOR asincrone. Nu
# recomandat pentru securitate (codul nu este banal). Neactivându-l,
# cu toate acestea, poate încurca clienții FTP mai vechi.
#async_abor_enable=DA
#
# În mod implicit, serverul va pretinde că permite modul ASCII, dar de fapt îl va ignora
# cererea. Activați opțiunile de mai jos pentru ca serverul să facă de fapt ASCII
# deformarea fișierelor în modul ASCII.
# Atenție că pe unele servere FTP, suportul ASCII permite o refuz de serviciu
# atac (DoS) prin comanda „SIZE /big/file” în modul ASCII. vsftpd
# a prezis acest atac și a fost întotdeauna în siguranță, raportând dimensiunea
# fișier brut.
# Deformarea ASCII este o caracteristică oribilă a protocolului.
#ascii_upload_enable=DA
#ascii_download_enable=DA
#
# Puteți personaliza complet șirul bannerului de conectare:
#ftpd_banner=Bine ați venit la serviciul blah FTP.
#
# Puteți specifica un fișier cu adrese de e-mail anonime interzise. Aparent
# util pentru combaterea anumitor atacuri DoS.
#deny_email_enable=DA
# (urmează implicit)
#banned_email_file=/etc/vsftpd.banned_emails
#
# Puteți restricționa utilizatorii locali la directoarele lor de acasă. Consultați întrebările frecvente pentru
# riscurile posibile în aceasta înainte de a utiliza chroot_local_user sau
# chroot_list_enable de mai jos.
chroot_local_user=DA
#
# Puteți specifica o listă explicită de utilizatori locali pentru a efectua chroot() în casa lor
# director. Dacă chroot_local_user este YES, atunci această listă devine o listă de
# utilizatori să NU chroot().
# (Atenție! Chroot-ul poate fi foarte periculos. Dacă folosiți chroot, asigurați-vă că
# utilizatorul nu are acces de scriere la directorul de nivel superior din
# chroot)
#chroot_local_user=DA
#chroot_list_enable=DA
# (urmează implicit)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# Puteți activa opțiunea „-R” în ls-ul încorporat. Aceasta este dezactivată de
# implicit pentru a evita ca utilizatorii de la distanță să poată provoca I/O excesive pe mare
# site-uri. Cu toate acestea, unii clienți FTP stricat, cum ar fi „ncftp” și „oglindă”, presupun
# prezența opțiunii „-R”, deci există un caz puternic pentru activarea acesteia.
#ls_recurse_enable=DA
#
# Personalizare
#
# Unele dintre setările lui vsftpd nu se potrivesc cu aspectul sistemului de fișiere
# Mod implicit.
#
# Această opțiune ar trebui să fie numele unui director care este gol. De asemenea
# directorul nu ar trebui să poată fi scris de către utilizatorul ftp. Acest director este folosit
# ca închisoare securizată chroot() uneori, vsftpd nu necesită un sistem de fișiere
# acces.
secure_chroot_dir=/var/run/vsftpd/empty
#
# Acest șir este numele serviciului PAM pe care îl va folosi vsftpd.
pam_service_name=vsftpd
#
# Această opțiune specifică locația certificatului RSA de utilizat pentru SSL
# conexiuni criptate.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NU
#
# Anulați comentariul pentru a indica faptul că vsftpd utilizează un sistem de fișiere utf8.
#utf8_filesystem=DA
user_sub_token=$USER
local_root=/home/$USER/ftp_user
userlist_enable=DA
userlist_file=/etc/vsftpd.user_list
userlist_deny=NU
Mi-am adăugat contul de utilizator dorit ftpuser
la /etc/vsftpd.user_list
. Următoarele sunt conținute în rezultatul netstat -tanp
:
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 939/docker-proxy
tcp 0 0 0.0.0.0:21 0.0.0.0:* ASCULTĂ 585614/vsftpd
tcp 0 0 127.0.0.53:53 0.0.0.0:* ASCULTĂ 582461/systemd-reso
tcp 0 0 0.0.0.0:22 0.0.0.0:* ASCULTĂ 581200/sshd: /usr/s
Cele de mai sus pare să indice că vsftpd
ascultă pe portul 21 așa cum ar trebui. Cu toate acestea, nu mă pot conecta la el folosind WinSCP
pe portul 21 cu protocolul FTP. Cu toate acestea, ceea ce este ciudat este că mă pot conecta pe portul 22 cu protocolul SFTP.
De asemenea, ar trebui să menționez că am avut anterior vsftpd
instalat și configurat pentru SFTP. am facut sudo apt-get purge vsftpd
și de atunci am încercat să reinstalez.
Editați | × Chiar și atunci când fug ftp localhost
Primesc mesajul de eroare: ftp: connect: Conexiune a expirat
Aceștia sunt pașii pe care i-am făcut acum.
Instalați VSFTPD
actualizare sudo apt
sudo apt install vsftpd
starea serviciului sudo vsftpd
Configurați firewall
sudo ufw permit 20/tcp
sudo ufw permit 21/tcp
sudo ufw permit 40000:50000/tcp
sudo ufw permit 990/tcp
sudo ufw permit openssh
sudo ufw enable
sudo ufw status
Creați ftpuser și directoare
sudo adduser ftpuser
sudo mkdir /home/ftpuser/ftp
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo mkdir /home/ftpuser/ftp/files
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/fișiere
Configurați configurația VSFTPD
sudo nano /etc/vsftpd.conf
Cu următoarele intrări
asculta=NU
listen_ipv6=DA
anonymos_enable=NU
local_enable=DA
write_enable=DA
local_mask=022
dirmessage_enable=DA
use_localtime=DA
xferlog_enable=DA
connect_from_port_20=DA
chroot_local_user=DA
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
force_dot_files=DA
pasv_min_port=400000
pasv_max_port=500000
user_sub_token=$USER
local_root=/home/$USER/ftp
Reporniți VSFTPD pentru ca modificările să intre în vigoare
sudo systemctl restart vsftpd.service
Încercați să vă conectați cu Filezilla și WinSCP. Nici unul nu a funcționat. Cu toate acestea, la fel ca și anterior, am putut să mă conectez prin SFTP pe portul 22.
ce fac greșit?