500 OOPS: vsftpd: rifiutando di eseguire con root scrivibile all'interno di chroot () Mantieni utente bloccato

19

Prima di chiudere questo alla ripetizione, ho cercato tutte le soluzioni proposte per questo bug e finora non sono riuscito a tenere un utente FTP imprigionato nella sua directory del sito. Anche se non sono un esperto di Ubuntu Server, volevo raggiungere la community per vedere se qualcuno ha trovato una soluzione che risolve entrambi questi errori e mantiene l'utente imprigionato nella loro directory.

Le mie impostazioni vsftpd che ho modificato:

listen_port=9000
Set: anonymous_enable=NO 
Uncomment: local_enable=YES 
Uncomment: write_enable=YES 
Uncomment: local_umask=022 
Set: connect_from_port_20=NO 
Uncomment: idle_session_timeout=600
Uncomment: data_connection_timeout=120 
Comment out: #ftpd_banner=Welcome to blah FTP service. [should be on line 104]
Added: banner_file=/etc/issue.net 
Uncomment: chroot_local_user=YES
Uncomment: chroot_local_user=YES 
Uncomment: chroot_list_enable=YES 
Uncomment : chroot_list_file=/etc/vsftpd.chroot_list

Alla fine del file ho aggiunto:

# Show hidden files and the "." and ".." folders.
# Useful to not write over hidden files:
force_dot_files=YES

# Hide the info about the owner (user and group) of the files.
hide_ids=YES

# Connection limit for each IP:
max_per_ip=10

# Maximum number of clients:
max_clients=5

# FTP Passive Settings
pasv_enable=YES
#If your listen_port is 9000 set this range to 7500 and 8500
pasv_min_port=[port range min]
pasv_max_port=[port range max]

L'utente in questione mybloguser è stato jailed nella directory del suo sito web in /srv/www/myblog e questo utente non fa parte del file nano /etc/vsftpd.chroot_list . Anche la home directory dell'utente è /srv/www/myblog che funzionava in passato.

Ho provato la soluzione allow_writeable_chroot=YES che non ha funzionato e in realtà ha completamente rotto vsftpd.

Ho provato:

link

VSFTPd ha smesso di funzionare dopo l'aggiornamento

link

link

Come possiamo entrambi correggere questo errore e mantenere l'utente in prigione nella loro directory home?

    
posta Chris Hough 09.01.2013 - 21:25

9 risposte

13

Dopo un'ulteriore revisione di questo post, nei commenti è stato pubblicato un pacchetto che risolveva il mio problema. Puoi cercarlo con il mio nome o con la documentazione "Marks": link . Ecco i miei dettagli su come ho risolto ulteriormente.

GLI UTENTI SONO ANCORA INGEGNATI ALLE DIRETTORIE DI CASA !!!

# ------------------------------------------------------------------------------
# SETUP FTP USERS --------------------------------------------------------------
# ------------------------------------------------------------------------------

# create the ftp users and lock them to the website directories
useradd -d /srv/www/[website/appname] -m [ftp user name]

# set the ftp account passwords
passwd [ftp user name]

# add the ftp users to the www-data user/group
adduser [ftp user name] www-data

# BUG FIX: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
sudo add-apt-repository ppa:thefrontiergroup/vsftpd
sudo apt-get update
sudo apt-get install vsftpd

# Edit the vsftpd.conf and append this setting to the end of the file to keep users' jailed!
nano /etc/vsftpd.conf

# add all of the text between the starting [[ and ending ]]
# [[

# Keep non-chroot listed users jailed
allow_writeable_chroot=YES

# ]]

# restart the service for changes to take effect
sudo service vsftpd restart

#test ftp via secondary terminal window:
ftp [ftp user name]@[server ipaddress] [ftp port]
    
risposta data Chris Hough 13.01.2013 - 00:43
16

Per VSFTPD 3,

  1. Vai a: /etc/vsftpd.conf
  2. e aggiungi questo:

    allow_writeable_chroot=YES
    

    Basta aggiungerlo se ancora non esiste.

  3. Riavvia il servizio vsftpd:

    service vsftpd restart
    

E dovrebbe funzionare.

    
risposta data Carlos Sura 10.12.2014 - 05:51
15

La vera soluzione di questo problema: la cartella principale dell'utente dovrebbe non essere modificabile solo leggibile.

Quindi, se il sito utente è nella cartella è cat/example.com/http/ , la cartella cat deve avere chmod 555 e tutto sarà OK.

    
risposta data nikita 06.07.2013 - 00:30
7

Secondo la risposta precedente "La vera soluzione di questo problema: la cartella home dell'utente non dovrebbe essere scrivibile solo leggibile". Il pensiero generale è giusto ma con la realizzazione sbagliata.

Di seguito proverò a dare un semplice esempio:

Per iniziare, dobbiamo creare la topologia della directory utente:

 /home (ro)   
   |-someuser (rw,700)
         |-ftp_upload (ro,555)  - ch_rooting here, required ro by vsftpd :(
           |-temp (rw,755)
           |-in_box (rw,755)
           |-out_box (rw,755)

vsftpd.conf cut:

#enable chrooting
chroot_local_user=YES

#chroot all users except listened inside chroot_list
chroot_list_enable=YES

#exception list, ideally should be blank ;) 
chroot_list_file=/etc/vsftpd/chroot_list

#map ftp root dir to specifiec dir 
local_root=/home/someuser/ftp

Questa configurazione funziona alla perfezione con la configurazione single-user , per multi-user dovrebbe essere utilizzata anche come direttiva "user_config_dir".

** AGGIORNAMENTO 20/09

------ **

Ecco una soluzione complicata, non la migliore idea da usare, ma .... Se hai bisogno di una cartella radice ftp scrivibile, basta inserire i comandi di modifica delle autorizzazioni nei comandi di pre-avvio e di post-avvio.

1) pre-start - cambia i permessi in sola lettura, che server richiede (:

2) avvia il server

3) post-start: modifica il permesso di lettura-scrittura o di cui hai bisogno.

    
risposta data Reishin 23.08.2013 - 13:35
0

Avevo bisogno di aggiungere quanto segue al file /etc/vsftpd.conf:

seccomp_sandbox=NO

E non c'è bisogno del repository personalizzato !!

E decommenta la riga:

write_enable=YES
    
risposta data MuffinMan 16.10.2013 - 19:01
0

La semplice correzione è di fare come suggerisce il messaggio di errore: rendere la radice non scrivibile e quindi se è necessario abilitare i caricamenti, creare una sottodirectory che abbia i permessi di scrittura. Nessuna modifica di configurazione necessaria.

    
risposta data toastboy70 21.11.2013 - 12:43
0

Dopo 3 ore di googling ho iniziato a utilizzare Ubuntu 14.04.2 LTS VSFTPd 3. La cartella home sarà visibile / home / vimal dopo l'accesso con un client. Ho effettuato l'accesso con vimal con privilegio di root. Ho creato la cartella ftpShare, ma non ha molto significato.

sudo chown vimal:vimal /home/vimal/ftpShare/

alcuni comandi utili:

sudo nano /etc/vsftpd.conf
sudo service vsftpd restart
sudo apt-get purge vsftpd
netstat -a | grep ftp
tcp        0        0        *:ftp         *:*        LISTEN
ftp://12.345.23.xxx/  for browser login

Sopra significa che il daemon ftp funziona

Ho la seguente configurazione:

seccomp_sandbox=no
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd/empty
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES

Una volta che l'FTP ha funzionato, puoi sintonizzarlo ulteriormente su esigenze specifiche, alcuni dei quali hanno valori predefiniti, ma non ricordo esattamente.

Errori visti nel client FTP:

1. 500 OOP: prctl PR_SET_SECCOMP fallito

Soluzione.

seccomp_sandbox=no    

[aggiungilo sulla prima riga vsftpd.conf, dopo che la sezione dei commenti commentati finisce]

2. 500 OOP: vsftpd: rifiutandosi di girare con root scrivibile all'interno di chroot ()

allow_writeable_chroot=YES

L'ho aggiunto nell'ultima riga.

    
risposta data vimal krishna 03.12.2015 - 17:04
0

È più o meno quello che toastboy70 ha menzionato. Trasformate ftp-root nella directory ftp.ftp e non scrivibili (/etc/vsftpd.conf): anon_root = / srv / ftp

Quindi crea una directory figlio scrivibile: / srv / ftp / upload

    
risposta data AsifHaswarey 17.05.2016 - 22:49
0

Ho risolto il problema di vsftpd rifiutando di eseguire con root scrivibile all'interno di chroot () ubuntu nel mio server come segue:

Ho appena aggiunto sotto la riga nel file vsftpd.conf di seguito.

allow_writeable_chroot=YES
    
risposta data Somnath Das 14.07.2016 - 07:54

Leggi altre domande sui tag