vsftpd para usuários locais e logons anônimos

1

Estou tentando configurar meu servidor de FTP (vsftpd) para fornecer acesso a usuários locais e a usuários anônimos.

Eu gostaria que os usuários locais tivessem acesso de gravação ao seu diretório home, mas logins anônimos apenas para ter acesso de leitura a um diretório para o qual eu posso enviar arquivos para o mundo inteiro fazer o download.

Primeiro, isso é possível? Ou todos os logins precisam ter acesso de leitura ou acesso de gravação, mas não uma combinação dos dois?

Se for possível, não consigo fazer isso funcionar. Minha configuração atual está me dando um erro "Permissão negada" quando tento efetuar login anonimamente. O acesso para usuários locais está funcionando como eu quero.

Alguém consegue identificar onde estou indo errado ou faltando na configuração a seguir?

O seguinte é o diretório configurado para as pastas ftp. O caminho é / var / ftp / (observe que o usuário local aqui não possui um shell ou um diretório inicial específico e é por isso que ele foi movido para a pasta ftp geral):

dr-xr-xr-x  2 ftp         ftp-users 4.0K Apr 17 13:19 anon
drwxr-xr-x  2 localuser   ftp-users 4.0K Apr 17 15:08 localuser

O usuário anon não tem acesso de gravação ao seu diretório inicial, mas o usuário local o faz. Existe um grupo de usuários FTP que todos os usuários do ftp fazem parte.

Abaixo está um extrato do arquivo / etc / passwd para os dois usuários acima:

ftp:x:109:115:ftp daemon,,,:/var/ftp/anon:/bin/false
localuser:x:1002:1002::/var/ftp/localuser:/bin/false

O seguinte é o arquivo vsftpd.config que estou usando (todos os comentários foram removidos por brevidade):

listen=NO
listen_ipv6=YES
anonymous_enable=YES
ftp_username=ftp
no_anon_password=YES
anon_root=/var/ftp/anon
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_max_rate=52000
local_enable=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users
write_enable=YES
allow_writeable_chroot=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=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Todos os usuários que podem efetuar login estão listados no userlist_file (incluindo ftp).

    
por hojkoff 17.04.2017 / 20:20

1 resposta

0

Eu consegui responder minha própria pergunta com um pouco de jogo. Vou detalhar a resposta para referência.

  1. Sim, é possível ter usuários 'nomeados' privilegiados e usuários anônimos sem privilégios. A extração do arquivo de configuração acima permite essa configuração.

  2. No arquivo de configuração, há userlist_enable = YES e userlist_file = ... para controlar os nomes de usuários que podem usar o FTP. Isso impede que usuários criados por padrão (como pi em Raspbian) efetuem login com a senha padrão, supondo que ela não tenha sido alterada. (A senha padrão, obviamente, deve ser alterada).

  3. Para usar as diretivas acima e permitir logins anônimos, o usuário 'anônimo' precisa ser nomeado no arquivo junto com usuários nomeados aprovados.

por 22.04.2017 / 15:50