Bei der Installation des Mailservers hat mir zum ersten Mal YaST und damit OpenSuSE etwas gefehlt. Ein etwas komisches Gefühl habe ich immer noch mit der Installation, obwohl es anscheinend funktioniert.

Im ersten Schritt muss man die Pakete

  • postfix
  • libsasl2-modules
  • mailx

nachinstallieren. Dann an der Konsole aufrufen:

sudo dpkg-reconfigure postfix

sofern das Konfigurationstool nicht startet, oder man eine falsche Eingabe gemacht hat.

Für mich wichtig war die erste Frage nach dem Typ des Mailservers, für einen Rechner mit Dialin wäre das:

Internet mit Smarthost

bei fester Anbindung mit fester IP

Internet Site

Die weiteren Fragen betreffen dann das Netzwerk und die Antworten sind einigermaßen naheliegend.

Es ergibt sich dann folgende Datei /etc/postfix/main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = server
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = server, localhost.localdomain, server.hsan.hh.schule.de, localhost
relayhost = debacher.com
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
myorigin = /etc/mailname
inet_protocols = all

Nicht schön, aber funktionsfähig.

Da mein Rechner sich am Smarthost authentifizieren muss kommen noch folgende Zeilen für SASL hinzu:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
masquerade_domains = debacher.de,debacher.net,hsan.hh.schule.de, debacher.de

Die letzte Zeile entfernt den Rechnernamen aus den angegebenen Maildomains.

Die Passwortdaten stehen in der Datei /etc/postfix/sasl_passwd:

# sasl_passwd
# Syntax:
# domain        username:password
# Example:
foo.com       username:password

Damit sollte der Mailserver nach einem Neustart funktionsfähig sein. Die Konfiguration der Spamabwehr folgt im nächsten Teil.

Weitere Information unter http://www.linuxbu.ch/pdf6/kapitel14.pdf und natürlich http://wiki.ubuntuusers.de/Postfix

Veröffentlicht unter linux.

Wenn man längere Zeit schon Evolution als Mailprogramm verwendet, dann sammelt sich eine große Zahl an Mails an, die man auch bei einem Rechnerwechsel bzw. einer Neuinstallation nicht verlieren möchte.

Bei mir hat Evolution oft gemuckt, wenn ich das Daten-Verzeichnis .evolution einfach nur kopiert habe.  Gelegentlich tauchen dann neue Mail nicht mehr sichtbar auf, oder ähnliches. Gute Erfahrungen habe ich damit gemacht Evolution erst einmal zu starten, ohne die Daten kopiert zu haben.

Dann in den Ordner .evolution/mail/local alle Dateien Dateien aus dem entsprechenden Ausgangsordner kopieren, die keine Extension tragen. Also z.B. nur Inbox und nicht Inbox.meta,  Inbox.ibex.index,  Inbox.ibex.index.data. Diese Dateien werden dann beim Start von Evolution neu angelegt, sowie man den entsprechenden Ordner anklickt.

Ganz kopiert habe ich die Ordner .evolution/addressbook und .evolution/calendar.

Die per USB angebundene CinergyT2 von Terratec ist toll, weil sie auf allen aktuellen Systemen sofort und ohne weitere Installation erkannt wird.  Zeilen wie

[   13.589336] DVB: registering new adapter (TerraTec/qanu USB2.0 Highspeed DVB-T Receiver)
[   13.589852] input: TerraTec/qanu USB2.0 Highspeed DVB-T Receiver remote control as /devices/pci0000:00/0000:00:10.4/usb5/5-7/input/input7
[   13.612638] usbcore: registered new interface driver cinergyT2

sollten sich nach dem Start in der Ausgabe von dmesg finden, außerdem muss es das Verzeichnis /dev/dvb/adapter0 geben. Als Frontend zum Betrachten des Fernsehprogrammes ist kaffeine sehr geeignet. Das Programm muss man nachinstallieren, vorsichtshalber nachedem das Medibuntu-Repository eingebunden ist. Man benötigt einige Codecs von Medibuntu.

Beim ersten Start moniert kaffeine fehlende Komponenten und gibt Hilfen, wie eventuelle Probleme zu lösen sind. Im Menü DVB (sofern die Karte erkannt wurde)  gibt es den Menüpunkt Kanäle.  Hier klickt man ohne weitere Einstellungen auf Suche starten und muss sich dann etwas gedulden. Wenn alles in Ordnung ist, dann wird eine lange Reihe von Fernsehsendern gefunden, die dann in die Auswahlliste übernommen werden können.

Das Web ist voll mit Anleitungen was man machen soll, wenn hier keine Kanäle auftauchen. Zumindest mit der Terratc hat es immer ohne jegliche Konfiguration geklappt, selbst auf dem eeePC.

Was komisch war ist meine Installation auf einem Ubuntu 64-Bit System. Hier fehlten die notwendigen Codecs, obwohl ich sie eigentlich installiert hatte. Ich konnte einzelne Sender ansehen, beim Umschalten hängte sich kaffeine dann aber auf.

Interessanterweise gibt es auch an der Quelle http://www.mplayerhq.hu/ bei den Binary Codecs einen gravierenden Unterschied zwischen den 32-Bit und den 64-Bit Paketen.

Ich habe dann in meine openSUSE-64-BitInstallation geschaut und gesehen, dass dort alle Dateien vorhanden sind und die dann einfach nach /usr/lib/codecs kopiert. Nun kann ich auch umschalten.

Für einen Server sind File-Dienste von zentraler Bedeutung. Auch unter Linux ist dafür das SMB-Protokoll weit verbreitet, da es einen Austausch mit Windows-Rechnern erlaubt. nachinstallieren muss man dazu das Paket samba.

Konfiguriert wird Samba über die Datei /etc/samba/smb.conf. Man muss einfach die vorhandene Datei an die eigene Situation anpassen.

[global]
workgroup = ARBEITSGRUPPE
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = Bad User
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = Z:
usershare allow guests = Yes
add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
domain logons = Yes
domain master = Yes
local master = Yes
os level = 65
preferred master = Yes
security = user

server string = %L
username map = /etc/samba/smbusers
username level = 5

log level = 1
syslog = 0
log file = /var/log/samba/log.%m
max log size = 10000
time server = Yes
wins support = Yes
encrypt passwords = true
logon script = scripts\%a.bat
add user script = /usr/sbin/useradd -m %u
add group script = /usr/sbin/groupadd "%g"
add user to group script = /usr/sbin/groupmod -A "%u" "%g"
delete user from group script = /usr/sbin/groupmod -R "%u" "%g"
set primary group script = /usr/sbin/usermod -g "%g" "%u"
unix password sync = True
passwd program = /usr/bin/passwd %u
pam password change = True
deadtime = 15
profile acls = Yes

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
wide links = no
preexec = echo "%u connected to %S from %m %I mit Typ %a" >> /tmp/log

[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700

[users]
comment = All users
path = /home
read only = No
inherit acls = Yes
veto files = /aquota.user/groups/shares/

[goups]
comment = All groups
path = /home/groups
read only = No
inherit acls = Yes

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @ntadmin root
force group = ntadmin
create mask = 0664
directory mask = 0775
[netlogon]
comment = Network Logon Service
path = /home/dos/netlogon
read only = yes
write list = @ntadmin root @admin
force group = ntadmin
create mask = 0664
directory mask = 0775

[profiles]
path = %H
read only = no
inherit permissions = Yes
store dos attributes = Yes
create mask = 0600
directory mask = 0700

[cdrom]
comment = CD-ROM drive des Linuxservers
browsable = yes
available = yes
public = yes
writable = no
path = /media/dvdrecorder
locking = no

Die angegebene Datei smbusers ist für die Zuordnung zwischen Linux- und Windows-Namen zuständig:

# This file allows you to map usernames from the clients to the server.
# Unix_name = SMB_name1 SMB_name2 ...
#
# See section 'username map' in the manual page of smb.conf for more
# information.
#
# This file is _not_ included in the default configuration as it makes the
# usage of an user named administrator impossible.

root = administrator
;nobody = guest pcguest smbguest

Im gleichen Verzeichnis liegt auch die Datei smbpasswd, die Passwortdatenbank von Samba.

Weitere Informationen unter http://www.linuxbu.ch/pdf6/kapitel09.pdf
und http://wiki.ubuntuusers.de/Samba

Veröffentlicht unter linux.

Sofern der Ubutu-Rechner Serverdienste zur Verfügung stellen soll, benötigt er in der Regel auch einen Nameserver, um die lokalen Adressen auflösen zu können.

Zuerst installiert man das Paket bind9 nach.

Nun sind wieder einige Dateien anzupassen, wobei diese sich zum größten Teil im Verzeichnis /etc/bind befinden. Die Hauptkonfigurationsdatei ist named.conf, an die muss man aber nicht heran, die Änderungen erfolgen an Dateien, die hier eingebunden werden.

In die Datei /etc/bind/named.conf.options kommen alle Voreinstellungen, die am Anfang berücksichtigt werden müssen:

options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.

forwarders {
192.168.1.254;
81.169.185.55;
};

allow-query {192.168.1.0/24; };

auth-nxdomain no;    # conform to RFC1035
listen-on-v6 { any; };
listen-on { 127.0.0.1; 192.168.1.1; };
};

Hier stehen vor allem die Forwarders, die Nameserver, an die Anfragen weitergeleitet werden, die lokal nicht zu beantworten sind. Danach noch ein paar einstellungen für das lokale Netzwerk.

Die Adressen werden über die Datei /etc/bind/named.conf.local eingebunden:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "hsan.hh.schule.de" {
type master;
file "db.privat";
allow-update { 127.0/16; 192.168/16; };
};

zone "1.168.192.in-addr.arpa" {
type master;
file "db.1.168.192";
allow-update { 127.0/16; 192.168/16; };
};

Hier eine typische Situation für ein lokales Netzwerk, einmal die Auflösung vom Namen zur IP-Adresse (db.privat) und dann die Auflösung von der IP-Adresse zum Namen (db.1.168.192).

Die beiden Dateien liegen im Verzeichnis /var/cache/bind:

Für die Vorwärtsauflösung:

$TTL 86400      ; 1 day
$GENERATE 2-200 client-$ A 192.168.1.$
@       IN SOA  server.hsan.hh.schule.de. postmaster.hsan.hh.schule.de.de. (
2009031204 ; serial
10800      ; refresh (3 hours)
900        ; retry (15 minutes)
604800     ; expire (1 week)
86400      ; minimum (1 day)
)
NS      server.hsan.hh.schule.de.
MX      0 server.hsan.hh.schule.de.
server                  A       192.168.1.1
boss                    CNAME   server
ftp                     CNAME   server
mail                    CNAME   server
news                    CNAME   server
ns                      CNAME   server
www                     CNAME   server

Und für die Rückwärtsauflösung:

$TTL 86400      ; 1 day
$GENERATE 2-200 $ PTR client-$.hsan.hh.schule.de.
@       IN SOA  server.hsan.hh.schule.de. postmaster.hsan.hh.schule.de. (
2009040204 ; serial
10800      ; refresh (3 hours)
900        ; retry (15 minutes)
604800     ; expire (1 week)
86400      ; minimum (1 day)
)
NS      server.hsan.hh.schule.de.
1                       PTR     server.hsan.hh.schule.de.

Weitere Informationen und Erläuterungen finden sich unter http://www.linuxbu.ch/pdf6/kapitel13.pdf und http://wiki.ubuntuusers.de/DNS-Server_Bind

Veröffentlicht unter linux.

Die Einrichtung eines DHCP-Servers unter Ubuntu ist nicht besonders aufwändig. Zunächst muss man das Paket dhcp3-server nachinstallieren. Dann müssen noch zwei Dateien angepasst werden:

In der Datei /etc/default/dhcp3-server muss man das Interface eintragen, auf das der Server lauschen soll, also meist eth0 oder auch eth1:

# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

Dann noch die Konfigurationsdatei /etc/dhcp3/dhcpd.conf anpassen:

# /etc/dhcpd.conf
#
# Configuration file for ISC dhcpd
#

# -- global options --
default-lease-time                 160000;
max-lease-time                     200000;
use-host-decl-names                on;
option dhcp-max-message-size       1024;
ddns-update-style                  none;
authorative;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.40 192.168.1.160;
server-identifier 192.168.1.1;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.254;
option domain-name "hsan.hh.schule.de";
}

host drucker {
hardware ethernet 00:0e:7f:40:1c:cc;
fixed-address 192.168.1.14;
}

Dannnoch den Server neu starten mittels

/etc/init.d/dhcp3-server restart

Nun sollten in der /var/log/syslog Meldungen auftauchen, sowie im Netz eine IP-Adresse angefordert wird.

Weitere Informationen unter http://www.linuxbu.ch/pdf6/kapitel02.pdf und http://wiki.ubuntuusers.de/DNS-Server_Bind

Veröffentlicht unter linux.

Mit den Ubuntu-Datenträgern wird normalerweise nur freie Software ausgeliefert. Will man Programme, wie den Acrobat Reader, Flash oder Skype nutzen, so muss man Repositories einbinden, die auch unfreie Programme anbieten.  Sehr umfangreich und beliebt ist medibuntu. Der einfachste Weg Medibuntu zu aktivieren ist von der Shell aus:

sudo wget http://www.medibuntu.org/sources.list.d/intrepid.list --output-document=/etc/apt/sources.list.d/medibuntu.list

Nun noch in Synaptic einmal auf Neu laden geklickt, dann stehen auch diese Pakete zur Verfügung.

Will man Fehlermldungen wegen nicht verfügbarer Schlüssel (GPG-Error) für Medibuntu vermeiden, so installiert man zunächst das Paket medibuntu-keyring. Danach sollten diese Fehlermeldungen nicht mehr auftauchen.

Veröffentlicht unter linux.

Installiert man Ubuntu auf einem Rechner, der seine IP-Adresse nicht von einem DHCP-Server bekommt, so gibt es anfangs natürlich Verbindungsprobleme. Der Fall tritt z.B. immer dann auf, wenn man eine Installation für einen Server durchführt.

In diesem Fall muss man die Daten von Hand angeben, eventuell schon während der Installation (mit Strg+Alt+F2 auf eine Konsole wechseln und dort mit sudo nano /etc/network/interfaces bearbeiten). Zuständig ist die Datei /etc/network/interfaces.

Normalerweise ist hier nur das Loopback-Device zu finden.

auto lo
iface lo inet loopback

Diese Datei muss man nun um die gewünschten Einstellungen erweitern:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254

Danach kann man dann auch den Network-Manager abschalten, er wird ja bei einer statischen Verbindung auch nicht benötigt.

Deaktivieren kann man ihn über das Menü Einstellungen -> Sitzungen.  In dem erscheinenden Fenster einfach das Häkchen vor Network Manager entfernen, dann startet er zukünftig nicht mehr.

Auf dem Rechner ist ja auch noch keine Namensauflösung aktiviert, auch das macht sonst der Networkmanager,  insofern muss man auch noch die Datei /etc/resolv.conf anlegen, die angibt wo Nameserver zu finden sind:

domain xyz.de
search xyz.de
nameserver 192.168.1.254

In diesem Fall ist auch der Router als Nameserver eingetragen, was bei vielen Hardwareroutern, wie der Fritz!Box, gut funktioniert. Im Bedarfsfall kann man mehrere Zeilen mit Nameservern eintragen.

Nun muss der Rechner auch noch seinen eigenen namen wissen. Dazu trägt man in die Datei /etc/hostname den Rechnernamen ein und in die Datei /etc/hosts entsprechend den Rechnernamen und den vollen Rechnernamen.