Configuração FTP · 3 min read · Nov 06, 2025
ISPConfig 3 ProFTPd Para Debian
ISPConfig 3 ProFTPd Para Debian
1 Introdução
Sou um novo usuário do ISPConfig e tenho brincado com Linux há alguns anos. Meu servidor é atualmente um VPS com OpenVZ e não me permite executar o pureftpd padrão que vem com o ISPConfig, então comecei a investigar o ProFTPd e descobri que não era muito difícil mudar para usá-lo.
2 Pré-Instalação
Por favor, note: Isso não inclui suporte a quota porque meu VPS não suporta. Se você tiver alguma sugestão ou ideia sobre como melhorar essa integração sem ter que modificar ftp_user_edit.php no ISPConfig3, por favor, me avise. Estas instruções foram feitas executando Debian 5.0 Lenny, mas devem funcionar da mesma forma para 6.0. Para outras distribuições, essas instruções podem precisar ser modificadas ligeiramente.
Também note: Este processo funcionou bem para mim em um servidor novo e instalação do ISPConfig 3. Usar isso em um servidor existente exigirá entrar e editar/salvar cada usuário ftp que foi criado e pode causar outros problemas. Eu posso criar um script php simples para fazer isso automaticamente no futuro. Não sou responsável por quaisquer problemas que possam surgir, então, por favor, use isso POR SUA CONTA E RISCO.
3 Instalação
Execute
apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql
Executar como autônomoCriar Grupo & Usuário
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “usuário proftpd” -g ftpgroup ftpuser
4 Configuração do Banco de Dados
mysql -u root -p
Use dbispconfig
Execute a consulta:
ALTER TABLE `ftp_user` ADD `shell` VARCHAR( 18 ) NOT NULL DEFAULT '/sbin/nologin',
ADD `count` INT( 11 ) NOT NULL DEFAULT '0',
ADD `accessed` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
ADD `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';
CREATE TABLE ftp_group (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '5500',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='Tabela de grupo ProFTP';
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');5 Configuração do ProFTPd
Edite /usr/local/ispconfig/interface/lib/config.inc.php:
nano /usr/local/ispconfig/interface/lib/config.inc.phpEncontre a variável db_password.
Anote a senha para depois.
Edite /etc/proftpd/proftpd.conf
nano /etc/proftpd/proftpd.confEncontre:
#Include /etc/proftpd/sql.confMude para:
Include /etc/proftpd/sql.confEdite /etc/proftpd/sql.conf
nano /etc/proftpd/sql.confApague todo o conteúdo e substitua por:
#
# Configuração de exemplo do Proftpd para autenticação baseada em SQL.
#
# (Isso não deve ser usado se você preferir uma autenticação SQL baseada em PAM)
#
DefaultRoot ~
SQLBackend mysql
# As senhas no MySQL são criptografadas usando CRYPT
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
# usado para conectar ao banco de dados
# nome_do_banco@host usuário_do_banco senha_do_usuário
SQLConnectInfo dbispconfig@localhost ispconfig _inserirsenhaaqui_
# Aqui dizemos ao ProFTPd os nomes das colunas do banco de dados na "tabela de usuários"
# com as quais queremos que ele interaja. Combine os nomes com os do db
SQLUserInfo ftp_user username password uid gid dir shell
# Aqui dizemos ao ProFTPd os nomes das colunas do banco de dados na "tabela de grupos"
# com as quais queremos que ele interaja. Novamente, os nomes combinam com os do db
SQLGroupInfo ftp_group groupname gid members
# defina UID e GID mínimos - caso contrário, esses são 999 cada
SQLMinID 500
# crie o diretório home de um usuário sob demanda se não existir
CreateHome off
# Atualize a contagem toda vez que o usuário fizer login
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
# Atualize modificado toda vez que o usuário enviar ou excluir um arquivo
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
RootLogin off
RequireValidShell off
Certifique-se de mudar inserirsenhaaqui para a senha que você recuperou do ISPConfig.
Se seu banco de dados MySQL estiver em outro servidor, mude localhost para representar seu servidor MySQL.
Edite: /etc/proftpd/modules.conf
nano /etc/proftpd/modules.confEncontre:
#LoadModule mod_sql.cMude para:
LoadModule mod_sql.cEncontre:
#LoadModule mod_sql_mysql.cMude para:
LoadModule mod_sql_mysql.cExecute:
/etc/init.d/proftpd restart6 Mudanças no ISPConfig 3
Agora precisamos mudar um dos arquivos do ispconfig. Isso não é ideal, pois se você atualizar para uma nova versão, perderá as alterações, mas é a única maneira de fazer o proftpd funcionar que consegui encontrar.
Edite /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php
nano /usr/local/ispconfig/interface/web/sites/ftp_user_edit.php
Encontre:
$uid = $web["system_user"];
$gid = $web["system_group"];Substitua por:
$userinfo = posix_getpwnam($web["system_user"]);
$uid = $userinfo['uid'];
$gid = $userinfo['gid'];Nota: se você estiver atualmente logado no painel web do ISPConfig, você deve sair antes que as alterações sejam registradas em sua máquina.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.