Server Setup · 9 min read · Sep 09, 2025
Mandriva Directory Server Auf Debian Etch
Mandriva Directory Server Auf Debian Etch
Version 1.1
Autor: Oliver Meyer
Dieses Dokument beschreibt, wie man den Mandriva Directory Server (MDS) auf Debian Etch einrichtet. Das resultierende System bietet einen voll ausgestatteten Büroserver für kleine und mittlere Unternehmen - einfach zu verwalten über die webbasierte Mandriva Management Console (MMC).
Hauptmerkmale
- Einfache Verwaltung über MMC
- Systemweite OpenLDAP-Integration
- SAMBA Primärer Domänencontroller (PDC)
- Postfix-Mailserver mit Dovecot, Amavis, Spamassassin und ClamAV (POP3/IMAP/SSL/TLS/Quota)
- BIND DNS-Server
- ISC DHCP-Server
- Squid-Web-Proxy mit SquidGuard
Dieses Howto ist ein praktischer Leitfaden ohne jegliche Garantie - es behandelt nicht die theoretischen Hintergründe. Es gibt viele Möglichkeiten, ein solches System einzurichten - dies ist der Weg, den ich gewählt habe.
Vorwort
Dieses Howto ist ziemlich komplex. Bitte nehmen Sie sich Zeit, lesen Sie es gründlich und folgen Sie den Schritten genau. Die kleinste Abweichung könnte dazu führen, dass Ihre Einrichtung nicht korrekt funktioniert.
1 Vorbereitung
1.1 Grundsystem
Richten Sie ein Standard-Debian-Etch-System ein und aktualisieren Sie es. Ich habe die folgende Konfiguration für dieses Howto und die angehängte virtuelle Maschine verwendet, die unseren Abonnenten zur Verfügung steht:
Hostname: server1.example.com
SAMBA-Domäne: EXAMPLE
IP: 192.168.0.100
Gateway: 192.168.0.2
Alle Passwörter: howtoforge
1.2 Hostname
Bearbeiten Sie die Hosts-Datei - weisen Sie den Hostnamen der Server-IP zu.
vi /etc/hostsEs sollte so aussehen:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsFügen Sie danach den Hostnamen in die Hostname-Datei ein …
echo server1.example.com > /etc/hostname… und starten Sie das System neu.
rebootWenn das System wieder hochgefahren ist, sollte die Ausgabe der beiden Befehle …
hostname… und …
hostname -f… sein:
server1.example.com1.3 Dateisystem-ACLs
Damit SAMBA in der Lage ist, Dateisystem-ACLs zwischen dem Linux-Server und den Windows-Clients zuzuordnen, müssen Sie die ACL-Unterstützung für den entsprechenden Mount-Punkt hinzufügen.
vi /etc/fstabFügen Sie die Option “ acl “ zum Mount-Punkt hinzu, an dem die SAMBA-Verzeichnisse gespeichert werden und die SAMBA-Benutzer ihre Home-Verzeichnisse haben. In meinem Fall ist es “ / “ - der Inhalt sollte so aussehen:
# /etc/fstab: statische Dateisysteminformationen.
#
#
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 Führen Sie danach den Mount-Punkt erneut ein, um die Änderungen wirksam zu machen.
mount -o remount /Wenn alles gut gelaufen ist, sollte der Befehl …
mount -l… die Option “ acl “ für den entsprechenden Mount-Punkt anzeigen:
/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)2 Repositories
2.1 MDS
Das MDS-Repository stellt die MDS-bezogenen Pakete sowie gepatchte Pakete für bind9 & dhcp3 bereit.
vi /etc/apt/sources.listFügen Sie die folgenden Zeilen in die Datei ein.
# MDS-Repository
deb http://mds.mandriva.org/pub/mds/debian etch main2.2 Debian Volatile
Das Debian Volatile-Repository stellt neuere Pakete für ClamAV & Spamassassin als das Standard-Debian-Repository bereit.
vi /etc/apt/sources.listFügen Sie die folgenden Zeilen in die Datei ein.
# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free2.3 Debian Backports
Das Debian Backports-Repository stellt neuere Pakete für dovecot bereit.
vi /etc/apt/sources.listFügen Sie die folgenden Zeilen in die Datei ein.
# Debian Etch Backports
deb http://www.backports.org/debian etch-backports mainAktualisieren Sie danach apt.
apt-get update3 Benötigte Pakete
3.1 Installation
Installieren Sie die benötigten Pakete für diese Einrichtung.
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-ppdsDie aktuellen dovecot-Pakete im Standard-Debian-Repository haben einen Fehler in Verbindung mit LDAP - daher müssen Sie die dovecot-Pakete aus Debian Backports verwenden.
apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3dWenn Sie HP-Drucker verwenden möchten, wird empfohlen, einige weitere Pakete zu installieren.
apt-get install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core3.2 Konfiguration
Während der Installation der neuen Pakete werden Ihnen einige Fragen gestellt - beantworten Sie diese wie folgt.
3.2.1 LDAP
Geben Sie das Passwort für den LDAP-Admin ein und bestätigen Sie es. ( howtoforge)
3.2.2 Samba
Geben Sie einen Namen für Ihre Domäne ein. ( EXAMPLE)
Wählen Sie “ Nein “ aus, wenn Sie gefragt werden, ob die smb.conf geändert werden soll, um WINS-Einstellungen von DHCP zu verwenden.
3.2.3 Postfix
Wählen Sie “ Internet Site “ als allgemeinen Konfigurationstyp.
Geben Sie “ server1.example.com “ als Mailnamen ein.
3.2.4 Libnss-LDAP
Geben Sie “ ldap://127.0.0.1/ “ als LDAP-Server-URI ein.
Geben Sie “ dc=example,dc=com “ als Namen für die Suchbasis ein.
Wählen Sie die LDAP-Version. ( 3)
Geben Sie “ cn=admin,dc=example,dc=com “ als LDAP-Konto für root ein.
Geben Sie das Passwort für den LDAP-Admin ein. ( howtoforge)
3.2.5 Libpam-LDAP
Wählen Sie “ Ja “ aus, wenn Sie gefragt werden, ob der lokale Root der Datenbank-Admin sein soll.
Wählen Sie “ Nein “ aus, wenn Sie gefragt werden, ob die LDAP-Datenbank eine Anmeldung erfordert.
Geben Sie “ cn=admin,dc=example,dc=com “ als LDAP-Konto für root ein.
Geben Sie das Passwort für den LDAP-Admin ein. ( howtoforge)
4 LDAP-Konfiguration
4.1 Schema-Dateien
Zuerst kopieren Sie die Schema-Dateien für MMC, Mail, SAMBA, Drucker, DNS und DHCP in das LDAP-Schemaverzeichnis.
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.schemaFügen Sie als Nächstes die Schema-Dateien in die LDAP-Konfiguration ein
vi /etc/ldap/slapd.confFügen Sie die Schema-Dateien nach dem inetorgperson-Schema ein.
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.schemaAktivieren Sie die Schemacheck (unter den eingefügten Schema-Dateien).
schemacheck on4.2 Grundkonfiguration
In diesem Schritt benötigen Sie das LDAP-Admin-Passwort (das Sie während der Paketinstallation in Schritt 3 definiert haben) in verschlüsselter Form (SSHA) - also lassen Sie uns es verschlüsseln.
slappasswd -s %ldap_admin_password%Z.B.:
slappasswd -s howtoforgeDie Ausgabe sollte so aussehen:
{SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9ANotieren Sie es und fahren Sie fort - öffnen Sie die LDAP-Serverkonfigurationsdatei.
vi /etc/ldap/slapd.confSuchen Sie die kommentierte Zeile mit dem Eintrag für den LDAP-Admin (rootdn) …
# rootdn "cn=admin,dc=example,dc=com"… und kommentieren Sie sie aus. Fügen Sie danach eine neue Zeile direkt darunter hinzu. Sie müssen das verschlüsselte LDAP-Admin-Passwort eingeben, das Sie zu Beginn dieses Schrittes generiert haben.
rootpw %encrypted_ldap_admin_password%Z.B.:
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9AAls Nächstes müssen wir die Indizierungsoptionen für die Datenbank ändern. Suchen Sie den folgenden Eintrag:
# Indizierungsoptionen für Datenbank #1Entfernen Sie die folgende Zeile …
index objectClass eq… und fügen Sie die folgenden Zeilen ein:
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 eqFügen Sie jetzt SAMBA zur Zugriffsliste für die Datenbank hinzu. Suchen Sie die folgende Zeile:
access to attrs=userPassword,shadowLastChangeÄndern Sie sie so, dass sie so aussieht:
access to attrs=userPassword,sambaLMPassword,sambaNTPasswordAn diesem Punkt sollte die LDAP-Serverkonfigurationsdatei so aussehen:
# Dies ist die Hauptkonfigurationsdatei für slapd. Siehe slapd.conf(5) für weitere
# Informationen zu den Konfigurationsoptionen.
#######################################################################
# Globale Direktiven:
# Funktionen, die erlaubt sind
#allow bind_v2
# Schema- und objectClass-Definitionen
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
# Wo die PID-Datei abgelegt wird. Das init.d-Skript
# wird den Server nicht stoppen, wenn Sie dies ändern.
pidfile /var/run/slapd/slapd.pid
# Liste der Argumente, die an den Server übergeben wurden
argsfile /var/run/slapd/slapd.args
# Lesen Sie slapd.conf(5) für mögliche Werte
loglevel 0
# Wo die dynamisch geladenen Module gespeichert sind
modulepath /usr/lib/ldap
moduleload back_bdb
# Die maximale Anzahl von Einträgen, die für eine Suchoperation zurückgegeben werden
sizelimit 500
# Der tool-threads-Parameter legt die tatsächliche Anzahl von CPUs fest, die verwendet werden
# für die Indizierung.
tool-threads 1
#######################################################################
# Spezifische Backend-Direktiven für bdb:
# Backend-spezifische Direktiven gelten für dieses Backend, bis eine andere
# 'backend'-Direktive auftritt
backend bdb
checkpoint 512 30
#######################################################################
# Spezifische Backend-Direktiven für 'andere':
# Backend-spezifische Direktiven gelten für dieses Backend, bis eine andere
# 'backend'-Direktive auftritt
#backend
#######################################################################
# Spezifische Direktiven für Datenbank #1, vom Typ bdb:
# Datenbankspezifische Direktiven gelten für diese Datenbank, bis eine andere
# 'database'-Direktive auftritt
database bdb
# Die Basis Ihres Verzeichnisses in Datenbank #1
suffix "dc=example,dc=com"
# rootdn-Direktive zur Angabe eines Superbenutzers in der Datenbank. Dies ist erforderlich
# für syncrepl.
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
# Wo die Datenbankdateien physisch für Datenbank #1 gespeichert werden
directory "/var/lib/ldap"
# Für das Debian-Paket verwenden wir 2 MB als Standard, aber stellen Sie sicher, dass Sie diesen
# Wert aktualisieren, wenn Sie viel RAM haben
dbconfig set_cachesize 0 2097152 0
# Sven Hartge berichtete, dass er diesen Wert unglaublich hoch setzen musste,
# um slapd überhaupt zum Laufen zu bringen. Siehe http://bugs.debian.org/303057
# für weitere Informationen.
# Anzahl der Objekte, die gleichzeitig gesperrt werden können.
dbconfig set_lk_max_objects 1500
# Anzahl der Sperren (sowohl angefordert als auch gewährt)
dbconfig set_lk_max_locks 1500
# Anzahl der Locker
dbconfig set_lk_max_lockers 1500
# Indizierungsoptionen für Datenbank #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
# Speichern Sie die Zeit, zu der der Eintrag geändert wird, für Datenbank #1
lastmod on
# Wo die Replikatprotokolle für Datenbank #1 gespeichert werden
# replogfile /var/lib/ldap/replog
# Das userPassword kann standardmäßig geändert werden
# von dem Eintrag, der es besitzt, wenn sie authentifiziert sind.
# Andere sollten es nicht sehen können, außer dem
# Admin-Eintrag unten
# Diese Zugriffszeilen gelten nur für Datenbank #1
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn="cn=admin,dc=example,dc=com" write
by anonymous auth
by self write
by * none
# Stellen Sie sicher, dass der Zugriff auf die Basis für Dinge wie
# supportedSASLMechanisms gewährleistet ist. Ohne dies könnten Sie
# Probleme mit SASL haben, die nicht wissen, welche
# Mechanismen verfügbar sind und ähnliches.
# Beachten Sie, dass dies auch durch den 'access to *'
# ACL unten abgedeckt ist, aber wenn Sie das ändern, wie es die Leute
# gewohnt sind, müssen Sie dies immer noch haben, wenn Sie
# möchten, dass SASL (und möglicherweise andere Dinge) gut funktioniert.
access to dn.base="" by * read
# Der Admin-dn hat vollen Schreibzugriff, alle anderen
# können alles lesen.
access to *
by dn="cn=admin,dc=example,dc=com" write
by * read
# Für Netscape Roaming-Unterstützung erhält jeder Benutzer ein Roaming
# Profil, auf das sie Schreibzugriff haben
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=example,dc=com" write
# by dnattr=owner write
#######################################################################
# Spezifische Direktiven für Datenbank #2, vom Typ 'andere' (kann auch bdb sein):
# Datenbankspezifische Direktiven gelten für diese Datenbank, bis eine andere
# 'database'-Direktive auftritt
#database
# Die Basis Ihres Verzeichnisses für Datenbank #2
#suffix "dc=debian,dc=org" Zusätzlich müssen Sie die LDAP-Konfigurationsdatei bearbeiten.
vi /etc/ldap/ldap.confFügen Sie die folgenden Zeilen hinzu: host 127.0.0.1
base dc=example,dc=com
Starten Sie danach den LDAP-Server neu.
/etc/init.d/slapd restartErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.