O pacote "vsftpd" contém um processo de segundo plano "FTP" muito seguro e muito pequeno. Isso é útil para servir arquivos em uma rede de intercomunicação.
Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.
Transferência (HTTP): https://security.appspot.com/downloads/vsftpd-3.0.5.tar.gz
Soma de verificação MD5 da transferência: efbf362a65bec771bc15ad311f5a982e
Tamanho da transferência: 210 KB
Espaço em disco estimado exigido: 1,9 MB
Tempo de construção estimado: menos que 0,1 UPC
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vsftpd
Por motivos de segurança, executar o "vsftpd" como um(a) usuário(a) e grupo sem
privilégios é encorajado. Além disso, um(a) usuário(a) deveria ser
criado(a) para mapear usuários(as) anônimos(as). Como o(a)
usuário(a) "root
", crie os
diretórios, usuários(as) e grupos necessários(as) com os seguintes
comandos:
install -v -d -m 0755 /usr/share/vsftpd/empty && install -v -d -m 0755 /home/ftp && groupadd -g 47 vsftpd && groupadd -g 45 ftp && useradd -c "Usuário(a) vsftpd" -d /dev/null -g vsftpd -s /bin/false -u 47 vsftpd && useradd -c anonymous_user -d /home/ftp -g ftp -s /bin/false -u 45 ftp
O "Gcc-10" e posteriores sinalizam um erro para uma conversão implícita de tipo. Torne isso explícito:
sed -e "s/kVSFSysStrOpenUnknown;/(enum EVSFSysUtilOpenMode)&/" -i sysstr.c
Construa o "vsftpd" como um(a) usuário(a) sem privilégios usando o seguinte comando:
make
Esse pacote não vem com uma suíte de teste.
Mais uma vez, torne-se o usuário "root
" e instale o "vsftpd" com os seguintes comandos:
install -v -m 755 vsftpd /usr/sbin/vsftpd && install -v -m 644 vsftpd.8 /usr/share/man/man8 && install -v -m 644 vsftpd.conf.5 /usr/share/man/man5 && install -v -m 644 vsftpd.conf /etc
install -v -d ...:
Isso cria o diretório que os(as) usuários(as) anônimos(as) usarão
("/home/ftp
") e o diretório que o
processo de segundo plano se enjaulará nele ("/usr/share/vsftpd/empty
").
"/home/ftp
" não deveria ser
titularizado pelo(a) usuário(a) "vsftpd
", ou pelo(a) usuário(a) "ftp
".
echo "#define VSF_BUILD_TCPWRAPPERS" >>builddefs.h: Use isso antes do "make" para adicionar suporte a "tcpwrappers".
echo "#define VSF_BUILD_SSL" >>builddefs.h: Use isso antes do "make" para adicionar suporte a "SSL".
install -v -m ...: O
Makefile
usa caminhos de instalação
não padrões. Esses comandos instalam os arquivos em "/usr
" e "/etc
".
O "vsftpd" vem com um arquivo
básico de configuração somente anônimo que foi copiado para
"/etc
" acima. Embora ainda como
"root
", esse arquivo deveria ser
modificado porque agora é recomendado executar o "vsftpd" em modo autônomo. Além
disso, você deveria especificar o(a) usuário(a) de separação de
privilégios criado(a) acima. Finalmente, você deveria especificar
o diretório "chroot". "man vsftpd.conf" te dará todos
os detalhes.
cat >> /etc/vsftpd.conf << "EOF"
background=YES
nopriv_user=vsftpd
secure_chroot_dir=/usr/share/vsftpd/empty
EOF
O processo de segundo plano "vsftpd" usa "seccomp" para melhorar
a segurança por padrão. Mas é conhecido por fazer com que o
"vsftpd" não consiga lidar com o comando "LIST
" do "ftp" com versões recentes do núcleo.
Anexe uma linha a "/etc/vsftpd.conf
" (como o(a) usuário(a)
"root
") para desabilitar o
"seccomp" e solucionar esse problema:
cat >> /etc/vsftpd.conf << "EOF"
seccomp_sandbox=NO
EOF
Para habilitar "logins" locais, anexe o seguinte ao arquivo
"/etc/vsftpd.conf
" (como o(a)
usuário(a) "root
"):
cat >> /etc/vsftpd.conf << "EOF"
local_enable=YES
EOF
Além disso, se usar o "Linux-PAM" e o "vsftpd" com "logins" locais de usuário(a),
[então] você precisará de um arquivo de configuração do
"Linux-PAM". Como o(a)
usuário(a) "root
", crie o arquivo
"/etc/pam.d/vsftpd
" e adicione as
mudanças necessárias de configuração para o suporte da sessão do
"Linux-PAM" usando os seguintes
comandos:
cat > /etc/pam.d/vsftpd << "EOF" &&# Inicia /etc/pam.d/vsftpd auth required /lib/security/pam_listfile.so item=user sense=deny \ file=/etc/ftpusers \ onerr=succeed auth required pam_shells.so auth include system-auth account include system-account session include system-session
EOF cat >> /etc/vsftpd.conf << "EOF"session_support=YES pam_service_name=vsftpd
EOF
Instale a unidade "vsftpd.service
" inclusa no pacote ""
"blfs-systemd-units-20220720":
make install-vsftpd