Hébergement · 4 min read · Dec 28, 2025

Hébergement de Mail et FTP Virtuel Avec iRedMail et Pure-FTPd Sur Debian Lenny

Hébergement de Mail et FTP Virtuel Avec iRedMail et Pure-FTPd Sur Debian Lenny

iRedMail est un script shell qui vous permet de déployer rapidement une solution de messagerie complète en moins de 2 minutes. Depuis la version 0.5, il prend en charge CentOS 5.x, Debian 5.x, Ubuntu 8.04 et Ubuntu 9.04 (i386 et x86_64). iRedMail prend en charge à la fois OpenLDAP et MySQL comme backends pour stocker des domaines et des utilisateurs virtuels.

Le backend OpenLDAP d’iRedMail vous permet d’intégrer toutes sortes d’applications. Ce guide vous montre comment intégrer pure-ftpd dans le backend ldap d’iRedMail sur Debian Lenny, les mots de passe seront stockés dans ldap et vous pourrez changer le mot de passe via le webmail.

Ce tutoriel est basé sur Debian 5.01, donc je vous suggère de configurer un minimum de Debian 5.01, d’installer iredmail 0.51 et de choisir OpenLDAP comme backend, comme indiqué dans ce tutoriel avant de continuer avec ce tutoriel :

  • iRedMail : Serveur Mail Avec LDAP, Postfix, RoundCube/SquirrelMail, Dovecot, ClamAV, SpamAssassin, Amavisd (Debian 5.0.1)
  • iRedMail : Construire Un Serveur Mail Complet Avec LDAP, Postfix, RoundCube, Dovecot, ClamAV, SpamAssassin, DKIM, SPF Sur CentOS 5.x

1 Installer Pure-FTPd

Installez pure-ftpd :

apt-get install pure-ftpd-ldap

2 Configurer PureFTPd Comme Serveur Autonome

Maintenant, nous devons configurer PureFTPd comme un démon autonome (il est actuellement contrôlé par inetd). Pour ce faire, nous ouvrons /etc/default/pure-ftpd-common et changeons la valeur du paramètre STANDALONE_OR_INETD en standalone :

vi /etc/default/pure-ftpd-common

| #STANDALONE_OR_INETD=inetd STANDALONE_OR_INETD=standalone #changer en standalone |

Ensuite, nous modifions /etc/inetd.conf et commentons la ligne ftp :

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

Ensuite, nous redémarrons inetd et PureFTPd :

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

3 Paramètres de Base Dans /etc/pure-ftpd/conf/

Créez le fichier /etc/pure-ftpd/conf/ChrootEveryone qui contient simplement la chaîne yes :

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

Cela fera en sorte que PureFTPd chroot chaque utilisateur virtuel dans son répertoire personnel afin qu’il ne puisse pas parcourir les répertoires et fichiers en dehors de son répertoire personnel.

Créez également le fichier /etc/pure-ftpd/conf/CreateHomeDir qui contient encore une fois simplement la chaîne yes :

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

Cela fera en sorte que PureFTPd crée un répertoire personnel pour l’utilisateur lorsque l’utilisateur se connecte et que le répertoire personnel n’existe pas encore.

Enfin, créez le fichier /etc/pure-ftpd/conf/DontResolve qui contient encore une fois simplement la chaîne yes :

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

Cela fera que PureFTPd ne recherche pas les noms d’hôtes, ce qui peut considérablement accélérer les connexions et réduire l’utilisation de la bande passante.

4 Trouver le Mot de Passe cn=vmail

Le mot de passe vmail a été créé aléatoirement lors de l’installation d’iredmail. Vous pouvez trouver le mot de passe dans /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 #mot de passe cn=vmail |

5 Configurer les Paramètres 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 #mot de passe cn=vmail LDAPDefaultUID 1000 # <- UID de l'utilisateur 'vmail'. LDAPDefaultGID 1000 # <- GID de l'utilisateur 'vmail'. LDAPFilter (&(objectClass=PureFTPdUser)(mail=\L)(FTPStatus=enabled)) LDAPHomeDir FTPHomeDir # <- C'est un nouvel attribut, nous allons l'ajouter LDAPVersion 3 |

6 Obtenir le Schéma

Vous avez deux façons d’obtenir le schéma pureftpd. Vous n’avez besoin de choisir qu’une seule.

  • Téléchargez le schéma qui a été modifié par iredmail.
  • Obtenez le schéma fourni avec pure-ftpd-1.0.24 et modifiez-le.

6.1 Téléchargez le schéma qui a été modifié par iredmail :

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

6.2 Obtenez le schéma fourni avec 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/

Modifiez /etc/ldap/schema/pureftpd.schema :

Nous devons ajouter un attribut supplémentaire ‘FTPHomeDir’ avant la définition de l’objectclass, utilisé pour stocker le répertoire FTP de l’utilisateur.

vi /etc/ldap/schema/pureftpd.schema

| attributetype ( 1.3.6.1.4.1.6981.11.3.9 NAME 'FTPgid' DESC 'UID système (remplace gidNumber si présent)' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # Ajouter un nouvel attribut FTPHomeDir. attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME 'FTPHomeDir' DESC 'Répertoire FTP' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ## Nouveau type d'objet Pure-FTPd objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME 'PureFTPdUser' DESC 'Utilisateur PureFTPd avec quota optionnel, limitation et ratio' SUP top AUXILIARY MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $ FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $ FTPuid $ FTPgid $ FTPHomeDir ) ) # <-- Ajouter $ FTPHomeDir |

7 Modifier /etc/ldap/slapd.conf

vi /etc/ldap/slapd.conf

Incluez pureftpd.schema après iredmail.schema :

| include /etc/ldap/schema/iredmail.schema include /etc/ldap/schema/pureftpd.schema # <-- Ajouter cette ligne. |

Ajoutez un index pour les attributs définis dans pureftpd.schema :

| # Index par défaut. # 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 # <-- Ajouter ci-dessous #Index pour les attributs FTP. index FTPQuotaFiles,FTPQuotaMBytes eq,pres index FTPUploadRatio,FTPDownloadRatio eq,pres index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres |

8 Créer le Répertoire Personnel FTP

Les données FTP sont toutes stockées dans le répertoire /home/ftp/. Créez /home/ftp/, le propriétaire doit être l’utilisateur root.

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

9 Redémarrer le Service OpenLDAP Pour Faire Fonctionner pureftpd.schema

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

Assurez-vous que pure-ftpd fonctionne :

# 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

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.