Mail Hosting · 4 min read · Dec 28, 2025

Virtuelle Mail- und FTP-Hosting mit iRedMail und Pure-FTPd auf Debian Lenny

Virtuelle Mail- und FTP-Hosting mit iRedMail und Pure-FTPd auf Debian Lenny

iRedMail ist ein Shell-Skript, mit dem Sie in weniger als 2 Minuten eine voll funktionsfähige Mail-Lösung schnell bereitstellen können. Seit Version 0.5 unterstützt es CentOS 5.x, Debian 5.x, Ubuntu 8.04 und Ubuntu 9.04 (sowohl i386 als auch x86_64). iRedMail unterstützt sowohl OpenLDAP als auch MySQL als Backends zur Speicherung virtueller Domains und Benutzer.

Das OpenLDAP-Backend von iRedMail ermöglicht es Ihnen, alle Arten von Anwendungen zu integrieren. Diese Anleitung zeigt Ihnen, wie Sie pure-ftpd in das iRedMail-LDAP-Backend auf Debian Lenny integrieren, Passwörter werden in LDAP gespeichert und Sie können das Passwort über Webmail ändern.

Dieses Tutorial basiert auf Debian 5.01, daher empfehle ich Ihnen, ein minimales Debian 5.01 einzurichten, iredmail 0.51 zu installieren und OpenLDAP als Backend auszuwählen, wie in diesem Tutorial gezeigt, bevor Sie mit diesem Tutorial fortfahren:

  • iRedMail: Mail-Server mit LDAP, Postfix, RoundCube/SquirrelMail, Dovecot, ClamAV, SpamAssassin, Amavisd (Debian 5.0.1)
  • iRedMail: Erstellen Sie einen voll funktionsfähigen Mail-Server mit LDAP, Postfix, RoundCube, Dovecot, ClamAV, SpamAssassin, DKIM, SPF auf CentOS 5.x

1 Installieren Sie Pure-FTPd

Installieren Sie pure-ftpd:

apt-get install pure-ftpd-ldap

2 Konfigurieren Sie PureFTPd als eigenständigen Server

Jetzt müssen wir PureFTPd als eigenständigen Daemon konfigurieren (es wird derzeit von inetd gesteuert). Dazu öffnen wir /etc/default/pure-ftpd-common und ändern den Wert des Parameters STANDALONE_OR_INETD in standalone:

vi /etc/default/pure-ftpd-common

| #STANDALONE_OR_INETD=inetd STANDALONE_OR_INETD=standalone #ändern in standalone |

Als nächstes ändern wir /etc/inetd.conf und kommentieren die FTP-Zeile aus:

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

Anschließend starten wir inetd und PureFTPd neu:

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

3 Grundeinstellungen in /etc/pure-ftpd/conf/

Erstellen Sie die Datei /etc/pure-ftpd/conf/ChrootEveryone, die einfach den String yes enthält:

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

Dies wird PureFTPd dazu bringen, jeden virtuellen Benutzer in seinem Home-Verzeichnis zu chrooten, sodass er nicht in Verzeichnisse und Dateien außerhalb seines Home-Verzeichnisses browsen kann.

Erstellen Sie auch die Datei /etc/pure-ftpd/conf/CreateHomeDir, die erneut einfach den String yes enthält:

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

Dies wird PureFTPd dazu bringen, das Home-Verzeichnis eines Benutzers zu erstellen, wenn der Benutzer sich anmeldet und das Home-Verzeichnis noch nicht existiert.

Erstellen Sie schließlich die Datei /etc/pure-ftpd/conf/DontResolve, die erneut einfach den String yes enthält:

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

Dies wird bewirken, dass PureFTPd keine Hostnamen auflöst, was die Verbindungen erheblich beschleunigen und den Bandbreitenverbrauch reduzieren kann.

4 Finden Sie das Passwort für cn=vmail

Das vmail-Passwort wurde während der iredmail-Installation zufällig erstellt. Sie können das Passwort in /etc/postfix/ldap_virtual_mailbox_domains.cf finden:

cat /etc/postfix/ldap_virtual_mailbox_domains.cf

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

5 Konfigurieren Sie die LDAP-Einstellungen

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 #cn=vmail Passwort LDAPDefaultUID 1000 # <- UID des Benutzers 'vmail'. LDAPDefaultGID 1000 # <- GID des Benutzers 'vmail'. LDAPFilter (&(objectClass=PureFTPdUser)(mail=\L)(FTPStatus=enabled)) LDAPHomeDir FTPHomeDir # <- Dies ist ein neues Attribut, das wir hinzufügen werden LDAPVersion 3 |

6 Schema abrufen

Sie haben zwei Möglichkeiten, das pureftpd-Schema zu erhalten. Sie müssen nur eine auswählen.

  • Laden Sie das Schema herunter, das von iredmail geändert wurde.
  • Holen Sie sich das Schema, das mit pure-ftpd-1.0.24 geliefert wird, und ändern Sie es.

6.1 Laden Sie das Schema herunter, das von iredmail geändert wurde:

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

6.2 Holen Sie sich das Schema, das mit pure-ftpd-1.0.24 geliefert wird:

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/

Ändern Sie /etc/ldap/schema/pureftpd.schema:

Wir müssen ein weiteres Attribut ‘FTPHomeDir’ vor der Objektklassendefinition hinzufügen, das verwendet wird, um das FTP-Verzeichnis des Benutzers zu speichern.

vi /etc/ldap/schema/pureftpd.schema

| attributetype ( 1.3.6.1.4.1.6981.11.3.9 NAME 'FTPgid' DESC 'System uid (überschreibt gidNumber, wenn vorhanden)' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # Neues attributetype FTPHomeDir hinzufügen. attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME 'FTPHomeDir' DESC 'FTP-Verzeichnis' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ## Neuer Pure-FTPd-Objekttyp objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME 'PureFTPdUser' DESC 'PureFTPd-Benutzer mit optionalem Kontingent, Drosselung und Verhältnis' SUP top AUXILIARY MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $ FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $ FTPuid $ FTPgid $ FTPHomeDir ) ) # <-- $ FTPHomeDir hinzufügen |

7 Ändern Sie /etc/ldap/slapd.conf

vi /etc/ldap/slapd.conf

Fügen Sie pureftpd.schema nach iredmail.schema ein:

| include /etc/ldap/schema/iredmail.schema include /etc/ldap/schema/pureftpd.schema # <-- Diese Zeile hinzufügen. |

Fügen Sie einen Index für die in pureftpd.schema definierten Attribute hinzu:

| # Standardindex. # 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 # <-- Fügen Sie das Folgende hinzu #Index für FTP-Attribute. index FTPQuotaFiles,FTPQuotaMBytes eq,pres index FTPUploadRatio,FTPDownloadRatio eq,pres index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres |

8 Erstellen Sie das FTP-Home-Verzeichnis

FTP-Daten werden alle im Verzeichnis /home/ftp/ gespeichert. Erstellen Sie /home/ftp/, der Besitzer muss der Root-Benutzer sein.

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

9 Starten Sie den OpenLDAP-Dienst neu, um pureftpd.schema zu aktivieren

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

Stellen Sie sicher, dass pure-ftpd läuft:

# 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

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.