SAMBA (Domaincontroller) Server Für Kleine Arbeitsgruppen Mit Ubuntu 5.10 "Breezy Badger"

Version 1.0 Author: Till Brehm <t.brehm [at] projektfarm [dot] com>
Diese detaillierte Anleitung veranschaulicht, wie man einen Ubuntu-basierten Server (Ubuntu 5.10 - Breezy Badger) einrichtet, damit er als Datei- und Druck-Server für Windows (tm) Arbeitsplätze in kleinen Arbeitsgruppen fungiert. Diese Anleitung verwendet das tdb Backend für SAMBA um Passwörter und Konto-Informationen abzulegen. Dies ist geeignet für Arbeitsgruppen mit bis zu 250 Benutzern und einfacher einzurichten als ein LDAP Backend. Eine zweite Anleitung, die die Installation von LDAP + Samba behandelt, wird demnächst auf HowtoForge veröffentlicht werden.
Installierte Software:
  • Samba als Domaincontroller
  • Cups
  • Foomatic Drucker Treiber
An dieser Stelle möchte ich darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Varianten, dieses Ziel zu erreichen. Dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktionieren wird!
Voraussetzungen
Um ein solches System zu installieren, wirst Du Folgendes benötigen:
  • Eine Ubuntu Installations-CD (verfügbar unter: http://www.ubuntu.com/download/)
  • Eine Internetverbindun, da ich in dieser Anleitung eine Netzwerkinstallation beschreibe.
1 Das Basissystem
Lege Deine Ubuntu Installations-CD ein und starte das System von ihr aus (gib bei der Startaufforderung server ein um nur ein Basissystem zu installieren, passend für Servrer).

Die Installation startet. Als Erstes musst Du eine Sprache auswählen:

Wähle Deinen Standort:


Wähle ein Tastaturlayout:



Die Hardware-Erkennung startet:

Gib den Hostnamen ein. Mein System heiß in diesem Beispiel server1.example.com, also gebe ich server1 ein:


Nun erstellen wir die Partitionen. Wähel Manually edit partition table. Falls bereits Partitionen vorhanden sein sollten, lösche sie zuerst indem Du sie auswählst, RETURN drückst und dann delete wählst.


Ich werde folgendes Partitionsschema verwenden:
/boot 50 MB
/swap 1GB
/ 10 GB
/home der Rest der Festplatte

Eine Partition erstellen: Wähle Deine Festplatte (in meinem Fall SCSI1), drücke ENTER, dann:


Eine Partitionstabelle erstellen: Wähle FREE SPACE, drücke ENTER, dann:

1) Wähle Create new partition.
2) Gib die Größe der Partition ein. Werte können MB und GB oder Prozent (%) eingegeben werden.
3) Wähle den Typ der Partition: primary 4) Wähle den Ort der Partition: beginning 5) Ändere Use as: Ich werde EXT3 für alle Partitionen verwenden, außer für die swap Partition, diese ist vom Typ swap.
6) Wähle den Einhängepunkt
7) Wähle Done setting up the partition

Wiederhole dies für alle Partitionen in der obrigen Partitionstabelle.
Nun sollte Deine Partitionstabelle ähnlich wie diese aussehen:

Wähle Finish partitioning and write changes to disk, dann Yes, um mit dem nächsten Schritt fortzufahren.

Nun wird das Basissystem installiert:

Konfiguriere Deine Zeitzone:

Richte einen Benutzer ein:




Die erste Etappe des Installationsprozesses ist geschafft. Der Server startet im installierten Ubuntu Linux.

2 Den Rest Des Systems Installieren Und Konfigurieren
Den Root-Benutzer freischalten
Nun kann ich mich mit dem Benutzernamen und Passwort anmelden, das ich zuvor eingegeben habe. Zunächst schalte ich den Root-Benutzer frei zu einfacheren Installation. Du kannst ihn später freischalten, wenn Du möchtest.
sudo passwd root
su

Nun sind wir als Root-Benutzer angemeldet.
Konfiguriere Das Netzwerk
Da der Ubuntu Installer unser System konfiguriert hat, um seine Netzwerkeinstellungen via DHCP zu beziehen, müssen wir dies nun ändern, da ein Server eine statische IP Adresse haben sollte. Bearbeite /etc/network/interfaces und passe es an Deine Wünsche an (in diesem Beispiel-Setup werde ich die IP Adresse 192.168.0.100 verwenden):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # This is a list of hotpluggable network interfaces. # They will be activated automatically by the hotplug subsystem. mapping hotplug script grep map eth0 # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Starte dann Dein Netzwerk neu:
/etc/init.d/networking restart
Bearbeite /etc/hosts und füge Deine neu(en) IP Adress(en) hinzu:
127.0.0.1       localhost.localdomain   localhost       server1
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
Den Hostnamen einrichten
echo server1.example.com > /etc/hostname /bin/hostname -F /etc/hostname
Bearbeite /etc/apt/sources.list Und Aktualisiere Deine Linux Installation
Bearbeite /etc/apt/sources.list. So sollte es aussehen:
# deb cdrom:[Ubuntu 5.10 _Breezy Badger_ - Release i386 (20051012)]/ breezy main restricted
deb http://de.archive.ubuntu.com/ubuntu breezy main restricted deb-src http://de.archive.ubuntu.com/ubuntu breezy main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://de.archive.ubuntu.com/ubuntu breezy-updates main restricted deb-src http://de.archive.ubuntu.com/ubuntu breezy-updates main restricted ## Uncomment the following two lines to add software from the 'universe' ## repository. ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. deb http://de.archive.ubuntu.com/ubuntu breezy universe deb-src http://de.archive.ubuntu.com/ubuntu breezy universe ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://de.archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse # deb-src http://de.archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu breezy-security main restricted deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted deb http://security.ubuntu.com/ubuntu breezy-security universe deb-src http://security.ubuntu.com/ubuntu breezy-security universe
Lass dann Folgendes laufen
apt-get update
apt-get upgrade

Installation Des SSH Daemon
apt-get install ssh openssh-server
Die Nächsten Schritte...
Nun kannst Du Dich auf Deinem Server mit einem SSH Client wie putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/) anmelden. Es ist einfacher dieser Anleitung zu folgen, wenn Du Dich mit Deinem Server mit putty verbindest und die Befehle kopierst und einfügst. Wenn Du Config-Dateien auf Deinem Server bearbeiten möchtest, kannst Du Kommandozeilen Editoren wie vi, pico oder joe oder ein Programm wie WinSCP (http://winscp.net/eng/index.php) verwenden um die Dateien über Deine SSH Verbindung in einem Windows Client zu bearbeiten. Quota
apt-get install quota
Bearbeite /etc/fstab damit es wie folgt aussieht (ich habe ,usrquota,grpquota den Partitionen hinzugefügt mit dem Einhängepunkt / und /home):
# /etc/fstab: static file system information.
# # proc /proc proc defaults 0 0 /dev/sda3 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1 /dev/sda1 /boot ext3 defaults 0 2 /dev/sda4 /home ext3 defaults,usrquota,grpquota 0 2 /dev/sda2 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Lass dann dies laufen:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
touch /home/quota.user /home/quota.group
chmod 600 /home/quota.*
mount -o remount /home
quotacheck -avugm
quotaon -avug

Installiere Und Konfiguriere Den SAMBA Server
Um Samba zu installieren, lass Folgendes laufen
apt-get install samba samba-common samba-doc libcupsys2-gnutls10 libkrb53 winbind smbclient
Bearbeite /etc/samba/smb.conf sodass es wie folgt aussieht
[global]
workgroup = MYWORKGROUP
netbios name = SERVER1
server string = %h server (Samba, Ubuntu)

passdb backend = tdbsam
security = user
username map = /etc/samba/smbusers
name resolve order = wins bcast hosts
domain logons = yes
preferred master = yes
wins support = yes

# Set CUPS for printing
printcap name = CUPS
printing = CUPS

# Default logon
logon drive = H:
logon script = scripts/logon.bat
logon path = server1profile%U

# Useradd scripts
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usernod -G %g %u
add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
idmap uid = 15000-20000
idmap gid = 15000-20000

# sync smb passwords woth linux passwords
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn .
passwd chat debug = yes
unix password sync = yes

# set the loglevel
log level = 3

[homes]
comment = Home
valid users = %S
read only = no
browsable = no

[printers]
comment = All Printers
path = /var/spool/samba
printable = yes
guest ok = yes
browsable = no

[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
admin users = Administrator
valid users = %U
read only = no

[profile]
comment = User profiles
path = /home/samba/profiles
valid users = %U
create mode = 0600
directory mode = 0700
writable = yes
browsable = no
workgroup = MYWORKGROUP definiert die Windows domain, die die Windows Arbeitsplätze verwenden.

logon drive = H: ist der Laufwerksbuchstabe unter dem, die SAMBA Freigabe im Windows Explorer erscheinen wird.
Mit logon script = scripts/logon.bat kannst Du ein Windows batch script definieren, das ausgeführt wird, sobald sich eine Windows Arbeitsstation einloggt. Wenn das script nicht existiert, kannst Du diese Zeile auskommentieren.
Erstelle die Verzeichnisse für Domain Logons und Profiles:
mkdir /home/samba
mkdir /home/samba/netlogon
mkdir /home/samba/profiles
mkdir /var/spool/samba
chmod 777 /var/spool/samba/
chown -R root:users /home/samba/
chmod -R 771 /home/samba/

Nun starten wir Samba neu:
/etc/init.d/samba restart
Bearbeite /etc/nsswitch.conf. Ändere die Zeile:
hosts: files dns
zu:
hosts: files wins dns
Füge alle Computer Deiner Arbeitsgruppe in der /etc/hosts Datei auf dem Server hinzu.
192.168.0.100 server1
192.168.0.110 workstation1
192.168.0.111 workstation2
192.168.0.112 workstation3
192.168.0.113 workstation4
Füge den Root-Benutzer der SAMBA Passwort-Datenbank hinzu. Der Root-Benutzer (alias: Administrator) wird unser Domain Administrator sein. Dieses Konto wird benötigt um neue Computer der SAMBA Domain hinzuzufügen.
smbpasswd -a root
Erstelle die Datei /etc/samba/smbusers und füge die Zeile hinzu indem Du Folgendes ausführst:
echo "root = Administrator" > /etc/samba/smbusers
Dies erlaubt es uns den gewöhnlichen Benutzernamen "Administrator" als alias für den Linux Root-Benutzer zu verwenden.
Nun werde ich testen, ob das Setup korrekt ist:
smbclient -L localhost -U%
Die Ausgabe sollte ähnlich wie diese aussehen:
Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.14a-Ubuntu]

Sharename       Type      Comment
---------       ----      -------
netlogon        Disk      Network Logon Service
print$          Disk      Printer Drivers
IPC$            IPC       IPC Service (server1 server (Samba, Ubuntu))
ADMIN$          IPC       IPC Service (server1 server (Samba, Ubuntu))
Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.14a-Ubuntu]

Server               Comment
---------            -------
SERVER1              server1 server (Samba, Ubuntu)

Workgroup            Master
---------            -------
MDKGROUP             IPRG
MYWORKGROUP          SERVER1
Richte die Standard-Domain-Gruppen für Windows ein:
net groupmap modify ntgroup="Domain Admins" unixgroup=root
net groupmap modify ntgroup="Domain Users" unixgroup=users
net groupmap modify ntgroup="Domain Guests" unixgroup=nogroup

Benutzer Unserer SAMBA Domain Hinzufügen

Nun werden wir einen Benutzer, z.B. tom, unserer Samba Domain hinzufügen. Du wirst einen solchen Benutzer für jedes Benutzerkonto, das Du mit dem SAMBA Domain Server verbinden möchtest, hinzufügen.
1) Füge einen Linux Benutzer tom hinzu:
useradd tom -m -G users
2) Füge den Linux Benutzer tom der SAMBA Passwort-Datenbank hinzu:
smbpasswd -a tom
Freigaben Hinzufügen
Nun werde ich eine Freigabe hinzufügen, auf die von allen Benutzern zugegriffen werden kann.
mkdir -p /home/shares/allusers
chown -R root:users /home/shares/allusers/
chmod -R ug+rwx,o+rx-w /home/shares/allusers/

Am Ende der Datei /etc/samba/smb.conf füge folgende Zeilen hinzu:
[allusers]
comment = All Users
path = /home/shares/allusers
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
Nun starten wir Samba neu:
/etc/init.d/samba restart
Installation Von CUPS
Wenn Du möchtest, dass Dein SAMBA Server auch als ein Druck-Server fungiert, musst Du CUPS installieren und konfigurieren:
apt-get install cupsys cupsys-client cupsys-driver-gimpprint cupsys-driver-gimpprint-data defoma fontconfig foomatic-db foomatic-filters libcupsimage2 libexpat1 libfontconfig1 libfreetype6 libgimpprint1 libjpeg62 libpaper1 libpng12-0 libpoppler0c2 libslp1 libtiff4 patch perl perl-modules ttf-bitstream-vera ucf (1 Zeile!)
Um von meinem Arbeitsplatz aus Zugriff auf das Web Interface zu bekommen, werde ich cups ändern um auf der IP des Servers zu hören.
Bearbeite /etc/cups/cupsd.conf im Abschnitt Network Options:
Listen 127.0.0.1:631
Listen 192.168.0.100:631
Stelle AuthGroupName auf shadow im Abschnitt Security Options:
AuthGroupName shadow
Um einen Zugriff nur von meinem Admin Arbeitsplatz zu gewährleisten (IP: 192.168.0.70), füge ich Allow From 192.168.0.70 die Security Options hinzu und stelle AuthClass auf Group:
<Location /admin>
# # You definitely will want to limit access to the administration functions. # The default configuration requires a local connection from a user who # is a member of the system group to do any admin tasks. You can change # the group name using the SystemGroup directive. # AuthType Basic AuthClass Group ## Restrict access to local domain Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.0.70 #Encryption Required </Location>
Füge den cupsys Benutzer der shadow Gruppe hinzu:
adduser cupsys shadow
und starte den cups daemon neu:
/etc/init.d/cupsys restart
Auf das cups webinterface kann ich nun mit jedem Web Browser meiner Arbeitsstation zugreifen:
http://192.168.0.100:631/
Nun kann ich mich auf dem cups interface mit dem Benutzernamen root und meinem Root Passwort anmelden.
Hinweis: Wenn kein Linux Treiber für Deinen Drucker verfügbar ist und Du diesen Drucker nur von Deiner Windows Arbeitsstation via SAMBA verwenden möchtest, kannst Du den Druckerhersteller RAW verwenden und den richtigen Treiber auf Deiner Windows Arbeitsstation installieren.
Wenn Du in cups einen neuen Drucker erstellt hast, wirst Du ihn mit folgendem Befehl Samba hinzufügen müssen:
cupsaddsmb -a
Viel Spaß!
Links All trademarks belong to their respective owner.