Abra /etc/selinux/config
Cambie selinux=enforcing o permissive a deshabilitado.
¡Recuerde reiniciar el servidor!
Por supuesto, también es necesario determinar las siguientes preguntas:
1. ¿Vsftpd restringe el inicio de sesión del usuario? Por ejemplo, el nombre de usuario está en /etc/ftpusers y no puede iniciar sesión.
2. ¿Está activada la opción de autenticación pam en vsftpd.conf (a menudo cometo errores cuando lo compilo e instalo yo mismo)? (Vea si hay pam_service_name=ftp o vsftpd en vsftpd.conf. De cuál depende
¿Quién está bajo el archivo de servicio /etc/pam.d del módulo PAM? El mío es ftp y su configuración es la siguiente:
#%PAM-1.0
autenticación requerida /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
se requiere autenticación /lib/security/pam_unix.so sombra nullok
autenticación requerida /lib/security/pam_shells.so
cuenta requerida /lib/security/pam_unix.so
sesión requerida /lib/security/pam_unix.so
Si se denegará a algunos usuarios en /etc/ftpusers
3. ¿Son correctos los permisos de las carpetas relevantes?
Con respecto al problema de "algunos usuarios locales no pueden iniciar sesión en vsftpd, pero otros sí",
Ninguna de las cuentas locales existentes en el sistema puede iniciar sesión. La configuración de mi archivo /etc/vsftpd/vsftpd.conf es la siguiente:
local_enable=SÍ
write_enable=SÍ
chroot_local_user=SÍ
pam_service_name=vsftpd
/etc/pam.d/vsftpd existe y es normal.
El mensaje de error al iniciar sesión es el mismo:
500 OOPS: no se puede cambiar el directorio:/home/xxxx
Error de inicio de sesion.
421 Servicio no disponible, el servidor remoto ha cerrado la conexión
Sus directorios personales son todos /home/xxxx. Los permisos de /home y /home/xxxx son ambos 755.
Ninguna de las cuentas anteriores se puede iniciar sesión a través de ftp. Estas se usan comúnmente y se pueden iniciar sesión usando shell.
Creé una nueva cuenta usr1
# usuarioadd -G prueba -d /tmp/usr1 usr1
Puede iniciar sesión a través de ftp y su inicio es /tmp/usr1, que está en la partición /. Monté /home en /dev/hda9.
#montar
/dev/hdb1 activado/escriba ext3 (rw)
/dev/hda9 en /home escriba ext2 (rw)
Entonces, supongo: ¿Es debido a la partición/home que las "cuentas cuyo directorio de inicio está en la partición/home" no pueden iniciar sesión?
Para verificar la suposición anterior, intenté crear otra cuenta.
usuarioadd -G prueba -d /home/usr3 usr3
Los permisos de /home y /home/usr3 son todos 755.
Error al iniciar sesión en usr3 ftp.
500 OOPS: no se puede cambiar el directorio:/home/usr3
Error de inicio de sesion.
421 Servicio no disponible, el servidor remoto ha cerrado la conexión
En este punto, creo que es seguro que se debe a la partición/home que la "cuenta cuyo directorio de inicio está en la partición/home" no puede iniciar sesión.
Artículo de referencia:
Terminé mi segunda actualización a Fedora Core 4. Por supuesto, aún no está todo resuelto con la compilación, pero una cosa es segura que le han pasado muchas cosas al RedHat que conocía antes.
Debo decir que, de todos los cambios, para mí la mejor adición son las nuevas extensiones de SELinux. Para obtener información detallada sobre las razones y la teoría de SELinux, lea La inevitabilidad del fracaso: la suposición defectuosa de la seguridad en los entornos informáticos modernos.
Cuanto más trabajo con SELinux, más me doy cuenta de que necesito saber sobre él y cómo hace exactamente todas sus cosas. Ciertamente cambia las cosas relacionadas con los usuarios, los directorios y el acceso, estoy seguro. Estoy haciendo las cosas de la manera más difícil :)
La principal diferencia, hasta ahora para mí, en SELinux de Red Hat es la forma en que se maneja ftp. vsftpd sigue siendo el servidor, lo cual es excelente. Sin embargo, parece estar diseñado para ejecutarse como un demonio en lugar de invocarse a través de xinet.d. Si toma una copia funcional del archivo xinet.d para vsftpd, puede invocarlo a través del contenedor xinet.d. Hice mi primera actualización del servidor de esta manera. La actual que estoy probando como demonio ciertamente creo que me perderé algo. de las características que trae el contenedor xinet.d, y es posible que aún regrese a él.
De todos los problemas que vi, el más notable es si desea habilitar el directorio chroot fuera del vsftpd normal /home/xxx. Estos fallarán con un.
500 OOPS: no se puede cambiar el directorio: /mnt/xxxxx
Pude usar ftp si inicié sesión con una cuenta con un directorio en/home, pero una vez que configuré una cuenta de usuario para tener una unidad de inicio fuera de/home (en este caso en un disco secundario montado), vsftpd rechaza lo anterior. .
Encontré información en la NSA que indica que puede desactivar la protección SELinux del demonio ftp.
setsebool -P ftpd_disable_trans 1
Aunque esto parece un poco drástico, ciertamente funciona por ahora.
Creo que, en última instancia, el problema reside en las políticas, pero como las políticas de SELinux son nuevas para mí, tomará tiempo antes de que todo se solucione. Mientras paso tiempo con las nuevas extensiones de SELinux en Fedora Core 4, los mantendré informados sobre mis pensamientos. y lecciones de configuración.
Solución:
# setsebool ftpd_disable_trans 1
# reinicio del servicio vsftpd
Utilizo FC4 y probé el método en tu publicación anterior y se resolvió de inmediato. Por lo tanto, se puede determinar que la causa radica en SELinux.