VsFTP

VSFTP: Dades #

Instal·lació del servei #

sudo apt-get install vsftpd

Fitxer de configuració #

/etc/vsftpd.conf

Logs #

/var/log/vsftpd.log

Gestió del servei #

/etc/init.d/vsftpd {start|stop|restart|status}

service vsftpd {start|stop|restart|status}

{start|stop|restart|status} vsftpd

Configuració Anonymous: #

  • usuari per defecte: FTP (usuari anonymous)
  • No té password
  • Directori per defecte /srv/ftp
 cat /etc/passwd | grep ftp
  • Per modificar-lo assignant una nova home a l'usuari
sudo usermod -d NOVA_HOME ftp

Directives #

Directives bàsiques #

Directiva valor
anonymous_enable = YES/NO permetre l'usuari anònim o no.
local_enable= YES/NO permetre usuaris autenticats o no.
anon_upload_enable =YES/NO permetre pujar fitxers als usuaris anònims (requereixen que write_enable estigui activat).
write_enable = YES/NO permetre pujar fitxers o no als usuaris.
anon_mkdir_write_enable = YES/NO permetre a l'usuari anònim crear directoris
ftpd_banner=Benvingut al meu servidor posar una cadena de benvinguda que apareixerà en connectar-se al servidor.

Directives límits #

Directiva valor
anon_max_rate=10240 limitar l'ample de banda de l'usuari anònim a 10 KB/s.
local_max_rate=10240 limitar l'ample de banda dels usuaris a 10 KB/s.
max_clients=3 limitar a 3 el nombre de clients totals (des de qualsevol ip) que es poden connectar.
max_per_ip=3 limitar a 3 el nombre de sessions obertes des d'una adreça IP concreta.

Gàbies #

Directiva valor
chroot_local_user = YES /NO fer o no que tots els usuaris autenticats estiguin engabiats.
chroot_list_enable=YES /NO indicar si hi ha una llista d'usuaris que són excepcions a chroot_local_user.
chroot_list_file= /etc/vsftpd.chroot_list indicar on es troba el fitxer de la llista de control d'usuaris excepcions.

Altres #

Directiva valor
local_umask màscara de permisos-inversos amb els que es pujaran els fitxers els usuaris locals
anon_umask màscara de permisos-inversos amb els que es pujaran els fitxers de l'usuari anonymous

: Directives bàsiques del fitxer vsftpd.conf

Directives Mode passiu #

  • Configurar el mode passiu (recordeu que al firewall del servidor s'hauria d'obrir el rang de ports que determinem amb pasv_min_port i pasv_max_port). Poseu un rang curt per assegurar-se quins ports s'obren, per exemple de 1025 fins a 1027. Proveu a descarregar sense mode passiu (el servidor obre port 20 per connectar-se al client) i amb mode passiu (el servidor obre un port en mode LISTEN del rang definit):
Directiva valor
pasv_enable= YES/NO permetre o no mode passiu quan el client el demani. Per defecte és YES.
pasv_min_port=num Número de port mínim a fer servir
pasv_max_port=num Número de port màxim a fer servir

: Directives relacionades amb el mètode passiu/actiu fitxer vsftpd.conf

  • Per comprovar en temps real els ports que s'obren quan es fan connexions des dels clients, obrim una consola al servidor i escrivim:
sudo watch "netstat -atunp | grep vsftpd"
  • Si no fem servir el watch, haurem de tornar a escriure "netstat" cada vegada que vulguem veure els ports oberts.
  • Des del client, forcem el mode passiu amb la comanda "passive" del client FTP.
  • Si us fixeu en el client gràfic Filezilla, entre les comandes que apareixen a la finestra superior, veurem que força el mode passiu d'entrada. Això és pot canviar en la configuració de preferències del client.

Errors coneguts #

  • Error 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
roger@roger-desktop:~$ ftp localhost
Connected to localhost.
220 (vsFTPd 3.0.2)
Name (localhost:roger): anonymous
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
ftp>
  • SOLUCIÓ: Haurem de de crear una carpeta dintre els directoris personals de tots els usuaris engabiats. Un cop fet, no s'ha de poder escriure a la carpeta arrel (root) del seu directori personal però si a la carpeta on volem permetre pujar fitxers.

    Per exemple, per l'usuari "pep", que te el directori personal a /home/pep caldrà crear una carpeta /home/pep/ftp (aquí s'ha de tenir drets d'escriptura) i treure-li drets d'escriptura a /home/pep.