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-ldap2 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 restart3 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/ChrootEveryoneDies 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/CreateHomeDirDies 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/DontResolveDies 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.confFü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/ftpdrwxr-xr-x 2 root root 4096 Okt 3 16:53 /home/ftp9 Starten Sie den OpenLDAP-Dienst neu, um pureftpd.schema zu aktivieren
/etc/init.d/slapd restart
/etc/init.d/pure-ftpd-ldap restartStellen Sie sicher, dass pure-ftpd läuft:
# netstat -ntlp | grep pure-ftpdtcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 12548/pure-ftpd (SE
tcp6 0 0 :::21 :::* LISTEN 12548/pure-ftpd (SEErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.