Hospedagem Virtual · 4 min read · Dec 28, 2025

Hospedagem Virtual de Email e FTP Com iRedMail e Pure-FTPd No Debian Lenny

Hospedagem Virtual de Email e FTP Com iRedMail e Pure-FTPd No Debian Lenny

iRedMail é um script de shell que permite implantar rapidamente uma solução de email completa em menos de 2 minutos. Desde a versão 0.5, ele suporta CentOS 5.x, Debian 5.x, Ubuntu 8.04 e Ubuntu 9.04 (tanto i386 quanto x86_64). iRedMail suporta tanto OpenLDAP quanto MySQL como backends para armazenar domínios e usuários virtuais.

O backend OpenLDAP do iRedMail permite integrar todos os tipos de aplicativos. Este guia mostra como integrar pure-ftpd no backend ldap do iRedMail no Debian Lenny, as senhas serão armazenadas no ldap e você pode alterar a senha através do webmail.

Este tutorial é baseado no Debian 5.01, então sugiro que você configure um Debian 5.01 mínimo, instale o iredmail 0.51 e escolha OpenLDAP como o backend, como mostrado neste tutorial antes de continuar com este tutorial:

  • iRedMail: Servidor de Email Com LDAP, Postfix, RoundCube/SquirrelMail, Dovecot, ClamAV, SpamAssassin, Amavisd (Debian 5.0.1)
  • iRedMail: Construa Um Servidor de Email Completo Com LDAP, Postfix, RoundCube, Dovecot, ClamAV, SpamAssassin, DKIM, SPF No CentOS 5.x

1 Instalar Pure-FTPd

Instale o pure-ftpd:

apt-get install pure-ftpd-ldap

2 Configurar PureFTPd Como Um Servidor Autônomo

Agora devemos configurar o PureFTPd como um daemon autônomo (ele está atualmente controlado pelo inetd). Para fazer isso, abrimos /etc/default/pure-ftpd-common e mudamos o valor do parâmetro STANDALONE_OR_INETD para standalone:

vi /etc/default/pure-ftpd-common

| #STANDALONE_OR_INETD=inetd STANDALONE_OR_INETD=standalone #mude para standalone |

Em seguida, modificamos /etc/inetd.conf e comentamos a linha ftp:

| #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper |

Depois, reiniciamos o inetd e o PureFTPd:

/etc/init.d/openbsd-inetd restart  
/etc/init.d/pure-ftpd-ldap restart

3 Configurações Básicas Em /etc/pure-ftpd/conf/

Crie o arquivo /etc/pure-ftpd/conf/ChrootEveryone que simplesmente contém a string yes:

echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

Isso fará com que o PureFTPd chroot cada usuário virtual em seu diretório home, para que ele não possa navegar em diretórios e arquivos fora de seu diretório home.

Crie também o arquivo /etc/pure-ftpd/conf/CreateHomeDir que novamente simplesmente contém a string yes:

echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

Isso fará com que o PureFTPd crie o diretório home de um usuário quando o usuário fizer login e o diretório home ainda não existir.

Finalmente, crie o arquivo /etc/pure-ftpd/conf/DontResolve que novamente simplesmente contém a string yes:

echo "yes" > /etc/pure-ftpd/conf/DontResolve

Isso fará com que o PureFTPd não procure nomes de host, o que pode acelerar significativamente as conexões e reduzir o uso de largura de banda.

4 Encontrar a Senha cn=vmail

A senha vmail foi criada aleatoriamente durante a instalação do iredmail. Você pode encontrar a senha em /etc/postfix/ldap_virtual_mailbox_domains.cf:

cat /etc/postfix/ldap_virtual_mailbox_domains.cf

| bind_dn = cn=vmail,dc=example,dc=com bind_pw = kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #senha cn=vmail |

5 Configurar Configurações LDAP

vi /etc/pure-ftpd/db/ldap.conf

| LDAPServer localhost LDAPPort 389 LDAPBaseDN o=domains,dc=example,dc=com LDAPBindDN cn=vmail,dc=example,dc=com LDAPBindPW kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #senha cn=vmail LDAPDefaultUID 1000 # <- UID do usuário 'vmail'. LDAPDefaultGID 1000 # <- GID do usuário 'vmail'. LDAPFilter (&(objectClass=PureFTPdUser)(mail=\L)(FTPStatus=enabled)) LDAPHomeDir FTPHomeDir # <- Este é um novo atributo, que adicionaremos LDAPVersion 3 |

6 Obter Esquema

Você tem duas maneiras de obter o esquema pureftpd. Você só precisa escolher uma.

  • Baixar o esquema que foi modificado pelo iredmail.
  • Obter o esquema enviado com pure-ftpd-1.0.24 e modificá-lo.

6.1 Baixar o esquema que foi modificado pelo iredmail:

wget http://iredmail.googlecode.com/svn/trunk/extra/pureftpd.schema -P /etc/ldap/schema/

6.2 Obter o esquema enviado com pure-ftpd-1.0.24:

cd /tmp/  
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.24.tar.bz2  
tar xjf pure-ftpd-1.0.24.tar.bz2  
cp pure-ftpd-1.0.24/pureftpd.schema /etc/ldap/schema/

Modifique /etc/ldap/schema/pureftpd.schema:

Precisamos adicionar mais um atributo ‘FTPHomeDir’ antes da definição do objectclass, usado para armazenar o diretório FTP do usuário.

vi /etc/ldap/schema/pureftpd.schema

| attributetype ( 1.3.6.1.4.1.6981.11.3.9 NAME 'FTPgid' DESC 'System uid (overrides gidNumber if present)' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # Adicione o novo attributetype FTPHomeDir. attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME 'FTPHomeDir' DESC 'Diretório FTP' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ## Novo tipo de objeto Pure-FTPd objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME 'PureFTPdUser' DESC 'Usuário PureFTPd com cota opcional, limitação e razão' SUP top AUXILIARY MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $ FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $ FTPuid $ FTPgid $ FTPHomeDir ) ) # <-- Adicione $ FTPHomeDir |

7 Modificar /etc/ldap/slapd.conf

vi /etc/ldap/slapd.conf

Inclua pureftpd.schema após iredmail.schema:

| include /etc/ldap/schema/iredmail.schema include /etc/ldap/schema/pureftpd.schema # <-- Adicione esta linha. |

Adicione índice para atributos definidos em pureftpd.schema:

| # Índice padrão. # index objectClass eq,pres index ou,cn,mail,surname,givenname,telephoneNumber eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub # <-- Adicione o abaixo #Índice para atributos FTP. index FTPQuotaFiles,FTPQuotaMBytes eq,pres index FTPUploadRatio,FTPDownloadRatio eq,pres index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres |

8 Criar Diretório Home FTP

Os dados FTP são todos armazenados no diretório /home/ftp/. Crie /home/ftp/, o proprietário deve ser o usuário root.

mkdir /home/ftp/  
ls -dl /home/ftp
drwxr-xr-x 2 root root 4096 Oct 3 16:53 /home/ftp

9 Reiniciar o Serviço OpenLDAP Para Fazer o pureftpd.schema Funcionar

/etc/init.d/slapd restart  
/etc/init.d/pure-ftpd-ldap restart

Certifique-se de que o pure-ftpd está em execução:

# netstat -ntlp | grep pure-ftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 12548/pure-ftpd (SE  
tcp6 0 0 :::21 :::* LISTEN 12548/pure-ftpd (SE
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.