Server-Konfiguration · 8 min read · Oct 06, 2025

Mandriva Directory Server Auf Debian Etch - Seite 2

5 SAMBA

5.1 Grundkonfiguration

Zuerst SAMBA stoppen.

/etc/init.d/samba stop

Kopiere die Beispiel-SAMBA-Konfigurationsdatei in das SAMBA-Verzeichnis …

cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/

… und passe sie an deine Bedürfnisse an.

vi /etc/samba/smb.conf

Setze die folgenden Werte im Abschnitt [global]:

workgroup = EXAMPLE
netbiosname = PDC-SRV-EXAMPLE
ldap admin dn = cn=admin,dc=example,dc=com
ldap suffix = dc=example,dc=com
logon path = \%N\profiles\%U

Füge die folgenden Zeilen zum Abschnitt [global] hinzu:

preferred master = yes
os level = 65
wins support = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
logon drive = H:
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = “Changing password for\nNew password“ %n\n “Retype new password“ %n\n
add user script = /usr/sbin/smbldap-useradd -m “%u”
add user to group script = /usr/sbin/smbldap-groupmod -m “%u” “%g”
set primary group script = /usr/sbin/smbldap-usermod -g “%g” “%u”
add group script = /usr/sbin/ambldap-groupadd -p “%g”
delete user script = /usr/sbin/smbldap-userdel “%u”
delete user from group script = /usr/sbin/smbldap-groupmod -x “%u” “%g”
delete group script = /usr/sbin/smbldap-groupdel “%g”
obey pam restrictions = no
ldap idmap suffix = ou=Users
ldap delete dn = yes
security = user

Füge die folgende Zeile zum Abschnitt [homes] hinzu:

hide files = /Maildir/

Entferne die folgende Zeile aus den Abschnitten [printers] und [print$]:

printer admin = root,@lpadmin

Setze die folgenden Werte im Abschnitt [print$]:

write list = Administrator,root,@lpadmin

Füge die folgende Zeile zum Abschnitt [profiles] hinzu:

hide files = /desktop.ini/ntuser.ini/NTUSER.*/

Setze die folgenden Werte im Abschnitt [archives]:

path = /home/samba/archives

An diesem Punkt sollte die SAMBA-Konfigurationsdatei wie folgt aussehen:

     [global]
        workgroup = EXAMPLE
        netbiosname = PDC-SRV-EXAMPLE
        preferred master = yes
        os level = 65
        wins support = yes
        enable privileges = yes
        timeserver = yes
        socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
        log level = 3
        null passwords = yes
        security = user
        # unix charset = ISO8859-1
        name resolve order = bcast host
        domain logons = yes
        domain master = yes
        printing = cups
        printcap name = cups
        logon path = \\%N\profiles\%U
        logon script = logon.bat
        logon drive = H:
        map acl inherit = yes
        nt acl support = yes
        passdb backend = ldapsam:ldap://127.0.0.1/
        obey pam restrictions = no  

        ldap admin dn = cn=admin,dc=example,dc=com
        ldap suffix = dc=example,dc=com
        ldap group suffix = ou=Groups
        ldap user suffix = ou=Users
        ldap machine suffix = ou=Computers
        ldap idmap suffix = ou=Users
        ldap passwd sync = yes
        ldap delete dn = yes  

        passwd program = /usr/sbin/smbldap-passwd -u %u
        passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n
         
    add user script = /usr/sbin/smbldap-useradd -m "%u"
        add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
        set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
        add group script = /usr/sbin/ambldap-groupadd -p "%g"
        add machine script = /usr/lib/mmc/add_machine_script '%u'
        delete user script = /usr/sbin/smbldap-userdel "%u"
        delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
        delete group script = /usr/sbin/smbldap-groupdel "%g"  

     [homes]
        comment = Home-Verzeichnisse
        browseable = no
        writeable = yes
        create mask = 0700
        directory mask = 0700
    hide files = /Maildir/  

     [public]
        comment = Öffentlicher Freigabe
        path = /home/samba/shares/public
        browseable = yes
        public = yes
        writeable = yes  

     [archives]
        comment = Backup-Freigabe
        path = /home/samba/archives
        browseable = yes
        public = no
        writeable = no  

     [printers]
        comment = Drucker
        path = /tmp
        browseable = no
        public = yes
        guest ok = yes
        writeable = no
        printable = yes  

     [print$]
        comment = Treiber
        path = /var/lib/samba/printers
        browseable = yes
        guest ok = yes
        read only = yes
        write list = Administrator,root,@lpadmin  

     [netlogon]
        path = /home/samba/netlogon
        public = no
        writeable = no
        browseable = no  

     [profiles]
        path = /home/samba/profiles
        writeable = yes
        create mask = 0700
        directory mask = 0700
        browseable = no
        hide files = /desktop.ini/ntuser.ini/NTUSER.*/  

     [partage]
        comment = aucun
        path = /home/samba/partage
        browseable = yes
        public = no
        writeable = yes

Wenn alles in Ordnung war, sollte der Befehl …

testparm

… keine Fehler ausgeben.

Jetzt gib SAMBA die benötigten Anmeldeinformationen, um in das LDAP zu schreiben.

smbpasswd -w %ldap_admin_password%

Z.B.:

smbpasswd -w howtoforge

Die Ausgabe sollte wie folgt aussehen:

Setting stored password for "cn=admin,dc=example,dc=com" in secrets.tdb

Als nächstes musst du eine SID für deine Arbeitsgruppe erstellen.

net getlocalsid %your_workgroup%

Z.B.:

net getlocalsid EXAMPLE

Die Ausgabe sollte wie folgt aussehen - notiere sie, du wirst sie in wenigen Momenten benötigen:

SID for domain EXAMPLE is: S-1-5-21-3159899821-123882392-54881133

Überprüfe, ob die SID wirklich in LDAP aufgezeichnet wurde.

slapcat | grep sambaDomainName

Die Ausgabe sollte wie folgt aussehen:

dn: sambaDomainName=EXAMPLE,dc=example,dc=com  
sambaDomainName: EXAMPLE

Jetzt starte SAMBA

/etc/init.d/samba start

5.2 LDAP-Verzeichnis

Zuerst musst du die smbldap-tools-Konfigurationsdatei erstellen - sie definiert, wie mit dem LDAP-Server kommuniziert wird.

vi /etc/smbldap-tools/smbldap_bind.conf

Der Inhalt sollte wie folgt aussehen:

slaveDN="cn=admin,dc=example,dc=com"
slavePw="howtoforge"
masterDN="cn=admin,dc=example,dc=com"
masterPw="howtoforge"

Jetzt erstelle die Hauptkonfigurationsdatei.

vi /etc/smbldap-tools/smbldap.conf

Der Inhalt sollte wie folgt aussehen (ersetze die SID durch deine eigene!):

SID="S-1-5-21-3159899821-123882392-54881133"
sambaDomain="EXAMPLE"
ldapTLS="0"
suffix="dc=example,dc=com"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=EXAMPLE,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-SRV-EXAMPLE\%U"
userProfile="\\PDC-SRV-EXAMPLE\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="example.com"
smbpasswd="/usr/bin/smbpasswd"

Zeit, das LDAP-Verzeichnis zu befüllen. Dies wird auch das Konto des Domänenadministrators (Administrator) erstellen.

smbldap-populate -m 512 -a Administrator

Hinweis: Du wirst aufgefordert, ein Passwort für das Konto des Domänenadministrators einzugeben.

Danach musst du die uid-Nummer für dieses Konto ändern - andernfalls kannst du den Mailserver mit diesem Konto nicht verwenden. Zusätzlich fügen wir dieses Konto zur Gruppe “Domain Users” hinzu:

smbldap-usermod -u 3000 -G "Domain Users" Administrator

5.3 NSS LDAP-Konfiguration

In diesem Schritt konfigurieren wir das System, um das LDAP-Verzeichnis zu verwenden, um Benutzer- und Gruppennamen zu erhalten.

Bearbeite die nsswitch-Konfiguration.

vi /etc/nsswitch.conf

Der Inhalt sollte wie folgt aussehen:

# /etc/nsswitch.conf
#
# Beispielkonfiguration der GNU Name Service Switch-Funktionalität.
# Wenn du die Pakete `glibc-doc` und `info` installiert hast, versuche:
# `info libc "Name Service Switch"` für Informationen über diese Datei.
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
hosts:          files dns
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

5.4 SAMBA-Verzeichnisse

Erstelle die benötigten Verzeichnisse für den SAMBA-Server, …

mkdir -p /home/samba/shares/public/  
mkdir /home/samba/netlogon/  
mkdir /home/samba/profiles/  
mkdir /home/samba/partage/  
mkdir /home/samba/archives/

… ändere den Eigentümer und passe die Rechte an.

chown -R :"Domain Users" /home/samba/  
chmod 777 /var/spool/samba/ /home/samba/shares/public/  
chmod 755 /home/samba/netlogon/  
chmod 770 /home/samba/profiles/ /home/samba/partage/  
chmod 700 /home/samba/archives/

6 PAM LDAP-Konfiguration

In diesem Schritt fügst du LDAP-Unterstützung zu PAM hinzu.

vi /etc/pam.d/common-account

Der Inhalt sollte wie folgt aussehen:

#
# /etc/pam.d/common-account - Autorisierungseinstellungen, die für alle Dienste gelten
#
# Diese Datei wird aus anderen dienstspezifischen PAM-Konfigurationsdateien eingebunden,
# und sollte eine Liste der Autorisierungs-Module enthalten, die die
# zentrale Zugriffspolitik für die Verwendung im System definieren. Der Standard ist,
# nur den Dienst für Benutzer zu verweigern, deren Konten in /etc/shadow abgelaufen sind.
#
account required        pam_unix.so
account sufficient      pam_ldap.so
vi /etc/pam.d/common-auth

Der Inhalt sollte wie folgt aussehen:

#
# /etc/pam.d/common-auth - Authentifizierungseinstellungen, die für alle Dienste gelten
#
# Diese Datei wird aus anderen dienstspezifischen PAM-Konfigurationsdateien eingebunden,
# und sollte eine Liste der Authentifizierungs-Module enthalten, die das
# zentrale Authentifizierungsschema für die Verwendung im System definieren
# (z.B. /etc/shadow, LDAP, Kerberos, etc.). Der Standard ist die Verwendung der
# traditionellen Unix-Authentifizierungsmechanismen.
#
auth    sufficient      pam_unix.so nullok_secure
auth    sufficient      pam_ldap.so use_first_pass
auth    required        pam_deny.so
vi /etc/pam.d/common-password

Der Inhalt sollte wie folgt aussehen:

#
# /etc/pam.d/common-password - passwortbezogene Module, die für alle Dienste gelten
#
# Diese Datei wird aus anderen dienstspezifischen PAM-Konfigurationsdateien eingebunden,
# und sollte eine Liste von Modulen enthalten, die die Dienste definieren, die
# verwendet werden, um Benutzerpasswörter zu ändern. Der Standard ist pam_unix
# Die "nullok"-Option erlaubt es Benutzern, ein leeres Passwort zu ändern, andernfalls
# werden leere Passwörter als gesperrte Konten behandelt.
#
# (Füge `md5` nach dem Modulnamen hinzu, um MD5-Passwörter zu aktivieren)
#
# Die "obscure"-Option ersetzt die alte `OBSCURE_CHECKS_ENAB`-Option in
# login.defs. Auch die "min"- und "max"-Optionen erzwingen die Länge des
# neuen Passworts.
password        sufficient      pam_unix.so nullok obscure min=4 max=8 md5
password        sufficient      pam_ldap.so use_first_pass use_authtok
password        required        pam_deny.so
# Alternativer Stärkecheck für das Passwort. Beachte, dass dies
# das Paket libpam-cracklib installiert sein muss.
# Du musst die Passwortzeile oben auskommentieren und
# die nächsten beiden aktivieren, um dies zu verwenden.
# (Ersetzt die `OBSCURE_CHECKS_ENAB`, `CRACKLIB_DICTPATH`)
#
# password required       pam_cracklib.so retry=3 minlen=6 difok=3
# password required       pam_unix.so use_authtok nullok md5
vi /etc/pam.d/common-session

Der Inhalt sollte wie folgt aussehen:

#
# /etc/pam.d/common-session - sitzungsbezogene Module, die für alle Dienste gelten
#
# Diese Datei wird aus anderen dienstspezifischen PAM-Konfigurationsdateien eingebunden,
# und sollte eine Liste von Modulen enthalten, die Aufgaben definieren, die zu
# Beginn und Ende von Sitzungen jeglicher Art (sowohl interaktiv als auch
# nicht-interaktiv) ausgeführt werden sollen. Der Standard ist pam_unix.
#
session required        pam_unix.so
session optional        pam_ldap.so

Starte danach das System neu.

reboot

Wenn das System wieder hochgefahren ist, gib der Gruppe “Domain Admins” das Recht, Maschinen zur Domäne hinzuzufügen.

net -U Administrator rpc rights grant 'DOMAIN\Domain Admins' SeMachineAccountPrivilege

7 SSL Für Mail

Zuerst bereite eine Konfigurationsdatei mit den benötigten Informationen vor.

vi /etc/ssl/mail.cnf

Füge den folgenden Inhalt hinzu:

[ req ] 
default_bits            = 2048 
default_keyfile         = privkey.pem 
distinguished_name      = req_distinguished_name 
prompt                  = no 
string_mask             = nombstr 
x509_extensions         = server_cert
[ req_distinguished_name ] 
countryName             = DE 
stateOrProvinceName     = Niedersachsen
localityName            = Lueneburg
organizationName        = Projektfarm GmbH
organizationalUnitName  = IT
commonName              = server1.example.com
emailAddress            = [email protected]
[ server_cert ] 
basicConstraints        = critical, CA:FALSE 
subjectKeyIdentifier    = hash 
keyUsage                = digitalSignature, keyEncipherment 
extendedKeyUsage        = serverAuth, clientAuth 
nsCertType              = server 
nsComment               = "mailserver"

Jetzt erstelle das SSL-Zertifikat …

openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch

… und passe die Rechte für den Schlüssel an, sodass nur root ihn lesen kann.

chmod 600 /etc/ssl/private/mail.key
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.