Estou tentando restringir um usuário a um diretório específico chamado gclegal
usando uma prisão chroot. Eu descomentei a linha no /etc/vsftpd.conf
arquivo
chroot_local_user=YES
Criou um novo usuário chamado kg
:
$ sudo groupadd xenomai
$ sudo useradd -d /var/www/html/gclegal -g xenomai kg
$ sudo passwd kg
Com esta configuração, consigo fazer login através do vsftpd com kg
o usuário, mas também consigo navegar de volta aos diretórios pais e modificá-los até /var/www/html
.
Como posso desabilitar todas as operações fora da casa do usuário ( /var/www/html/gclegal
)?
Responder1
A partir da vsftpd
versão 2.2.2, existem duas opções para manter os usuários presos chroot
:
chroot_list_enable
Basta adicionar usuários à chroot
lista, por exemplo ( /etc/vsftpd/chroot_list
), que você deseja colocar em um arquivo chroot jail
.
chroot_local_user
Isso colocará todos os usuários locais na chroot
prisão,no entanto, se estiver definido, chroot_list
torna-se uma lista de usuários queNÃOvá em um chroot jail
.
Portanto verifique se sua lista não contém usuário kg
se você chroot_local_user=YES
configurou.
Obviamente reinicie o vsftpd
daemon após fazer alterações na configuração.
Trecho de man vsftpd.conf
chroot_list_enable
If activated, you may provide a list of local users who are placed in a chroot() jail in their home directory upon login. The meaning is slightly different if
chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail. By default, the file containing this list
is /etc/vsftpd/chroot_list, but you may override this with the chroot_list_file setting.
Default: NO
chroot_local_user
If set to YES, local users will be (by default) placed in a chroot() jail in their home directory after login. Warning: This option has security implications, especially
if the users have upload permission, or shell access. Only enable if you know what you are doing. Note that these security implications are not vsftpd specific. They
apply to all FTP daemons which offer to put local users in chroot() jails.
Default: NO
Configurei o vsftpd para chroot
os usuários e estas são as /etc/vsftpd.conf
configurações que usei ( Ubuntu 14.04
):
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES
OBSERVAÇÃO:
Certifique-se /etc/vsftpd.chroot_list
de que /etc/vsftpd/chroot_list
estão vazios.
Depois de fazê-lo funcionar, se quiser acompanhar ftp
os logins, você poderá configurá- session_support=YES
los e eles deverão aparecer usando o last
comando:
username vsftpd:12025 IP address Tue Oct 14 14:05 - 14:10 (00:05)
username vsftpd:12011 IP address Tue Oct 14 14:04 - 14:05 (00:00)
NOTA - o suporte utmp e wtmp é fornecido apenas com compilações habilitadas para PAM.
Responder2
Eu configurei o selinux permissive
e reiniciei vsftpd.service
, o que resolveu o problema.