Server Setup · 9 min read · Sep 09, 2025
Mandriva Directory Server Su Debian Etch
Mandriva Directory Server Su Debian Etch
Version 1.1
Autore: Oliver Meyer
Questo documento descrive come configurare il Mandriva Directory Server (MDS) su Debian Etch. Il sistema risultante fornisce un server per ufficio completo per piccole e medie aziende - facile da amministrare tramite il Mandriva Management Console (MMC) basato sul web.
Caratteristiche principali
- Amministrazione facile tramite MMC
- Integrazione OpenLDAP a livello di sistema
- SAMBA Primary Domain Controller (PDC)
- Postfix Mailserver con Dovecot, Amavis, Spamassassin e ClamAV (POP3/IMAP/SSL/TLS/Quota)
- Server DNS BIND
- Server DHCP ISC
- Proxy web Squid con SquidGuard
Questo howto è una guida pratica senza alcuna garanzia - non copre i fondamenti teorici. Ci sono molti modi per configurare un sistema del genere - questo è il modo che ho scelto.
Preambolo
Questo howto è piuttosto complesso. Si prega di prendere il proprio tempo, leggerlo ampiamente e seguire i passaggi con attenzione. La minima variazione potrebbe influire sul fatto che la tua configurazione non funzioni correttamente.
1 Preparazione
1.1 Sistema di base
Configura un sistema debian etch standard e aggiornalo. Ho utilizzato la seguente configurazione per questo howto e la macchina virtuale allegata che è disponibile per i nostri abbonati:
Hostname: server1.example.com
Dominio SAMBA: EXAMPLE
IP: 192.168.0.100
Gateway: 192.168.0.2
Tutte le password: howtoforge
1.2 Nome host
Modifica il file hosts - assegna il nome host all’IP del server.
vi /etc/hostsDovrebbe apparire così:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# Le seguenti righe sono desiderabili per host compatibili con IPv6
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsDopo inserisci il nome host nel file hostname …
echo server1.example.com > /etc/hostname… e riavvia il sistema.
rebootQuando il sistema è di nuovo attivo, l’output dei due comandi …
hostname… e …
hostname -f… dovrebbe essere:
server1.example.com1.3 ACL del filesystem
Affinché SAMBA possa mappare le ACL del filesystem tra il server Linux e i client Windows, è necessario aggiungere il supporto ACL al punto di mount corrispondente.
vi /etc/fstabAggiungi l’opzione “ acl “ al punto di mount dove verranno memorizzati le directory SAMBA e gli utenti SAMBA avranno le loro home. Nel mio caso è “ / “ - il contenuto dovrebbe apparire così:
# /etc/fstab: informazioni statiche sul file system.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,acl,errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 Dopo rimonta il punto di mount per applicare le modifiche.
mount -o remount /Se tutto è andato bene, il comando …
mount -l… dovrebbe mostrare l’opzione “ acl “ per il punto di mount corrispondente:
/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)2 Repository
2.1 MDS
Il repository MDS fornisce i pacchetti relativi a MDS e anche pacchetti patchati per bind9 & dhcp3.
vi /etc/apt/sources.listAggiungi le seguenti righe al file.
# Repository MDS
deb http://mds.mandriva.org/pub/mds/debian etch main2.2 Debian Volatile
Il repository Debian Volatile fornisce pacchetti più recenti per ClamAV & Spamassassin rispetto al repository standard di debian.
vi /etc/apt/sources.listAggiungi le seguenti righe al file.
# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free2.3 Debian Backports
Il repository Debian Backports fornisce pacchetti più recenti per dovecot.
vi /etc/apt/sources.listAggiungi le seguenti righe al file.
# Debian Etch Backports
deb http://www.backports.org/debian etch-backports mainDopo aggiorna apt.
apt-get update3 Pacchetti necessari
3.1 Installazione
Installa i pacchetti necessari per questa configurazione.
apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin libnet-dns-perl razor pyzor dcc-client slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap bind9 samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-ppds fontconfig hpijs-ppds linuxprinting.org-ppdsI pacchetti dovecot attuali nel repository standard di debian hanno un bug in congiunzione con LDAP - quindi devi usare i pacchetti dovecot dai Debian Backports.
apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3dSe vuoi utilizzare stampanti HP è consigliato installare alcuni pacchetti in più.
apt-get install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core3.2 Configurazione
Durante l’installazione dei nuovi pacchetti ti verranno poste alcune domande - rispondi come segue.
3.2.1 LDAP
Inserisci la password per l’amministratore LDAP e confermala. ( howtoforge)
3.2.2 Samba
Inserisci un nome per il tuo dominio. ( EXAMPLE)
Seleziona “ No “ quando ti viene chiesto se il smb.conf dovrebbe essere modificato per utilizzare le impostazioni WINS da DHCP.
3.2.3 Postfix
Seleziona “ Internet Site “ come tipo generale di configurazione.
Inserisci “ server1.example.com “ come nome di posta.
3.2.4 Libnss-LDAP
Inserisci “ ldap://127.0.0.1/ “ come URI del server LDAP.
Inserisci “ dc=example,dc=com “ come nome per la base di ricerca.
Seleziona la versione LDAP. ( 3)
Inserisci “ cn=admin,dc=example,dc=com “ come account LDAP per root.
Inserisci la password per l’amministratore LDAP. ( howtoforge)
3.2.5 Libpam-LDAP
Seleziona “ Yes “ quando ti viene chiesto se il root locale dovrebbe essere l’amministratore del database.
Seleziona “ No “ quando ti viene chiesto se il database LDAP richiede accesso.
Inserisci “ cn=admin,dc=example,dc=com “ come account LDAP per root.
Inserisci la password per l’amministratore LDAP. ( howtoforge)
4 Configurazione LDAP
4.1 File di schema
Prima copia i file di schema per MMC, mail, SAMBA, printer, DNS e DHCP nella directory di schema LDAP.
cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schemaSuccessivamente includi i file di schema nella configurazione LDAP
vi /etc/ldap/slapd.confIncludi i file di schema dopo lo schema inetorgperson.
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schemaAbilita il controllo dello schema (sotto i file di schema inclusi).
schemacheck on4.2 Configurazione di base
In questo passaggio avrai bisogno della password dell’amministratore ldap (che hai definito durante l’installazione del pacchetto nel passaggio 3) in forma crittografata (SSHA) - quindi crittografiamola.
slappasswd -s %ldap_admin_password%E.g.:
slappasswd -s howtoforgeL’output dovrebbe apparire così:
{SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9AAnnotalo e procedi - apri il file di configurazione del server LDAP.
vi /etc/ldap/slapd.confCerca la riga commentata con l’entrata per l’amministratore LDAP (rootdn) …
# rootdn "cn=admin,dc=example,dc=com"… e commentala. Dopo aggiungi una nuova riga subito sotto. Devi inserire la password ldap crittografata che hai generato all’inizio di questo passaggio.
rootpw %encrypted_ldap_admin_password%E.g.:
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9ASuccessivamente dobbiamo modificare le opzioni di indicizzazione per il database. Cerca la seguente entrata:
# Opzioni di indicizzazione per il database #1Rimuovi la riga sottostante …
index objectClass eq… e inserisci le seguenti righe:
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eqOra aggiungi SAMBA all’elenco di accesso per il database. Cerca la seguente riga:
access to attrs=userPassword,shadowLastChangeCambia in modo che appaia così:
access to attrs=userPassword,sambaLMPassword,sambaNTPasswordA questo punto il file di configurazione del server LDAP dovrebbe apparire così:
# Questo è il file di configurazione principale di slapd. Vedi slapd.conf(5) per ulteriori
# informazioni sulle opzioni di configurazione.
#######################################################################
# Direttive globali:
# Caratteristiche da consentire
#allow bind_v2
# Definizioni di schema e objectClass
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
schemacheck on
# Dove viene messo il file pid. Lo script init.d
# non fermerà il server se lo cambi.
pidfile /var/run/slapd/slapd.pid
# Elenco di argomenti che sono stati passati al server
argsfile /var/run/slapd/slapd.args
# Leggi slapd.conf(5) per possibili valori
loglevel 0
# Dove sono memorizzati i moduli caricati dinamicamente
modulepath /usr/lib/ldap
moduleload back_bdb
# Il numero massimo di voci che viene restituito per un'operazione di ricerca
sizelimit 500
# Il parametro tool-threads imposta la quantità effettiva di CPU utilizzata
# per l'indicizzazione.
tool-threads 1
#######################################################################
# Direttive specifiche del backend per bdb:
# Le direttive specifiche del backend si applicano a questo backend fino a quando non si verifica un'altra
# direttiva 'backend'
backend bdb
checkpoint 512 30
#######################################################################
# Direttive specifiche del backend per 'other':
# Le direttive specifiche del backend si applicano a questo backend fino a quando non si verifica un'altra
# direttiva 'backend'
#backend
#######################################################################
# Direttive specifiche per il database #1, di tipo bdb:
# Le direttive specifiche per il database si applicano a questo database fino a quando non si verifica un'altra
# direttiva 'database'
database bdb
# La base della tua directory nel database #1
suffix "dc=example,dc=com"
# direttiva rootdn per specificare un superutente sul database. Questo è necessario
# per syncrepl.
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
# Dove i file del database sono fisicamente memorizzati per il database #1
directory "/var/lib/ldap"
# Per il pacchetto Debian utilizziamo 2MB come predefinito ma assicurati di aggiornare questo
# valore se hai molta RAM
dbconfig set_cachesize 0 2097152 0
# Sven Hartge ha segnalato che doveva impostare questo valore incredibilmente alto
# per far funzionare slapd. Vedi http://bugs.debian.org/303057
# per ulteriori informazioni.
# Numero di oggetti che possono essere bloccati contemporaneamente.
dbconfig set_lk_max_objects 1500
# Numero di blocchi (sia richiesti che concessi)
dbconfig set_lk_max_locks 1500
# Numero di lockers
dbconfig set_lk_max_lockers 1500
# Opzioni di indicizzazione per il database #1
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
# Salva il tempo in cui l'entrata viene modificata, per il database #1
lastmod on
# Dove memorizzare i log delle repliche per il database #1
# replogfile /var/lib/ldap/replog
# La userPassword per impostazione predefinita può essere cambiata
# dall'entrata che la possiede se sono autenticati.
# Altri non dovrebbero essere in grado di vederlo, tranne che per
# l'entrata admin qui sotto
# Queste righe di accesso si applicano solo al database #1
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn="cn=admin,dc=example,dc=com" write
by anonymous auth
by self write
by * none
# Assicurati l'accesso in lettura alla base per cose come
# supportedSASLMechanisms. Senza questo potresti
# avere problemi con SASL che non sa quali
# meccanismi sono disponibili e simili.
# Nota che questo è coperto anche dall'ACL 'access to *'
# qui sotto ma se cambi quello come le persone
# sono solite fare avrai comunque bisogno di questo se vuoi
# che SASL (e possibili altre cose) funzionino
# felicemente.
access to dn.base="" by * read
# L'amministratore dn ha accesso completo in scrittura, tutti gli altri
# possono leggere tutto.
access to *
by dn="cn=admin,dc=example,dc=com" write
by * read
# Per il supporto di roaming Netscape, ogni utente ottiene un roaming
# profilo per il quale hanno accesso in scrittura a
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=example,dc=com" write
# by dnattr=owner write
#######################################################################
# Direttive specifiche per il database #2, di tipo 'other' (può essere bdb anche):
# Le direttive specifiche per il database si applicano a questo database fino a quando non si verifica un'altra
# direttiva 'database'
#database
# La base della tua directory per il database #2
#suffix "dc=debian,dc=org" Inoltre devi modificare il file di configurazione LDAP.
vi /etc/ldap/ldap.confAggiungi le seguenti righe: host 127.0.0.1
base dc=example,dc=com
Dopo riavvia il server LDAP.
/etc/init.d/slapd restartRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.