Der perfekte Office Server mit Mandriva Directory Server auf Debian Etch

Version 1.0
Author: Oliver Meyer <o [dot] meyer [at] projektfarm [dot] de>


Diese Anleitung veranschaulicht, wie man einen Mandriva Directory Server (MDS) auf Debian Etch einrichtet. Das daraus resultierende System liefert einen funktionsreichen Büroserver für kleine und mittlere Unternehmen - der via web-basierter Mandriva Management Console (MMC) einfach zu verwalten ist.

Hauptfunktionen

  • Einfaches Verwalten via MMC
  • System weite OpenLDAP Integration
  • SAMBA Primary Domain Controller (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
Diese Anleitung ist ein praktischer Leitfaden ohne jegliche Garantie - theoretisches Hintergrundwissen wird nicht abgedeckt. Es gibt viele Möglichkeiten ein solches System einzurichten - dies ist der Weg, den ich gewählt habe.

Vorwort

Diese Anleitung ist ziemlich komplex. Nimm Dir bitte Zeit für eine intensive Lektüre und folge der Anleitung Schritt für Schritt. Die kleinste Abweichung könnte bewirken, dass Dein System nicht richtig funktioniert.

1 Vorbereitung

1.1 Basissystem

Set up a standard debian etch system and update it. I used the following configuration for this howto and the attached virtual machine that is available for our contributors:

Hostname: server1.example.com
SAMBA domain: EXAMPLE
IP: 192.168.0.100
Gateway: 192.168.0.2
Alle Passwörter: howtoforge

1.2 Hostname

Bearbeite die Host Datei - weise der Server IP den Hostnamen zu.

vi /etc/hosts

So sollte es aussehen:
127.0.0.1       localhost.localdomain   localhost
192.168.0.100 server1.example.com server1 # The following lines are desirable for IPv6 capable 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-allhosts
Füge danach den Hostnamen in die Hostnamen Datei ein ...

echo server1.example.com > /etc/hostname

... und starte das System neu.

reboot

Wenn das System hochgefahren ist, sollte die Ausgabe von ...

hostname

... und ...

hostname -f

... wie folgt lauten:

server1.example.com


1.3 Dateisystem ACLs

Damit es SAMBA möglich ist die Dateisystem ACLs zwischen dem Linux Server und dem Windows Client abzubilden, musst Du ACL-support für den entsprechenden mount point aktivieren.

vi /etc/fstab

Füge die Option "acl" zu dem mount point hinzu, auf dem die SAMBA Verzeichnisse und Benutzer gespeichert werden sollen. Für den Fall dass es "/" ist - sollte der Inhalt wie folgt aussehen:
# /etc/fstab: static file system information.
# # <file system> <mount point> <type> <options> <dump> <pass> 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
Hänge danach den mount point neu ein.

mount -o remount /

Wenn alles geklappt hat, sollte der Befehl ...

mount -l

... die Option "acl" für den entsprechenden mount point wie folgt anzeigen:

/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)


2 Paketdatenbanken

2.1 MDS

Die MDS Paketdatenbank bietet MDS-bezogene Pakete sowie gepatchte Pakete für bind9 & dhcp3 an.

vi /etc/apt/sources.list

Füge folgende Zeilen der Datei hinzu.

# MDS repository
deb http://mds.mandriva.org/pub/mds/debian etch main

2.2 Debian Volatile

Die Debian Volatile Paketdatenbank liefert neuere Pakete für ClamAV & Spamassassin als die Standard Debian Paketdatenbank.

vi /etc/apt/sources.list

Füge folgende Zeilen der Datei hinzu.

# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

2.3 Debian Backports

Die Debian Backports Paketdatenbank liefert neuere Pakete für dovecot.

vi /etc/apt/sources.list

Füge folgende Zeilen der Datei hinzu.

# Debian Etch Backports
deb http://www.backports.org/debian etch-backports main

Aktualisiere danach apt.

apt-get update


3 Benötigte Pakete

3.1 Installation

Installiere die für dieses Setup benötigten Pakete.

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-ppds

Die dovecot-Pakete in der Standard Debian Paketdatenbank führen im Zusammenhang mit LDAP zu einem Fehler - Du musst also die dovecot-Pakete der Debian Backports Datenbank verwenden.

apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3d

Falls Du HP Drucker verwenden möchtest, empfiehlt es sich weitere Pakete zu installieren.

apt-get install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core


3.2 Konfiguration

Während der Installation der neuen Pakete werden Dir ein paar Fragen gestellt - beantworte sie wie folgt.

3.2.1 LDAP

Gib das Passwort für den LDAP admin ein und bestätige es. (howtoforge)

3.2.2 Samba

Gib einen Namen für Deine Domain ein. (EXAMPLE)
Wähle "No" wenn Du gefragt wirst, ob smb.conf modifiziert werden soll WINS Einstellungen von DHCP zu verwenden.

3.2.3 Postfix

Wähle "Internet Site" als allgemeine Konfigurationsart.
Gib "server1.example.com" als Mail Namen ein.

3.2.4 Libnss-LDAP

Gib "ldap://127.0.0.1/" als LDAP Server URI ein.
Gib "dc=example,dc=com" als Bezeichnung für die Search Base ein.
Wähle die LDAP Version aus. (3)
Gib "cn=admin,dc=example,dc=com" als LDAP Konto für Root ein.
Gib das Passwort für den LDAP admin ein. (howtoforge)

3.2.5 Libpam-LDAP

Wähle "Yes" wenn Du gefragt wirst, ob der lokale Root der Datenbank admin sein soll.
Wähle "No" wenn Du gefragt wirst, ob die LDAP Datenbank ein Login benötigt.
Gib "cn=admin,dc=example,dc=com" als LDAP Konot für Root ein.
Gib ein Passwort für den LDAP admin ein. (howtoforge)

4 LDAP Konfiguration

4.1 Schema Dateien

Kopiere zunächst die Schema Dateien für MMC, Mail, SAMBA, Drucker, DNS und DHCP in das LDAP Schema Verzeichnis.

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.schema

Füge dann die Schema Dateien in die LDAP Konfiguration ein

vi /etc/ldap/slapd.conf

Füge die Schema Dateien nach dem inetorgperson Schema hinzu.

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

Aktiviere den schemacheck (nach den obigen Zeilen).

schemacheck on


4.2 Basis-Konfiguration

In diesem Schritt brauchst Du das ldap admin Passwort (welches Du während der Paketinstallation in Schritt 3 definiert hast) in verschlüsselter Form (SSHA) - also lass es uns verschlüsseln.

slappasswd -s %ldap_admin_password%

Z.B.:

slappasswd -s howtoforge

Die Ausgabe sollte wie folgt aussehen:

{SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A

Notiere es und fahre fort - öffne die LDAP Server Konfigurationsdatei.

vi /etc/ldap/slapd.conf

Suche nach der kommentierten Zeile mit dem Eintrag für den LDAP admin (rootdn) ...

# rootdn "cn=admin,dc=example,dc=com"

... und kommentiere sie aus. Füge danach eine neue Zeile gleich darunter ein. Du musst das verschlüsselte ldap admin Passwort eingeben, das Du zu Beginn dieses Schrittes generiert hast.

rootpw %encrypted_ldap_admin_password%

Z.B.:

rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A

Als Nächstes müssen wir die Indizierungsoptionen für die Datenbank modifizieren. Suche nach folgendem Eintrag:

# Indexing options for database #1

Entferne die unten stehende Zeile...

index objectClass eq

... und füge folgende 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 eq

Füge nun SAMBA der Zugriffs-Liste für die Datenbank hinzu. Suche folgende Zeile:

access to attrs=userPassword,shadowLastChange

Ändere sie, damit sie wie folgt aussieht:

access to attrs=userPassword,sambaLMPassword,sambaNTPassword

Nun sollte die LDAP Server Konfigurationsdatei wie folgt aussehen:
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options. ####################################################################### # Global Directives: # Features to permit #allow bind_v2 # Schema and objectClass definitions 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 # Where the pid file is put. The init.d script # will not stop the server if you change this. pidfile /var/run/slapd/slapd.pid # List of arguments that were passed to the server argsfile /var/run/slapd/slapd.args # Read slapd.conf(5) for possible values loglevel 0 # Where the dynamically loaded modules are stored modulepath /usr/lib/ldap moduleload back_bdb # The maximum number of entries that is returned for a search operation sizelimit 500 # The tool-threads parameter sets the actual amount of cpu's that is used # for indexing. tool-threads 1 ####################################################################### # Specific Backend Directives for bdb: # Backend specific directives apply to this backend until another # 'backend' directive occurs backend bdb checkpoint 512 30 ####################################################################### # Specific Backend Directives for 'other': # Backend specific directives apply to this backend until another # 'backend' directive occurs #backend <other> ####################################################################### # Specific Directives for database #1, of type bdb: # Database specific directives apply to this databasse until another # 'database' directive occurs database bdb # The base of your directory in database #1 suffix "dc=example,dc=com" # rootdn directive for specifying a superuser on the database. This is needed # for syncrepl. rootdn "cn=admin,dc=example,dc=com" rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A # Where the database file are physically stored for database #1 directory "/var/lib/ldap" # For the Debian package we use 2MB as default but be sure to update this # value if you have plenty of RAM dbconfig set_cachesize 0 2097152 0 # Sven Hartge reported that he had to set this value incredibly high # to get slapd running at all. See http://bugs.debian.org/303057 # for more information. # Number of objects that can be locked at the same time. dbconfig set_lk_max_objects 1500 # Number of locks (both requested and granted) dbconfig set_lk_max_locks 1500 # Number of lockers dbconfig set_lk_max_lockers 1500 # Indexing options for 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 # Save the time that the entry gets modified, for database #1 lastmod on # Where to store the replica logs for database #1 # replogfile /var/lib/ldap/replog # The userPassword by default can be changed # by the entry owning it if they are authenticated. # Others should not be able to see it, except the # admin entry below # These access lines apply to database #1 only access to attrs=userPassword,sambaLMPassword,sambaNTPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none # Ensure read access to the base for things like # supportedSASLMechanisms. Without this you may # have problems with SASL not knowing what # mechanisms are available and the like. # Note that this is covered by the 'access to *' # ACL below too but if you change that as people # are wont to do you'll still need this if you # want SASL (and possible other things) to work # happily. access to dn.base="" by * read # The admin dn has full write access, everyone else # can read everything. access to * by dn="cn=admin,dc=example,dc=com" write by * read # For Netscape Roaming support, each user gets a roaming # profile for which they have write access to #access to dn=".*,ou=Roaming,o=morsnet" # by dn="cn=admin,dc=example,dc=com" write # by dnattr=owner write ####################################################################### # Specific Directives for database #2, of type 'other' (can be bdb too): # Database specific directives apply to this databasse until another # 'database' directive occurs #database <other> # The base of your directory for database #2 #suffix "dc=debian,dc=org"
Zusätzlich musst Du die LDAP Konfigurationsdatei bearbeiten.

vi /etc/ldap/ldap.conf

Füge folgende Zeilen hinzu:

host 127.0.0.1
base dc=example,dc=com

Starte danach den LDAP Server neu.

/etc/init.d/slapd restart

5 SAMBA

5.1 Basis-Konfiguration

Beende SAMBA zuerst.

/etc/init.d/samba stop

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

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

... und passe sie Deinen Wünschen an.

vi /etc/samba/smb.conf

Richte im Bereich [global] folgende Werte ein:

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

Füge folgende Zeilen dem Bereich [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*" %nn "*Retype new password*" %nn
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 folgende Zeile im Bereich [homes] ein:

hide files = /Maildir/

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

printer admin = root,@lpadmin

Stelle folgende Werte im Bereich [print$] ein:

write list = Administrator,root,@lpadmin

Füge folgende Zeile dem Bereich [profiles] hinzu:

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

Stelle folgende Werte im Bereich [archives] ein:

path = /home/samba/archives

Nun 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 = %Nprofiles%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*" %nn "*Retype new password*" %nn 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 directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = /Maildir/ [public] comment = Public share path = /home/samba/shares/public browseable = yes public = yes writeable = yes [archives] comment = Backup share path = /home/samba/archives browseable = yes public = no writeable = no [printers] comment = Printers path = /tmp browseable = no public = yes guest ok = yes writeable = no printable = yes [print$] comment = Drivers 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 geklappt hat, sollte der Befehl ...

testparm

... keine Fehler anzeigen.

Teile nun SAMBA die benötigten Zugangsdaten mit in LDAP schreiben zu können.

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 es, Du wirst es in wenigen Minuten brauchen:

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

Überprüfe, ob die SID in LDAP tatsächlich aufgezeichnet wurde.

slapcat | grep sambaDomainName

Die Ausgabe sollte wie folgt aussehen:

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

Starte nun 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"
Erstelle nun die Hauptkonfigurationsdatei.

vi /etc/smbldap-tools/smbldap.conf

Der Inhalt sollte wie folgt aussehen:
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-EXAMPLEprofiles%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="example.com" smbpasswd="/usr/bin/smbpasswd"
Es wird Zeit das LDAP Verzeichnis zu füllen. Somit wird auch das Domain Administrator Konto erstellt (Administrator)

smbldap-populate -m 512 -a Administrator

Merke: Du wirst gebeten, ein Passwort für das Domain Administrator Konto einzugeben.

Danach musst Du die uid-Nummer für dieses Konto modifizieren - sonst kannst Du mit diesem Konto den Mailserver nicht benutzen. Zusätzlich fügen wir dieses Konto der Gruppe "Domain Users" hinzu:

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

Als Nächstes gewähren wir der Gruppe "Domain Admins" das Recht, der Domain Maschinen hinzuzufügen.

net -U Administrator rpc rights grant 'DOMAINDomain Admins' SeMachineAccountPrivilege


5.3 NSS LDAP Konfiguration

In diesem Schritt konfigurieren wir das System so, dass es das LDAP Verzeichnis verwendet, um Benutzer- und Gruppenlisten zu beziehen.

Bearbeite die nsswitch Konfiguration.

vi /etc/nsswitch.conf

Der Inhalt sollte wie folgt aussehen:
# /etc/nsswitch.conf
# # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. 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 PAM LDAP-support hinzu.

vi /etc/pam.d/common-account

Der Inhalt sollte wie folgt aussehen:
#
# /etc/pam.d/common-account - authorization settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authorization modules that define # the central access policy for use on the system. The default is to # only deny service to users whose accounts are expired in /etc/shadow. # 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 - authentication settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authentication modules that define # the central authentication scheme for use on the system # (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the # traditional Unix authentication mechanisms. # 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 - password-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services to be #used to change user passwords. The default is pam_unix # The "nullok" option allows users to change an empty password, else # empty passwords are treated as locked accounts. # # (Add `md5' after the module name to enable MD5 passwords) # # The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in # login.defs. Also the "min" and "max" options enforce the length of the # new password. 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 # Alternate strength checking for password. Note that this # requires the libpam-cracklib package to be installed. # You will need to comment out the password line above and # uncomment the next two in order to use this. # (Replaces the `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 - session-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed # at the start and end of sessions of *any* kind (both interactive and # non-interactive). The default is pam_unix. # session required pam_unix.so session optional pam_ldap.so

7 SSL für Mail

Bereite zuerst eine Konfigurationsdatei mit den benötigten Informationen vor.

vi /etc/ssl/mail.cnf

Füge 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 = postmaster@example.com [ server_cert ] basicConstraints = critical, CA:FALSE subjectKeyIdentifier = hash keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth nsCertType = server nsComment = "mailserver"
Erstelle nun 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 Key an damit nur Root ihn lesen kann.

chmod 600 /etc/ssl/private/mail.key


8 SASL Konfiguration

Postfix wird SASL verwenden, um Benutzer gegenüber dem LDAP Server zu authentifizieren.

mkdir -p /var/spool/postfix/var/run/saslauthd/

Passe die Standardeinstellungen an.

vi /etc/default/saslauthd

Es sollte wie folgt aussehen:
START=yes
MECHANISMS="ldap" MECH_OPTIONS="" THREADS=5 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

vi /etc/saslauthd.conf

Es sollte wie folgt aussehen:
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=example,dc=com ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))

vi /etc/postfix/sasl/smtpd.conf

Es sollte wie folgt aussehen:
pwcheck_method: saslauthd
mech_list: plain login
Füge Postfix der SASL Gruppe hinzu ...

adduser postfix sasl

... und starte SASL neu.

/etc/init.d/saslauthd restart


9 Postfix Konfiguration

9.1 Beispiel Konfiguration

Für dieses Setup habe ich die Konfiguration ohne virtuelle Domains gewählt - vielleicht füge ich die benötigten Schritte für ein virtuelles Domain Setup in naher Zukunft hinzu. Kopiere zuerst die Beispiel Konfigurationsdatei in das postfix Verzeichnis. Das ist die Basis der folgenden Konfiguration.

cp /usr/share/doc/python-mmc-base/contrib/postfix/no-virtual-domain/* /etc/postfix/


9.2 Haupt-Konfiguration

Passe zunächst die Haupt-Konfigurationsdatei an.

vi /etc/postfix/main.cf

Bearbeite die Datei so, dass sie zu Deiner Domain passt und füge einige Beschränkungs- und Authentifizierungseinstellungen hinzu - der Inhalt sollte wie folgt aussehen:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = yes append_at_myorigin = yes
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
myhostname = server1.example.com
mydomain = example.com alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com,example.com,localhost.localdomain,localhost mail_destination_recipient_limit = 1 mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN" relayhost = mynetworks = 127.0.0.0/8 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all
# Use Maildir
home_mailbox = Maildir/
# Wait until the RCPT TO command before evaluating restrictions
smtpd_delay_reject = yes
# Basics Restrictions
smtpd_helo_required = yes strict_rfc821_envelopes = yes
# Requirements for the connecting server
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client list.dsbl.org, permit
# Requirements for the HELO statement
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_invalid_hostname, permit
# Requirements for the sender address
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, permit
# Requirement for the recipient address
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit
# Enable SASL authentication for the smtpd daemon
smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth
# Fix for outlook
broken_sasl_auth_clients = yes
# Reject anonymous connections
smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
# SSL/TLS
smtpd_tls_security_level = may smtpd_tls_loglevel = 1 smtpd_tls_cert_file = /etc/ssl/certs/mail.pem smtpd_tls_key_file = /etc/ssl/private/mail.key smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
# Amavis
content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings

9.3 LDAP Aliases Konfiguration

Nun musst Du die Aliases Konfiguration bearbeiten.

vi /etc/postfix/ldap-aliases.cf

Bearbeite die Datei, sodass sie zu Deiner Domain passt - so sollte sie aussehen:
server_host = 127.0.0.1
search_base = ou=Users,dc=example,dc=com query_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK)) result_attribute = maildrop version = 3

9.4 Master Konfiguration

Die Master Konfiguration ist der letzte Teil der postfix Konfiguration.

vi /etc/postfix/master.cf

Füge folgende Zeilen hinzu:

# SMTPS
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes

# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient

# Mail to Amavis
amavis unix - - - - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

# Mail from Amavis
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Starte Postfix neu:

/etc/init.d/postfix restart


10 Dovecot

Dovecot bietet dem Mailserver POP3- (SSL/TLS), IMAP- (SSL/TLS) und Quota-support.

10.1 Haupt-Konfiguration

echo "" > /etc/dovecot/dovecot.conf
vi /etc/dovecot/dovecot.conf

Der Inhalt sollte wie folgt aussehen:

protocols = imap imaps pop3 pop3s
listen = 0.0.0.0 login_greeting = example.com mailserver ready. mail_location = maildir:~/Maildir disable_plaintext_auth = no ssl_cert_file = /etc/ssl/certs/mail.pem ssl_key_file = /etc/ssl/private/mail.key log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot.log # IMAP configuration protocol imap { mail_plugins = quota imap_quota } # POP3 configuration protocol pop3 { pop3_uidl_format = %08Xu%08Xv mail_plugins = quota } # LDA configuration protocol lda { postmaster_address = postmaster auth_socket_path = /var/run/dovecot/auth-master mail_plugins = quota } # LDAP authentication auth default { mechanisms = plain login passdb ldap { args = /etc/dovecot/dovecot-ldap.conf } userdb ldap { args = /etc/dovecot/dovecot-ldap.conf } socket listen { master { path = /var/run/dovecot/auth-master mode = 0660 user = dovecot group = mail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } }

10.2 LDAP Konfiguration

echo "" > /etc/dovecot/dovecot-ldap.conf
vi /etc/dovecot/dovecot-ldap.conf

Der Inhalt sollte wie folgt aussehen:

hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=example,dc=com scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:storage
user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK)) pass_attrs = mail=user,userPassword=password pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK)) default_pass_scheme = CRYPT user_global_gid = mail

10.3 Deliver

Passe als Nächstes die Rechte für Dovecot Deliver an - Dovecot wird die Rechte uid und gid verwenden, wenn es Nachrichten in den Maildirs ablegt.

dpkg-statoverride --update --add root dovecot 4755 /usr/lib/dovecot/deliver

Starte danach Dovecot neu.

/etc/init.d/dovecot restart


11 Amavisd

Postfix leitet eingehende Mails an Amavis. Amavis leitet diese hingegen an Spamassassin und ClamAV weiter. Nachdem die Mails überprüft worden sind, werden sie zurück an Postfix geschickt. Konfiguriere Amavis wie folgt.

vi /etc/amavis/conf.d/15-content_filter_mode

So sollte es aussehen:
use strict;
@bypass_virus_checks_maps = (
%bypass_virus_checks, @bypass_virus_checks_acl, $bypass_virus_checks_re);
@bypass_spam_checks_maps = (
%bypass_spam_checks, @bypass_spam_checks_acl, $bypass_spam_checks_re);
1;

vi /etc/amavis/conf.d/50-user

So sollte es aussehen:
use strict;
$pax='pax';
1;
Füge danach den Benutzer clamav der amavis Gruppe hinzu und starte amavis & ClamAV neu.

adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

12 Spamassassin

Mit diesem Schritt aktivierst Du zusätzliche Plugins um die Spamerkennung zu verbessern.

vi /etc/spamassassin/local.cf

Füge folgenden Inhalt der Datei hinzu:

# dcc
use_dcc 1
dcc_path /usr/bin/dccproc

#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor

#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf

#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

vi /etc/spamassassin/v310.pre

Aktiviere die Zeile für den dcc-plugin. So sollte es aussehen:
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor loadplugin Mail::SpamAssassin::Plugin::Razor2 loadplugin Mail::SpamAssassin::Plugin::SpamCop loadplugin Mail::SpamAssassin::Plugin::AWL loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject loadplugin Mail::SpamAssassin::Plugin::MIMEHeader loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
Konfiguriere spamassassin nun so, dass es als Daemon ausgeführt wird.

vi /etc/default/spamassassin

Setze ENABLED=1. Es sollte wie folgt aussehen:
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir" PIDFILE="/var/run/spamd.pid" #NICE="--nicelevel 15" CRON=0
Starte danach spamassassin und starte amavis neu.

/etc/init.d/spamassassin start
/etc/init.d/amavis restart

13 BIND Konfiguration

Kopiere zuerst eine benutzerdefinierte Konfigurationsdatei in das Bind Verzeichnis.

cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/

Danach ändern wir den slapd starting point sodass es vor Bind startet.

update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 .

Bearbeite die resolv Konfiguration.

vi /etc/resolv.conf

So sollte es aussehen:
nameserver 127.0.0.1
nameserver 192.168.0.2

14 DHCP Konfiguration

Kopiere zuerst die benutzerdefinierte Konfigurationsdatei in das dhcp3 Verzeichnis.

cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/
vi /etc/dhcp3/dhcpd.conf

Passe die Datei an Deine Wünsche an - so sollte es aussehen:

ldap-server "localhost";
ldap-port 389; ldap-username "cn=admin, dc=example, dc=com"; ldap-password "howtoforge"; ldap-base-dn "dc=example, dc=com"; ldap-method dynamic; ldap-debug-file "/var/log/dhcp-ldap-startup.log";

15 SquidGuard/Squid Konfiguration

Squid, in Zusammenhang mit SquidGuard, wird dazu verwendet, die Zugänglichkeit ausgewählter Webseiten zu deaktivieren.

15.1 Konfigurationsdateien

15.1.1 SquidGuard

Kopiere die Beispiel-Konfigurationsdatei in das squid Verzeichnis, erstelle eine Liste der geblockten Domainnamen (sonst läd der mmc-proxy-plugin nicht) und bearbeite die Konfigurationsdatei.

cp /usr/share/doc/python-mmc-base/contrib/proxy/squidGuard.conf /etc/squid/
touch /var/lib/squidguard/db/bad.destdomainlist
vi /etc/squid/squidGuard.conf

Ändere die Zeile für die Weiterleitung sodass sie wie folgt aussieht:

redirect http://blocked.example.com/squidGuard.cgi?clientaddr=%a&srcclass=%s&targetclass=%t&url=%u

15.1.2 Squid

Bennene zunächst die Konfigurationsdatei um, erstelle eine neue ohne Kommentare (die originale Konfigurationsdatei hat mehr als 4000 Zeilen) und bearbeite sie.

cd /etc/squid/
mv squid.conf squid.conf.orig
cat squid.conf.orig | egrep "^[^#]" > squid.conf
vi squid.conf

Kommentiere ...

http_access allow localhost

... aus und füge folgende Zeilen der Konfiguration hinzu:

redirect program /usr/bin/squidGuard
acl SSL ports port 3128
acl our_networks src 192.168.0.0/24
http_access allow our_networks

Starte squid neu

/etc/init.d/squid restart


15.2 VHost weiterleiten

Wenn Benutzer Webseiten besuchen möchten, die Du deaktiviert hast, werden sie an blocked.example.com. weitergeleitet. Erstelle das Verzeichnis für den VHost, füge squidGuard.cgi ein und mache sie ausführbar.

mkdir /var/www/squidguard/
zcat /usr/share/doc/squidguard/examples/squidGuard.cgi.gz > /var/www/squidguard/squidGuard.cgi
chmod +x /var/www/squidguard/squidGuard.cgi

Erstelle danach einen VHost für die Weiterleitung.

vi /etc/apache2/sites-available/http

Füge diese Konfiguration hinzu:

NameVirtualHost 192.168.0.100:80

<VirtualHost 192.168.0.100:80>

ServerName blocked.example.com
ServerAdmin Administrator@example.com
DocumentRoot /var/www/squidguard/

AddHandler cgi-script .cgi

<Directory /var/www/squidguard/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from 192.168.0.0/24
</Directory>

ErrorLog /var/log/apache2/squidguard_error.log
CustomLog /var/log/apache2/squidguard_access.log combined
LogLevel warn

</VirtualHost>

16 Webinterface Konfiguration

16.1 SSL Zertifikat

Dieses SSL Zertifikat wird für das MMC und CUPS Web-frontend verwendet.

mkdir /etc/apache2/ssl/
openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt -days 365 -nodes
chmod 600 /etc/apache2/ssl/server.key
cp /etc/apache2/ssl/* /etc/cups/ssl/

16.2 CUPS

Um auf das CUPS web-frontend von anderen Maschinen in Deinem Netzwerk aus zugreifen zu können, musst Du ein paar Einstellungen anpassen.

vi /etc/cups/cupsd.conf

Ändere:

Listen localhost:631

zu:

Listen %server_ip%:631

Ändere:

# Restrict access to the server...
<Location />
Order allow,deny
Allow localhost
</Location>

# Restrict access to the admin pages...
<Location /admin>
Encryption Required
Order allow,deny
Allow localhost
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
</Location>

zu:

# Restrict access to the server...
<Location />
Order allow,deny
Allow localhost
Allow 192.168.0.0/24
</Location>

# Restrict access to the admin pages...
<Location /admin>
Encryption Required
Order allow,deny
Allow localhost
Allow 192.168.0.0/24
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Allow 192.168.0.0/24
</Location>

Starte CUPS danach neu.

/etc/init.d/cupsys restart

Nun kannst Du Deine CUPS Drucker via CUPS Webinterface von Deinem Arbeitsplatz aus verwalten. Öffne https://192.168.0.100:631/ (Wenn später der Nameserver und der dhcp-Server konfiguriert sind, solltest Du Dich via https://server1.example.com:631 verbinden) in einem Browser Deiner Wahl und melde Dich als Root an. Bitte beachte, dass, wenn für Deinen Drucker kein Linux Treiber verfügbar ist und Du diesen Drucker nur von Deinem Windows Arbeitsplatz über SAMBA verwenden möchtest, kannst Du den Druckerhersteller "RAW" verwenden und den richtigen Treiber auf Deinem Windows Arbeitsplatz installieren.

Wenn Du einen HP Drucker einrichten möchtest, beachte bitte, dass Du ihn CUPS via hplip (Kommandozeile) hinzufügst. Der exakte Befehl hängt von der Verbindung Deines Gerätes ab - sieh Dir "hp-setup --help" an. Z.B. ist der Befehl für einen Netzwerk-Drucker mit der IP 192.168.0.20 dieser: "hp-setup -i 192.168.0.20". Danach kannst Du die Druckereinstellungen innerhalb des CUPS Webinterfaces anpassen (Auflösung etc.).

Nachdem Du einen neuen Drucker zu CUPS hinzugefügt hast, musst Du ihn Samba hinzufügen via

cupsaddsmb -a


16.3 MMC

Wir werden zwei vhosts erstellen - einen für http-Verbindungen und einen für https-Verbindungen.

16.3.1 HTTP VHost

vi /etc/apache2/sites-available/http

Füge folgende Konfiguration hinzu.

<VirtualHost 192.168.0.100:80>

ServerName server1.example.com

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>

16.3.2 HTTPS VHost

vi /etc/apache2/sites-available/https

Füge folgende Konfiguration hinzu.

NameVirtualHost 192.168.0.100:443

<VirtualHost 192.168.0.100:443>

ServerName server1.example.com
ServerAdmin Administrator@example.com
DocumentRoot /usr/share/mmc/

SSLEngine on
SSLCertificateKeyFile ssl/server.key
SSLCertificateFile ssl/server.crt
SSLProtocol all
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

<Directory /usr/share/mmc/>
AllowOverride None
Order allow,deny
Allow from 192.168.0.0/24
php_flag short_open_tag on
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</Directory>

ErrorLog /var/log/apache2/mmc_error.log
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn

</VirtualHost>

Füge den Port, auf dem der HTTPS lauscht, der Apache Konfiguration hinzu.

vi /etc/apache2/ports.conf

Füge folgende Zeile hinzu:

Listen 443

16.4 Module & Sites

Danach aktivieren wir neue Sites, ...

a2ensite http
a2ensite https

... das rewrite Modul ...

a2enmod rewrite

... und das ssl Modul.

a2enmod ssl

Starte nun Apache neu.

/etc/init.d/apache2 restart


17 MMC Plugins

17.1 MMC Base-Plugin Konfiguration

Bearbeite MMC base-plugin Konfigurationsdatei.

vi /etc/mmc/plugins/base.ini

Bearbeite baseDN, dass es zu Deiner Domain passt, füge das korrekte ldap admin Passwort ein und ändere den Zielpfad für die Archive - der Inhalt sollte wie folgt aussehen:
[ldap]
# LDAP we are connected to host = 127.0.0.1 # LDAP base DN baseDN = dc=example, dc=com # Users location in the LDAP baseUsersDN = ou=Users, %(basedn)s # Groups location in the LDAP baseGroupsDN = ou=Groups, %(basedn)s # Computers Locations baseComputersDN = ou=Computers, %(basedn)s # LDAP manager rootName = cn=admin, %(basedn)s password = howtoforge # If enabled, the MMC will create/move/delete the home of the users # Else will do nothing, but only write user informations into LDAP userHomeAction = 1 # Skeleton directory to populate a new home directory skelDir = /etc/skel # If set, all new users will belong to this group when created defaultUserGroup = Domain Users # Default home directory for users defaultHomeDir = /home # user uid number start uidStart = 10000 # group gid number start gidStart = 10000 # LDAP log file path logfile = /var/log/ldap.log # FDS log file path # logfile = /opt/fedora-ds/slapd-hostname/logs/access
# you can specify here where you can authorized creation of your homedir
# default is your defaultHomeDir # example: # authorizedHomeDir = /home, /home2, /mnt/depot/newhome
[backup-tools]
# Path of the backup tools path = /usr/lib/mmc/backup-tools # Where are put the archives destpath = /home/samba/archives

17.2 MMC Mail-Plugin Konfiguration

Bearbeite die MMC mail-plugin Konfigurationsdatei.

vi /etc/mmc/plugins/mail.ini

Bearbeite vDomainDN sodass es zu Deiner Domain passt, kommentiere die Zeile für die postfix delivery und die Zeile für die dovecot delivery aus - der Inhalt sollte wie folgt aussehen:
[main]
disable = 0 # Enable virtual domain support vDomainSupport = 0 # If vdomain enabled, OU where the domain are stored vDomainDN = ou=mailDomains, dc=example, dc=com
[userDefault]
# For Postfix delivery # mailbox = %homeDirectory%/Maildir/ # For Dovecot delivery mailbox = maildir:%homeDirectory%/Maildir/ # Default quota (200 MBytes) set for user mailuserquota = 204800

17.3 MMC Network-Plugin Konfiguration

Bearbeite die MMC network-plugin Konfigurationsdatei.

vi /etc/mmc/plugins/network.ini

Bearbeite den Domainnamen, sodass er zu Deiner Domain passt - der Inhalt sollte wie folgt aussehen:
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=example,dc=com pidfile = /var/run/dhcpd.pid init = /etc/init.d/dhcp3-server logfile = /var/log/daemon.log leases = /var/lib/dhcp3/dhcpd.leases
[dns]
dn = ou=DNS,dc=example,dc=com pidfile = /var/run/bind/run/named.pid init = /etc/init.d/bind9 logfile = /var/log/daemon.log bindroot = /etc/bind/ binduser = bind # dnsreader = DNS Reader # dnsreaderpassword = DNSReaderPassword

18 MMC Agent Initial Start

Nun ist der mmc-Agent für den ersten Start bereit.

/etc/init.d/mmc-agent start

Während des ersten Startvorganges schreibt der mmc-agent einige bind- und dhcp- bezogene Einstellungen in LDAP - also musst Du bind neu starten (der dhcp Server läuft momentan nicht).

/etc/init.d/bind9 restart


19 MMC Webinterface

Nun kannst Du via https://192.168.0.100 (http is not working at the moment) auf das MMC Webinterface zugreifen. Melde Dich als Root an. Wenn später der Nameserver und der dhcp-Server konfiguriert sind (und Du beide verwendest), solltest Du Dich via http://server1.example.com (die Verbindung wird automatisch zu https umgeleitet) oder https://server1.example.com verbinden.


Willkommen in der Mandriva Management Console.

19.1 Erste Schritte: DNS Zone

Klicke im Hauptmenü auf "Network" und danach im linken Menü auf "Add DNS Zone". Bearbeite die Einstellungen wie auf dem unteren Screenshot gezeigt wird. Klicke auf "Create" um die Einstellungen zu speichern. Beachte: Es wird ein DHCP Subnetz mit Basiseinstellungen erstellt - Du wirst es im nächsten Schritt bearbeiten (19.2).


Nun musst Du dem ersten Mitglied der DNS Zone einen alias hinzufügen, um den Squid Weiterleitungs-VHost verfügbar zu machen. Klicke auf der linken Seite auf "DNS zones" und dann auf die kleine Lupe neben dem Zoneneintrag.


Klicke auf das "pen & paper" Symbol neben dem Hosteintrag.


Gib "blocked" als Hostnamen-alias ein und bestätige die Einstellung.

19.2 Erste Schritte: DHCP Subnetz Konfiguration

Jetzt musst Du das DHCP Subnetz bearbeiten. Klicke auf der linken Seite auf "DCHP subnets" und danach auf das "pen & paper" Symbol neben dem Subnetzeintrag.



Bearbeite die Einstellungen wie auf den unteren Screenshots gezeigt wird. Vielleicht möchtest Du eine andere ip-range für den Adressen-Pool oder lease-times verwenden. Klicke auf "Confirm" um die Einstellungen zu speichern.



Nun sind die DHCP Einstellungen vollständig und Du kannst den DHCP Server starten. Klicke auf der linken Seite auf "Network services management" und danach auf das grüne Dreieck um den DHCP Server zu starten. Beachte: Immer wenn Du DHCP Subnetze erstellst/löschst/änderst musst Du den DHCP Server neu starten.

19.3 Erste Schritte: Domain Administrator Mailaccount

Wenn Du das Administrator Mailaccount verwenden möchtest, musst Du es aktivieren. Klicke im Hauptmenü auf "Users" - Du siehst die Benutzerliste. Klicke auf das "pen & paper" Symbol neben dem Administratoreintrag.


Gib eine E-Mail-Adresse in das entsprechende Feld ein.


Aktiviere das Mail plugin, gib eine gewünschte Quota ein und speichere die Einstellungen.
* Es kann sein, dass Du die Quota noch einmal eingeben (da die MMC die Quota mit den Standardwerten überschreibt) und die Einstellungen speichern musst. (das musste ich tun)

19.4 Erste Schritte: Das erste Domain Benutzerkonto

Es ist an der Zeit unser erstes Domain Benutzerkonto anzulegen. Klicke auf der linken Seite auf "Add" und erstelle einen Benutzer wie auf den unteren Screenshots gezeigt wird. Denke daran, dass Du die Quota vermutlich zweimal bearbeiten musst. Merke: einige Einstellungen sind rot unterstrichen - wenn Du mit der Mouse darüber fährst, siehst Du eine kurze Beschreibung dieser Einstellung.



20 Die Client Seite

Ich habe dies mit Windows XP Pro SP2 getestet - es sollte aber auch bei anderen Windows Versionen funktionieren.
  • Achte darauf, dass kein anderer Server läuft
  • Starte Windows und melde Dich als lokaler Administrator an
  • Konfiguriere Deine Netzwerkverbindung sodass sie DHCP verwendet
  • Klicke mit der rechten Mouse-Taste auf "My Computer" und wähle "Properties"
  • Wechsle zur Registerkarte "Computer Name" und klicke auf "Change"
  • Gib einen gewünschten Computernamen ein, markiere das Feld "Domain" und gib "EXAMPLE" ein (ohne Anführungszeichen!)
  • Klicke auf "OK" um die Änderungen zu übernehmen
  • Nach ein paar Minuten wirst Du nach dem Benutzernamen und Passwort gefragt. Verwende das Domain Administrator Konto, das Du in Schritt 5.2 angelegt hast (z.B..: Benutzername "Administrator" mit dem Passwort "howtoforge") und klicke auf "OK"
  • Wenn alles geklappt hat, erhältst Du eine Willkommensmitteilung
  • Starte das System neu
  • Wenn das System wieder hochgefahren ist, melde Dich mit dem Domain Administrator Konto an, welches Du in Schritt 5.2 angelegt hast (z.B.: Benutzername "Administrator" mit dem Passwort "howtoforge"). Achte darauf, dass Du die Domain im Drop-Down-Menü auswählst!
  • Klicke auf "Start" und danach auf "execute". Gib "gpedit.msc" ein und klicke auf "OK".
  • Gehe zu den Internet Explorer Einstellungen und aktiviere "proxy settings per computer."
  • Öffne nun den Internet Explorer, klicke auf "Extras" und danach auf "Internet Options". Bearbeite die proxy Einstellungen wie auf dem unteren Screenshot gezeigt wird.
  • Melde Dich ab und mit dem Domain Benutzerkonto, das Du in Schritt 19.4 konfiguriert hast, wieder an (z.B.: Benutzername "olli" mit dem Passwort "howtoforge"). Achte darauf, dass Du die Domain im Drop-Down-Menü auswählst! Domainbenutzer sind nicht in der Lage, die proxy Einstellungen zu ändern.

21 Ein paar Notizen...

22 Links