ProFTPD-1.3.8

Introdução ao ProFTPD

O pacote "ProFTPD" contém um processo de segundo plano "FTP" seguro e altamente configurável. Isso é útil para servir arquivamentos grandes de arquivos em uma rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "ProFTPD"

Opcionais

libcap-2.67 com PAM, libssh2-1.10.0, Linux-PAM-1.5.2, MariaDB-10.6.12 ou MySQL, PCRE-8.45, PostgreSQL-15.2 e Net::SSH2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/proftpd

Instalação do ProFTPD

Por motivos de segurança, você deveria instalar o "ProFTPD" usando um(a) usuário(a) e grupo sem privilégios. Como o(a) usuário(a) "root":

groupadd -g 46 proftpd                            &&
useradd -c proftpd -d /srv/ftp -g proftpd \
        -s /usr/bin/proftpdshell -u 46 proftpd     &&

install -v -d -m775 -o proftpd -g proftpd /srv/ftp &&
ln -v -s /usr/bin/false /usr/bin/proftpdshell      &&
echo /usr/bin/proftpdshell >> /etc/shells

Instale o "ProFTPD" como um(a) usuário(a) sem privilégios executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/run &&
make

Esse pacote não vem com uma suíte de teste usável.

Agora, como o(a) usuário(a) root:

make install                                   &&
install -d -m755 /usr/share/doc/proftpd-1.3.8 &&
cp -Rv doc/*     /usr/share/doc/proftpd-1.3.8

Explicações do Comando

install -v -d -m775 -o proftpd -g proftpd /srv/ftp: Crie o diretório lar para o "ProFTPD".

ln -v -s /usr/bin/false /usr/bin/proftpdshell: Configure o "shell" padrão como um link para um "shell" inválido.

echo /usr/bin/proftpdshell >> /etc/shells: Falsifique um "shell" válido para fins de compatibilidade.

[Nota]

Nota

Os dois comandos acima podem ser omitidos se a seguinte diretiva for colocada no arquivo de configuração:

RequireValidShell off

Por padrão, o "proftpd" exigirá que os(as) usuários(as) se logando tenham "shells" válidos. A diretiva "RequireValidShell" desliga esse requisito. Isso é recomendado somente se você estiver configurando o teu servidor "FTP" exclusivamente para transferências anônimas.

[Nota]

Nota

O suporte para a maioria dos pacotes de dependências exige usar opções passadas para o conjunto de comandos sequenciais "configure". Veja-se a saída gerada a partir de "./configure --help" para informações completas relativas a habilitar pacotes de dependências.

Configurando o ProFTPD

Arquivos de Configuração

/etc/proftpd.conf

Informação de Configuração

Esta é uma configuração de amostra simples, somente para baixar. Veja-se a documentação do "ProFTPD" em "/usr/share/doc/proftpd" e consulte o sítio da "web" em http://www.proftpd.org/ para configurações de exemplo.

cat > /etc/proftpd.conf << "EOF"
# Este é um arquivo básico de configuração do "ProFTPD".
# Ele estabelece um servidor e um login anônimo.

ServerName                      "Instalação Padrão do ProFTPD"
ServerType                      standalone
DefaultServer                   on

# A porta 21 é a porta padrão do "FTP".
Port                            21
# "Umask" 022 é um bom padrão de "umask" para evitar que novos 
# diretórios e arquivos sejam escrevíveis por grupo e mundialmente.
Umask                           022

# Para evitar ataques "DoS", configure o número máximo de processos descendentes
# como trinta (30). Se precisar permitir mais que trinta (30) conexões simultâneas,
# [então] simplesmente aumente esse valor. Observe que isso funciona SOMENTE no modo
# autônomo; no modo "inetd", você deveria usar um servidor "inetd" que te permita
# limitar o número máximo de processos por serviço.

MaxInstances                    30

# Configure o(a) usuário(a) e o grupo em que o servidor normalmente executa.
User                            proftpd
Group                           proftpd

# Para fazer com que cada usuário(a) "FTP" esteja "enjaulado(a)" (em "chroot") no
# diretório inicial dele(a), descomente esta linha.
#DefaultRoot ~


# Normalmente, os arquivos deveriam ser sobrescrevíveis.
<Directory /*>
  AllowOverwrite                on
</Directory>

# Uma configuração básica anônima, sem diretórios de "upload".
<Anonymous ~proftpd>
  User                          proftpd
  Group                         proftpd
  # Os clientes deveriam estar aptos a se logarem com "anonymous" bem como com "proftpd"
  UserAlias                     anonymous proftpd

  # Limite o número máximo de "logins" anônimos
  MaxClients                    10

  # 'welcome.msg' deveria ser exibida ao "login", e '.message' exibida
  # a cada novo diretório acessado.
  DisplayLogin                  welcome.msg
  DisplayChdir                  .message

  # Limite o "WRITE" em todos os lugares no "chroot" anônimo.
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>
EOF

Unidade do systemd

Instale a unidade "proftpd.service" inclusa no pacote "" "blfs-systemd-units-20220720":

make install-proftpd

Conteúdo

Aplicativos Instalados: ftpasswd, ftpcount, ftpdctl, ftpmail, ftpquota, ftpscrub, ftpshut, ftptop, ftpwho, in.proftpd (link simbólico para "proftpd"), proftpd e prxs
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/{include,lib}/proftpd, /usr/share/doc/proftpd-1.3.8 e /srv/ftp

Descrições Curtas

proftpd

é o processo de segundo plano de "FTP"

ftpcount

mostra o número atual de conexões

ftpdctl

é usado para controlar o processo de segundo plano "proftpd" enquanto ele está em execução

ftpasswd

é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar "AuthUserFiles" e "AuthGroupFiles" no formato correto para o "proftpd"

ftpmail

é um conjunto de comandos sequenciais "Perl" para envio de mensagens eletrônicas baseado no "TransferLog" do "proftpd"

ftpquota

é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar limites e arquivos de contagem para a combinação de módulos "mod_quotatab" + "mod_quotatab_file" para o "proftpd"

ftpscrub

fornece uma maneira de limpar o arquivo do placar sob demanda

ftpshut

desliga todos os servidores "proftpd" em uma dada hora

ftptop

exibe a situação de execução relativa às conexões

ftpwho

mostra informações atuais do processo para cada sessão

prxs

é um conjunto de comandos sequenciais "Perl" projetado para compilar e instalar módulos de terceiros(as), a partir do fonte, como módulos "DSO" para o "proftpd" instalado