500 OOPS: vsftpd: se niega a ejecutar con la raíz de escritura dentro de chroot () Mantener al usuario encarcelado

19

Antes de cerrar esto en repetición, he estado investigando todas las soluciones propuestas para este error y hasta ahora no he podido mantener a un usuario de FTP encarcelado en el directorio de su sitio web. Si bien no soy un experto en servidores ubuntu, quería llegar a la comunidad para ver si alguien ha encontrado una solución que corrija este error y mantenga al usuario encarcelado en su directorio.

Mis configuraciones de vsftpd que cambié:

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

Al final del archivo agregué:

# 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]

El usuario en cuestión mybloguser está encarcelado en el directorio de su sitio web en /srv/www/myblog y este usuario no es parte del archivo nano /etc/vsftpd.chroot_list . El directorio de inicio del usuario también es /srv/www/myblog , que solía funcionar en el pasado.

Probé la solución allow_writeable_chroot=YES que no funcionó, y realmente rompió completamente vsftpd.

Lo intenté:

enlace

VSFTPd dejó de funcionar después de la actualización

enlace

enlace

¿Cómo podemos corregir este error y mantener al usuario encarcelado en su directorio personal?

    
pregunta Chris Hough 09.01.2013 - 20:25

9 respuestas

13

Después de revisar más esta publicación, en los comentarios se publicó un paquete que solucionó mi problema. Puede buscarlo ya sea por mi nombre o por la documentación de "Marcas": enlace . Aquí están mis detalles de cómo arreglé esto más.

¡¡LOS USUARIOS ESTÁN ENCARCELADOS A SUS DIRECTORES DE INICIO !!!

# ------------------------------------------------------------------------------
# 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]
    
respondido por el Chris Hough 12.01.2013 - 23:43
16

Para VSFTPD 3,

  1. Ir a: /etc/vsftpd.conf
  2. y añada esto:

    allow_writeable_chroot=YES
    

    Solo agrégalo si todavía no existe.

  3. Reinicia el servicio vsftpd:

    service vsftpd restart
    

Y debería funcionar.

    
respondido por el Carlos Sura 10.12.2014 - 04:51
15

La solución real de este problema: la carpeta de inicio del usuario debe no ser editable solo legible.

Entonces, si el sitio del usuario está en la carpeta es cat/example.com/http/ , la carpeta cat debe tener chmod 555 y todo estará bien.

    
respondido por el nikita 05.07.2013 - 22:30
7

De acuerdo con la respuesta anterior "La solución REAL de este problema: la carpeta de inicio del usuario no debe poder escribirse solo leerse". El pensamiento general es correcto pero con una realización incorrecta.

A continuación, intentaré dar un ejemplo simple:

Para empezar, necesitamos compilar la topología del directorio de usuarios:

 /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)

corte vsftpd.conf:

#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

Esta configuración funciona muy bien con la configuración de usuario único , para multiusuario se debe utilizar, además, la directiva "dir_usuario_config"

** ACTUALIZACIÓN 20/09

------ **

Aquí hay una solución compleja, no es la mejor idea para usar, pero ... Si necesita una carpeta raíz ftp escribible, solo inserte comandos de cambio de permisos en los comandos de pre-inicio y post-inicio.

1) pre-inicio: cambie los permisos a de solo lectura, qué servidor requiere (:

2) iniciar servidor

3) post-inicio: cambie el permiso para leer-escribir o lo necesite.

    
respondido por el Reishin 23.08.2013 - 11:35
0

Necesitaba agregar lo siguiente al archivo /etc/vsftpd.conf también:

seccomp_sandbox=NO

¡Y sin necesidad del repositorio personalizado!

Y elimine el comentario de la línea:

write_enable=YES
    
respondido por el MuffinMan 16.10.2013 - 17:01
0

La solución simple es hacer lo que sugiere el mensaje de error: hacer que la raíz no se pueda escribir y luego, si necesita habilitar las cargas, cree un subdirectorio que tenga permiso de escritura. No se requieren cambios de configuración.

    
respondido por el toastboy70 21.11.2013 - 11:43
0

Después de 3 horas de búsqueda de Google obtuve Ubuntu 14.04.2 LTS VSFTPd 3 en funcionamiento. La carpeta de inicio será visible / home / vimal una vez que se haya accedido con un cliente. He iniciado sesión con vimal con privilegios de root. Tengo la carpeta ftpShare creada, pero no tiene mucho significado.

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

algunos comandos útiles:

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

Arriba significa que ftp daemon está funcionando

Tengo la siguiente configuración:

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 vez que el FTP funciona, puede ajustarlo a las necesidades específicas, algunos de los anteriores tienen valores predeterminados, pero no recuerdo exactamente.

Errores vistos en el cliente FTP:

1. 500 OOPS: prctl PR_SET_SECCOMP falló

Solución.

seccomp_sandbox=no    

[agréguelo en la primera línea vsftpd.conf, después de que termine la sección inicial comentada]

2. 500 OOPS: vsftpd: se niega a ejecutar con la raíz de escritura dentro de chroot ()

allow_writeable_chroot=YES

Lo agregué en la última línea.

    
respondido por el vimal krishna 03.12.2015 - 16:04
0

Es más o menos lo que toastboy70 mencionó. Haga que ftp-root dir chown'd a ftp.ftp y no escribible (/etc/vsftpd.conf): anon_root = / srv / ftp

A continuación, cree un directorio secundario que se pueda escribir: / srv / ftp / upload

    
respondido por el AsifHaswarey 17.05.2016 - 20:49
0

Resolví el problema de que vsftpd se rehusara a ejecutar con la raíz de escritura dentro de chroot () ubuntu en mi servidor de la siguiente manera:

Acabo de agregar la línea siguiente en el archivo vsftpd.conf a continuación.

allow_writeable_chroot=YES
    
respondido por el Somnath Das 14.07.2016 - 05:54

Lea otras preguntas en las etiquetas