O Debian é certamente um dos meus sistemas operacionais preferidos para servidores web e juntamente com o CSF eu tenho praticamente uma dupla imbatível.

Como me acostumei ao ProFTPD como servidor FTP e costumo utiliza-lo sempre que posso, acabei encontrando pequenas falhas que fazem com que o seu servidor acabe ficando desprotegido, caso esteja utilizando o Debian (em qualquer versão). É importante que você faça as alterações exatamente como estão descritas aqui e teste tudo após as alterações para se certificar de que nada deu errado. Com o método a seguir, mesmo que você atualize o seu CSF/LFD, as configurações serão mantidas e você não precisará refazer as configurações a cada atualização do serviço.

Em primeiro lugar, é necessário editar o arquivo csf.conf para apontar corretamente o log do ProFTPD que não é o default que vem na instalação. Sendo assim, vamos à primeira linha de comando:

nano /etc/csf/csf.conf

Este comando irá abrir o arquivo csf.conf para edição. Dentro do arquivo, localize a sessão “Log File Locations” que fica quase no final do arquivo, lá você deverá localizar a linha que inicia com FTPD_LOG e altera-la para que fique exatamente assim:

FTPD_LOG = "/var/log/proftpd/proftpd.log"

Feito isso, o seu CSF/LFD saberá exatamente onde procurar os logs de erro para identificar uma possível tentativa de invasão no seu servidor FTP.

Após alterar essa linha, você deverá editar o arquivo “regex.custom.pm” para fazer uma pequena modificação na expressão regular que o LFD utiliza para identificar falhas na tentativa de login no ProFTPD. Esse erro já foi reportado ao pessoal da ConfigServer, responsáveis pelo desenvolvimento do CSF/LFD, porém até o momento ela não consta nas atualizações por algum motivo. Para editar o referido arquivo, o comando é o seguinte:

nano /etc/csf/regex.custom.pm

Dentro deste arquivo, você deve adicionar o código abaixo dentro do espaço indicado para isso que é um espaço em branco NO MEIO do arquivo. Por favor, preste muita atenção ao que está fazendo e não enfie esse código no começo e nem no fim do arquivo, caso contrário vai dar merda. Segue o código:

if (($config{LF_FTPD}) and ($globlogs{FTPD_LOG}{$lgfile}) and ($line =~ /^(\S+|\S+\s+\d+\s+\S+) \S+ proftpd\[\d+\]:? \S+ \([^\[]+\[(\S+)\]\)( -)?:? USER (\S*) \(Login failed\): Incorrect password\./)) {
    $ip = $2; $acc = $4; $ip =~ s/^::ffff://; $acc =~ s/:$//g;
    if (&checkip($ip)) {return ("Falha de login no FTP de","$ip|$acc","ftpd")} else {return}
}

Mais uma vez: Preste atenção ao local que você está inserindo o código pra não esculhambar de vez com a proteção do CSF/LFD no seu servidor. Se não sabe mexer com isso, procure alguém que saiba para lhe auxiliar e atente-se ao fato de que isso pode lhe custar dinheiro.

Feitas essas alterações, basta você reiniciar o seu LFD para que ele carregue as novas configurações e mantenha o seu servidor FTP protegido contra tentativas de login inválidas.