Hosting · 4 min read · Dec 28, 2025

Hosting di posta virtuale e FTP con iRedMail e Pure-FTPd su Debian Lenny

Hosting di posta virtuale e FTP con iRedMail e Pure-FTPd su Debian Lenny

iRedMail è uno script shell che ti consente di implementare rapidamente una soluzione di posta completa in meno di 2 minuti. Dalla versione 0.5, supporta CentOS 5.x, Debian 5.x, Ubuntu 8.04 e Ubuntu 9.04 (sia i386 che x86_64). iRedMail supporta sia OpenLDAP che MySQL come backend per memorizzare domini virtuali e utenti.

Il backend OpenLDAP di iRedMail ti consente di integrare tutti i tipi di applicazioni. Questa guida ti mostra come integrare pure-ftpd nel backend ldap di iRedMail su Debian Lenny, le password saranno memorizzate in ldap e puoi cambiare la password tramite webmail.

Questo tutorial è basato su Debian 5.01, quindi ti consiglio di configurare un minimo di Debian 5.01, installare iredmail 0.51 e scegliere OpenLDAP come backend, come mostrato in questo tutorial prima di continuare con questo tutorial:

  • iRedMail: Server di posta con LDAP, Postfix, RoundCube/SquirrelMail, Dovecot, ClamAV, SpamAssassin, Amavisd (Debian 5.0.1)
  • iRedMail: Costruisci un server di posta completo con LDAP, Postfix, RoundCube, Dovecot, ClamAV, SpamAssassin, DKIM, SPF su CentOS 5.x

1 Installa Pure-FTPd

Installa pure-ftpd:

apt-get install pure-ftpd-ldap

2 Configura PureFTPd come server autonomo

Ora dobbiamo configurare PureFTPd come demone autonomo (attualmente è controllato da inetd). Per fare ciò, apriamo /etc/default/pure-ftpd-common e cambiamo il valore del parametro STANDALONE_OR_INETD in standalone:

vi /etc/default/pure-ftpd-common

| #STANDALONE_OR_INETD=inetd STANDALONE_OR_INETD=standalone #cambia in standalone |

Successivamente, modifichiamo /etc/inetd.conf e commentiamo la riga ftp:

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

Dopo, riavviamo inetd e PureFTPd:

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

3 Impostazioni di base in /etc/pure-ftpd/conf/

Crea il file /etc/pure-ftpd/conf/ChrootEveryone che contiene semplicemente la stringa yes:

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

Questo farà sì che PureFTPd chroot ogni utente virtuale nella sua home directory, quindi non sarà in grado di navigare in directory e file al di fuori della sua home directory.

Crea anche il file /etc/pure-ftpd/conf/CreateHomeDir che contiene di nuovo semplicemente la stringa yes:

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

Questo farà sì che PureFTPd crei la home directory di un utente quando l’utente accede e la home directory non esiste ancora.

Infine, crea il file /etc/pure-ftpd/conf/DontResolve che contiene di nuovo semplicemente la stringa yes:

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

Questo farà sì che PureFTPd non cerchi nomi host, il che può accelerare significativamente le connessioni e ridurre l’uso della larghezza di banda.

4 Trova la password cn=vmail

La password vmail è stata creata casualmente durante l’installazione di iredmail. Puoi trovare la password in /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 #password cn=vmail |

5 Configura le impostazioni 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 #password cn=vmail LDAPDefaultUID 1000 # <- UID dell'utente 'vmail'. LDAPDefaultGID 1000 # <- GID dell'utente 'vmail'. LDAPFilter (&(objectClass=PureFTPdUser)(mail=\L)(FTPStatus=enabled)) LDAPHomeDir FTPHomeDir # <- Questo è un nuovo attributo, lo aggiungeremo LDAPVersion 3 |

6 Ottieni lo schema

Hai due modi per ottenere lo schema pureftpd. Devi solo scegliere uno.

  • Scarica lo schema che è stato modificato da iredmail.
  • Ottieni lo schema fornito con pure-ftpd-1.0.24 e modificalo.

6.1 Scarica lo schema che è stato modificato da iredmail:

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

6.2 Ottieni lo schema fornito con 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/

Modifica /etc/ldap/schema/pureftpd.schema: Dobbiamo aggiungere un altro attributo ‘FTPHomeDir’ prima della definizione dell’objectclass, utilizzato per memorizzare la directory FTP dell’utente.

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 ) # Aggiungi il nuovo attributo FTPHomeDir. attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME 'FTPHomeDir' DESC 'Directory FTP' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ## Nuovo tipo di oggetto Pure-FTPd objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME 'PureFTPdUser' DESC 'Utente PureFTPd con quota opzionale, limitazione e rapporto' SUP top AUXILIARY MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $ FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $ FTPuid $ FTPgid $ FTPHomeDir ) ) # <-- Aggiungi $ FTPHomeDir |

7 Modifica /etc/ldap/slapd.conf

vi /etc/ldap/slapd.conf

Includi pureftpd.schema dopo iredmail.schema:

| include /etc/ldap/schema/iredmail.schema include /etc/ldap/schema/pureftpd.schema # <-- Aggiungi questa riga. |

Aggiungi indice per gli attributi definiti in pureftpd.schema:

| # Indice predefinito. # 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 # <-- Aggiungi quanto segue #Indice per gli attributi FTP. index FTPQuotaFiles,FTPQuotaMBytes eq,pres index FTPUploadRatio,FTPDownloadRatio eq,pres index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres |

8 Crea la directory home FTP

I dati FTP sono tutti memorizzati nella directory /home/ftp/. Crea /home/ftp/, il proprietario deve essere l’utente root.

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

9 Riavvia il servizio OpenLDAP per far funzionare pureftpd.schema

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

Assicurati che pure-ftpd sia in esecuzione:

# 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

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.