Upload
duongngoc
View
223
Download
0
Embed Size (px)
Citation preview
2
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Inhaltsverzeichnis
Vorüberlegungen zum Server ............................................................................................ 2
Was soll mein Linux Server können? ........................................................................................................................ 2
Eingesetzte Hardware ..................................................................................................................................................... 2
Installation vom Grundsystem .......................................................................................... 2
NTP-Server installieren ..................................................................................................... 2
DHCP-Server installieren und konfigurieren ...................................................................... 2
DNS-Server installieren und konfigurieren ......................................................................... 2
Dynamisches Aktualisieren des DNS-Servers durch den DHCP-Server ................................ 2
Linux-Datei-Server Samba installieren und konfigurieren .................................................. 2
Verzeichnis und Freigabe anlegen ............................................................................................................................. 2
Samba als Domaincontroller ........................................................................................................................................ 2
Linux-Druck-Server CUPS einrichten .................................................................................. 2
Drucker auf dem PC/Laptop einrichten .................................................................................................................. 2
Sicherheit CUPS .................................................................................................................................................................. 2
Linux-Mail-Server Postfix installieren ................................................................................ 2
MySQL-Server installieren ................................................................................................. 2
Installation ........................................................................................................................................................................... 2
DefaultCharset festlegen ................................................................................................................................................ 2
Server Side Includes aktivieren: ................................................................................................................................. 2
Eine Website anlegen: ..................................................................................................................................................... 2
Linux-Mail-Server Installieren und Konfigurieren ............................................................... 2
Postfix konfigurieren ....................................................................................................................................................... 2
Emails mit fetchmail abholen ....................................................................................................................................... 2
SASL-Authentifizierung der smtp-Clients gegenüber Postfix ......................................................................... 2
IMAP-Server mit Dovecot .............................................................................................................................................. 2
TLS Verschlüsselung ........................................................................................................................................................ 2
Virenscanner installieren .................................................................................................. 2
SSH-Server für die Remoteadministration installieren ....................................................... 2
Webmin installieren ......................................................................................................... 2
Die Datensicherung ........................................................................................................... 2
Hardware Raid Lösung ................................................................................................................................................... 2
Software Lösung mit zwei HD ...................................................................................................................................... 2
3
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Analyse Soll Funktionen meines Server Warum soll ich überhaupt noch Linux-Server installieren? Heute im Zeitalter der Notebooks, PC‘s, Tablets den Cloud‘s und NAS Lösungen. Für mich gibt es dazu folgende Gründe:
• PC‘s, Notebooks, Tablets und Smart Phone sind anfällig für:
o Viren, Trojaner und andere Schädlinge o Diebstahl o Systemabstürze o Datenverluste durch defekte Festplatten o Löschen von Daten durch den Benutzer ohne Backup
• Cloud Lösungen beantworten mir die Frage wo meine Daten gespeichert sind nicht zufriedenstellend
• NAS mögen gut sein aber sind fertig definierte Systeme die meistens Funktionen bieten die ich gar nicht benötige.
• Ein Linux-Server ist ist im Gegenzug
o Wesentlich zuverlässiger, vorausgesetzt man ändert nicht dauernd was. (Never touch a running System...)
o Kann ich genau auf meine Bedürfnisse und Anforderungen anpassen
Aus meiner Erfahrung ist es zeitraubend, bei jeder Linux-Server-Installation alles neu zu recherchieren. Aus diesem Grund habe ich hier mir meine Arbeitsschritte protokolliert, die zur Installation meines Linux-Servers notwendig waren und zu einem kleinen "howto" zusammengefaßt.
Plattformübergreifende Dienste meines Servers � Datei-Server
o Sichere und zuverlässige Dateiablage für persönliche und gemeinsame Dokumente � Druck-Server
o Den Rechner in meinem Netz den vorhandenen Drucker zur Verfügung stellen. � Zeit-Server
o Den Clients als gemeinsame Zeitbasis dienen. � Web-Server und Datenbank-Server
o Entwicklungs-Server für Websites und meine Wissensdatenbank � DNS Server
o Namensauflösung im Heimnetz � DHCP Server
o IP Adreßvergabe im Heimnetz o Übermittlung des DNS Servers und Standardgateways an die Client-PCs
� Mail Server o Zentrale und sichere Speicherung aller Emails mit Zugriff über IMAP
Eingesetzte Hardware HP ProLiant DL380 Generation 5 (G5) CPU: 2x Quad-Core Intel® Xeon® Processor E5450 (3.00 GHz, 80 Watts, 1333 FSB) RAM: 4GB PC2-5300 Fully Buffered DIMMs (DDR2-667) (64GB möglich) Festplatte: 8x 147GB Hot Plug SAS Mit der beschriebenen Konfiguration beträgt die Leistungsaufnahme im Leerlauf 300 Watt.
4
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Installation vom Grundsystem Ich verwende die zur Zeit aktuelle Version von Debian GNU/Linux 6.0 (squeeze).Die CD (es reicht die 1. CD) habe ich mir von http://www.debian.org/ geladen. Es gibt bei Debian keine spezielle Server-Distribution. Zur Installation starte ich von der Linux-CD und wähle die Startoption "expert". Folgende Angaben und Auswahlpunkte musste ich vor/während meiner Installation wählen:
Menüpunkt / Abfrage Auswahl / Angaben
Choose language German
Wählen Sie ein Land oder Gebiet Schweiz
Sprache wählen (für locale Parameter) de_CH-UTF-8
andere Locales de_CH und de_CH.UTF-8
Art der Tastatur PC-Tastatur (AT- oder PS/2-Stecker)
Wählen Sie das Tastaturlayout für die Tastatur aus:
Schweizerdeutsch
Diese Module laden: <weiter>
PC-Card-Dienste starten? <nein> Ich habe kein PCMCIA am Server
Zu ladende Installationskomponenten: <weiter>
Netzwerk automatisch mit DHCP einrichten? Ein Server sollte eine feste Adresse haben. Deshalb <nein>
IP-Adresse: 192.168.0.10
Netzmaske: 255.255.255.0
Gateway: 192.168.0.1 (Das ist mein DSL Router.)
Adresse des DNS-Servers: 192.168.0.1
Sind diese Informationen richtig? <Ja>
Rechnername: debian (Ich übernehme den Vorschlag.)
Domainnahme: renes.xx
Partitionsmethode: Ich habe manuell eine 100 GB Partition für /root und den Rest für "daten" angelegt.
Basierend auf Ihrem Land ist die Zeitzone Europe/Berlin.
<weiter>
Ist die Systemzeit auf UTC gesetzt? <nein>
Shadow Passwörter benutzen? <Ja>
root das Anmelden erlauben? <Ja>
Soll ein normales Benutzerkonto erstellt werden?
<nein> (Das mache ich später.)
Zu installierender Kernel: Die angebotene Auswahl ist meistens richtig und kann übernommen werden.
Einen Netzwerkspiegel verwenden? <Ja> (Man sollte dafür eine DSL Flatrate haben!)
Protokoll für den Datei-Download: http
Land des Debian-Archiv-Spiegelservers: Schweiz
Debian-Archiv-Spiegelserver: ftp.ch.debian.org
HTTP-Proxy-Daten: <weiter> (Ich habe keinen Proxy und lasse das Feld leer.)
>>Non-free<<-Software verwenden? <Ja> (Das ist Ansichtssache ;-))
An der Paketverwendungserfassung teilnehmen?
<Ja> (Auch das ist Ansichtssache.)
Welche Software soll installiert werden? Alle Sternchen mit der Leertaste entfernen außer "Standardsystem" dann <weiter>
Den GRUB-Bootloader in den Master Boot Record installieren?
<Ja>
GRUB-Passwort: leer lassen
5
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Danach kommt nur noch der Hinweis, daß das System neu gestartet wird. Damit läuft mein Grundsystem. Die Verwaltung des Systems kann ich auf der Linux-Konsole oder über Webfrontend machen. Ich habe mich entgegen dem üblichen Vorgehen erlaubt die grafische Oberfläche zu installieren.
NTP-Server installieren Mein Linux-Server soll meinen Clients im Heim-Netz als Zeitbasis dienen. aptitude install ntp Anschließend bearbeite ich die NTP-Server-Liste in der Konfigurationsdatei /etc/ntp.conf (mit dem Editor des MC). Die Server-Liste erweitere ich mit Schweizer Pool-Servern und dem Zeit-Server meines Internetproviders: server 0.ch.pool.ntp.org server 1.ch.pool.ntp.org server 2.ch.pool.ntp.org server 3.ch.pool.ntp.org Anschließend starte ich mit /etc/init.d/ntp restart NTP neu.
DHCP-Server installieren und konfigurieren Die Installation mache ich mit dem Konsolenbefehl: aptitude install dhcp3-server Danach bearbeite ich die Konfigurationsdatei /etc/dhcp3/dhcpd.conf. Die Vorlage für die Konfiguration ist relativ weit unten zu finden. Ich habe die Datei wie folgt angepasst: authoritative; #A slightly different configuration for an internal subnet. subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.150 192.168.0.160; option domain-name-servers 192.168.0.1; option time-servers 192.168.0.10; option domain-name "renes.xx"; option routers 192.168.0.1; option broadcast-address 192.168.0.255; default-lease-time 3600; max-lease-time 86400; } Danach starte ich meinen DHCP-Server neu mit: /etc/init.d/dhcp3-server restart
6
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
DNS-Server installieren und konfigurieren Die Installation mache ich mit dem Befehl: aptitude install bind9 dnsutils Würde ich die Konfigurationsdatei /etc/bind/named.conf.options unbearbeitet lassen, werden in dieser Standardeinstellung die DNS-Root-Server befragt. Das funktioniert problemlos, widerspricht aber dem hierarchische Aufbau des DNS. Die Datei /etc/bind/named.conf.options habe ich wie folgt angepasst: options { directory "/var/cache/bind"; forward first; forwarders { 87.118.100.175; 89.238.64.148; 8.8.8.8; }; allow-query {localhost; localnets;}; allow-transfer {none;}; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; Die Datei /etc/bind/named.conf.local habe ich wie folgt angepaßt: zone "reness.xx" { type master; file "/etc/bind/db.renes"; }; zone "2.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.2"; }; Anlegen der Zonendateien - ich nehme die Datei db.empty als Kopiervorlage: cp /etc/bind/db.empty /etc/bind/db.renes cp /etc/bind/db.empty /etc/bind/db.192.168.2 Anpassen der Zonendateien: /etc/bind/db.renes $TTL 86400 ; 1 day @ IN SOA debian.renes.xx. root.localhost. ( 200801131 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expire 86400 ; minimum ) NS debian.renes.xx.
7
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
$ORIGIN renes.xx. debian A 192.168.0.10 localhost A 127.0.0.1 loopback CNAME localhost /etc/bind/db.192.168.2 $TTL 86400 @ IN SOA debian.renes.xx. root.debian.renes.xx. ( 200801131 604800 86400 2419200 86400 ) 2.168.192.in-addr.arpa. IN NS debian.renes.xx. 105.2.168.192.in-addr.arpa. IN PTR debian.renes.xx. Wichtig ist, bei jeder Änderung der Zonendateien, die "serial" hochzuzählen. Bind übernimmt sonst die Änderungen nicht, bringt aber auch keine Fehlermeldungen Die Datei /etc/resolv.conf legt die Suchreihenfolge fest und sieht bei mir so aus: order bind,hosts search renes.xx nameserver 192.168.0.10 In der Datei /etc/network/interfaces steht die Konfiguration der Netzwerkschnittstelle. Hier ändere ich noch den DNS-Server-Eintrag: auto lo iface lo inet loopback allow-hotplug eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.10 dns-search renes.xx Damit habe ich die Konfiguration eines statischen DNS-Servers beendet.
Dynamisches Aktualisieren des DNS-Servers durch den DHCP-Server Zuerst muß ich den rndc-key kopieren. cp /etc/bind/rndc.key /etc/rndc.conf Danach bearbeite ich die Datei /etc/rndc.conf (Der Key ist auf jedem System ein Anderer.): key "rndc-key" { algorithm hmac-md5;
8
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
secret "6muLuyiqdEpRldTFtVLtAA=="; }; options { default-server localhost; default-key "rndc-key"; }; Nun binde ich den Schlüssel in die Datei /etc/bind/named.conf ein. Meine Datei hat danach folgendes Aussehen: include "/etc/bind/rndc.key"; controls { inet 127.0.0.1 allow {localhost; } keys {rndc-key; }; }; include "/etc/bind/named.conf.options"; zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; allow-update { key "rndc-key"; }; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; allow-update { key "rndc-key"; }; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; allow-update { key "rndc-key"; }; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; allow-update { key "rndc-key"; }; }; include "/etc/bind/named.conf.local"; Auch die Datei /etc/bind/named.conf.local muss ich anzupassen, die bei mir folgendes Aussehen hat: zone "renes.xx" { type master; file "/etc/bind/db.renes"; allow-update { key "rndc-key"; }; }; zone "2.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.2"; allow-update { key "rndc-key"; }; }; Weil mein DHCP-Server den DNS-Server anfragen muß, passe ich auch die Datei /etc/dhcp3/dhcpd.conf an. Sie hat bei mir folgendes Aussehen:
9
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
ddns-updates on; ddns-update-style interim; ddns-domainname "renes.xx."; ignore client-updates; include "/etc/bind/rndc.key"; authoritative; log-facility local7; zone renes.xx. { primary 127.0.0.1 ; key rndc-key ; } zone 2.168.192.in-addr.arpa. { primary 127.0.0.1 ; key rndc-key ; } subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.150 192.168.0.160; option domain-name-servers 192.168.0.10; option time-servers 192.168.0.10; option domain-name "renes.xx"; option routers 192.168.0.1; option broadcast-address 192.168.0.255; default-lease-time 3600; max-lease-time 86400; } Für das Verzeichnis /etc/bind passe ich noch die Rechte an: chmod g+w /etc/bind Jetzt starte ich noch den DNS- und den DHCP-Server neu und alles sollte funktionieren: /etc/init.d/dhcp3-server restart /etc/init.d/bind9 restart Fehlermeldungen finde ich in der Datei /var/log/syslog. Wenn alles funktioniert, werden nach einer Weile im Verzeichnis /etc/bind automatisch Journaldateien angelegt, bei mir die db.renes.jnl und die db.192.168.0.jnl. Nach Bearbeiten der Zonendateien lösche ich die Journaldatei. Bind bringt sonst Fehlermeldungen, die im syslog zu finden sind. Die Journaldatei wird automatisch wieder angelegt. Besser ist es, statt den ganzen DNS-Server neu zu starten, nur die neue Konfiguration einzulesen. Das erreiche ich mit: rndc reload
Linux-Datei-Server Samba installieren und konfigurieren Quellen, die ich verwendet habe: http://wiki.ubuntuusers.de/Samba_Server http://wiki.ubuntuusers.de/Samba_Server_PDC http://wiki.ubuntuusers.de/chmod Die Installation mache ich mit: aptitude install samba
Arbeitsgruppen-/Domain-Name festlegen: bei mir renes.xx Damit die Home-Verzeichnisse der User nicht gegenseitig eingesehen werden können, muss ich die Datei- und Verzeichnisrechte anpassen. Für Home-Verzeichnisse, die bereits existieren, mache ich das auf der Konsole mit folgenden Befehlen:
10
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
(echo; echo "umask 027") | tee --append ~/.bash_profile >> ~/.profile chmod -R o-rwx $HOME chmod o+x $HOME Für die Home-Verzeichnisse von Usern, die erst noch angelegt werden, kann ich das von vornherein mit folgenden Befehlen auf der Konsole einrichten: sed -ie 's/^umask.*$/umask 027/' /etc/profile dpkg-reconfigure adduser Dabei beantworte ich die Frage "Wünschen Sie systemweit lesbare Heimatverzeichnisse?" mit "Nein“. Bei mir soll es eine gemeinsame Gruppe "renes" geben, die auf eine gemeinsame Dateiablage, bzw. Freigabe zugreifen soll. Die Gruppe lege ich an mit: groupadd renes Jetzt lege ich die Benutzer an: adduser rene Der Gruppe renes den User rene hinzufügen: addgroup rene renes
Verzeichnis und Freigabe anlegen Ich lege das Verzeichnis /home/public für die gemeinsame Freigabe an. Das geht am einfachsten mit dem Midnight Commander. Oder mit: mkdir /home/public Der Gruppe renes das Verzeichnis übereignen: chgrp -R renes /home/public Rechte auf dem Verzeichnis ändern: chmod 770 -R /home/public chmod -R g+srwx /home/public Samba Konfigurationsdatei /etc/samba/smb.conf anpassen Im Abschnitt [homes] muß "writable = yes" gesetzt werden. Sonst kann ich auf das persönliche Verzeichnis nicht schreiben. Neue Freigabe einrichten durch hinzufügen des folgenden Abschnitts z.B. am Ende der Datei: [Public] comment = gemeinsame Ablage für Renes writeable = yes path = /home/public valid users = renes force directory mode = 770 force create mode = 770 force group = renes oplocks = no Ich will meine Samba-Freigaben in der Windows-Netzwerkumgebung "sehen“, und mache das mit folgenden Einträgen: os level = 100
11
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
preferred master = yes domain master = yes local master = yes
Nun teste ich ob die Konfigurationsdatei in Ordnung ist mit: testparm -v Vergebe die Samba Benutzerpasswörter (Auf der Linuxconsole): smbpasswd -a rene Starte Samba neu: /etc/init.d/samba restart Zum Test kann ich jetzt in der Adreßzeile des Windows-Dateiexplorers \\debian eingeben. Es sollten die Freigaben zu sehen sein.
Samba als Domaincontroller Die Datei /etc/samba/smb.conf editiere ich wie folgt: security = user
;invalid users = root
logon path =
os level = 100
preferred master = yes
domain master = yes
local master = yes
domain logons = yes
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
writable = no
share modes = no Der User root muß sich anmelden können, um PCs in die Domäne aufzunehmen. Hinter "logon path =" gebe ich keinen Pfad an, weil mein Notebook keine servergespeicherten Benutzerprofile haben soll. Danach gehts auf der Konsole weiter: smbpasswd -a root
useradd -s /bin/false nb$
smbpasswd -a -m nb$
mkdir -p /home/samba/netlogon Erklärung:
• Dem Benutzer root wird ein Samba-Passwort vergeben.
• Das Maschinenkonto für mein Notebook "nb" wird angelegt.
• Das Maschinenkonto "nb" wird für Samba aktiviert und bekommt ein Passwort.
• Das Netlogon-Verzeichnis wird angelegt. Nun kann das Notebook "nb" der Domäne hinzugefügt werden. Unter Win. über die Eigenschaften des Arbeitsplatzes -> Computername -> ändern.
12
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Linux-Druck-Server CUPS einrichten Die Installation erfolgt mit dem Befehl: aptitude install cupsys cupsys-bsd cups-driver-gutenprint foomatic-filters Dann passe ich meine CUPS-Konfigurationsdatei /etc/cups/cupsd.conf wie folgt an: Listen localhost:631 muß geändert werden in Listen 192.168.0.10:631 <Location /> # ergänzen mit folgender Zeile: Allow 192.168.0.0/24 </Location> <Location /admin> # ergänzen mit folgender Zeile: Allow 192.168.0.0/24 </Location> <Location /admin/conf> # ergänzen mit folgender Zeile: Allow 192.168.0.0/24 </Location> Nach dem Speichern der Datei muß diese neu geladen werden: /etc/init.d/cups reload Jetzt kann ich in Firefox die CUPS Seite aufrufen mit: http://192.168.0.10:631 Unter "Neue Drucker gefunden" wird bereits mein Drucker angezeigt. Ich wähle "Diesen Drucker hinzufügen". In der nachfolgenden Druckerliste wird mein Drucker nicht mehr zur Auswahl angeboten. Da ich keinen kompatiblen, sondern den richtigen Druckertreiber möchte, habe ich mir aus dem Internet die passende PPD Datei geladen und füge diese hinzu. Im folgenden Konfigurationsmenü habe ich noch das Papierformat auf A4 eingestellt. Damit ist der Drucker auf der Serverseite eingerichtet. Jetzt passe ich noch die Samba Konfigurationsdatei /etc/samba/smb.conf an. Ich muss nur das Kommentarzeichen auf folgender Zeile entfernen: printing = cups Nach einem /etc/init.d/samba restart steht der Drucker im Netz zur Verfügung.
Drucker auf dem PC/Laptop einrichten Wenn beim Verbinden mit dem Drucker die Meldung kommt: „keinen Zugriff mangels erforderlicher Rechte“, dann sind damit die Windows-Rechte gemeint, die nicht ausreichen einen neuen Drucker einzurichten. Dem kann ich mit temporären Admin-Rechten abhelfen. Ggf. ist dann noch der Druckertreiber, durch Angabe des Installationspfades, zu installieren. Wenn ich von Windows aus auf einen, über Samba freigegebenen Drucker drucken will, ist dabei eine Authentifizierung erforderlich. Habe ich vorher mindestens ein Netzlaufwerk verbunden, ist die Authentifizierung schon erfolgt und somit kein Problem. Drucken geht aber auch ohne Samba, über das Internet Printing Protocol (ipp).
13
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Dazu ist bei der Druckereinrichtung unter Windows die URL anzugeben. Bei mir: https://debian:631/printers/Brother Bei meinem Linux-Client habe ich die Adresse so eingegeben: ipp://debian:631/printers/Brother Nach einer Authentifizierung fragt Cups an dieser Stelle nicht.
Sicherheit CUPS Nach Einrichtung des Druckers ist der Zugang zum CUPS-Webinterface nicht mehr erforderlich. Aus Gründen der Sicherheit habe ich deshalb den Eintrag Listen localhost:631 wieder hergestellt.
Linux-Mail-Server Postfix installieren Standardmäßig installiert Debian den Mail-Server Exim. Ich mag dieses Programm nicht sonderlich und ersetze es deshalb durch Postfix. Das erledige ich vor der Installation von MySQL, weil sonst bei dessen Installation diverse exim-Pakete mit installiert würden. aptitude install postfix
Bei der Installation werden ein paar Fragen gestellt, die ich wie folgt beantwortet habe: Postfix Configuration
Allgemeine Art der Konfiguration
"Internet mit Smarthost"
Wie lautet der E-Mail-Name Ihres Systems?
Vorschlag mit ENTER bestätigt.
Ihr SMTP Relay-Server: Vorschlag mit ENTER bestätigt.
Die weitere Konfiguration erfolgt später, wenn es um die Konfiguration des Mail-Servers geht.
MySQL-Server installieren aptitude install mysql-server-5.0 mysql-client-5.0 /usr/bin/mysqladmin -u root password geheim DerMySQL-Server ist in der Standardkonfiguration nur von localhost erreichbar, also z.B. für lokale Webanwendungen.
Web-Server Apache2 mit PHP5 installieren
Installation Die Installation des Apache-Webservers und PHP5 erfolgt mit: aptitude install apache2-mpm-prefork libapache2-mod-php5 php-pear php5-mysql
DefaultCharset festlegen Damit z.B. Umlaute richtig dargestellt werden entferne ich in der Datei /etc/apache2/apache2.conf das Kommentarzeichen in Zeile 446: AddDefaultCharset ISO-8859-1
Server Side Includes aktivieren: Damit SSI funktioniert muß ich lediglich einen symbolischen Link setzen: cd /etc/apache2/mods-enabled
ln -s ../mods-available/include.load include.load
14
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Die Datei, die als SSI-Datei ausgeführt werden soll, also die index.shtml, muß ich das Recht als ausführbare Datei erhalten (chmod +x index.shtml). Damit die index.shtml auch als index-Datei ausgeführt wird, ergänze ich die Datei /etc/apache2/mods-available/dir.conf mit "index.shtml"
Eine Website anlegen: Zum Test lege ich die Website "testsite" an:
� Im DNS-Server muß ich für die Namensauflösung sorgen. Dafür bearbeite ich die Datei /etc/bind/db.renes und ergänze sie mit dem Eintrag: testsite A 192.168.0.10
� Die reverse-Namensauflösung erfolgt über die Datei /etc/bind/db.192.168.2, die ich um folgenden Eintrag erweitere: 105.2.168.192.in-addr.arpa. IN PTR testsite
� Damit die Änderungen wirksam werden mache ich ein Neustart des DNS-Servers
� Die Apache-Konfigurationsdatei /etc/apache2/sites-available/default ergänze ich am Ende der Datei mit dem folgenden Eintrag: <VirtualHost *>
DocumentRoot /var/www/testsite ServerName testsite </VirtualHost>
Für den Funktionstest reicht diese einfache Konfiguration aus.
� Jetzt erstelle ich das Verzeichnis /var/www/testsite : mkdir /var/www/testsite
Das geht noch einfacher mit dem MC.
� Im eben erstellten Verzeichnis erstelle ich zwei Test-Dateien: touch /var/www/testsite/index.html
touch /var/www/testsite/info.php
� In die Datei index.html kommt erst mal ein beliebiger Text. � Die Datei info.php fülle ich jetzt noch mit etwas Code:
<?php
phpinfo();
?>
� Damit die Dateien angezeigt werden können, muss ich noch die Dateirechte anpassen:
chmod 0644 /var/www/testsite/*
15
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Nach einem Neustart des Apache-Servers erfolgt mein Test, indem ich im Webbrowser meines PCs die Testsite aufrufe. Die index.html sollte automatisch angezeigt werden, nachdem in der Browseradressleiste "testsite" aufgerufen wurde. Mit testsite/info.php bekomme ich die PHP-Konfiguration zu sehen und damit die Bestätigung, daß PHP funktioniert.
Linux-Mail-Server Installieren und Konfigurieren Die Howtos folgender Quelle war mir sehr hilfreich: http://wiki.ubuntuusers.de/Postfix
Postfix konfigurieren In der Datei /etc/aliases stehen die Alias-Namen und deren Zuweisung: postmaster:renes
root:renes
Die Änderungen an dieser Datei werden wirksam, nachdem ich sie mit newaliases
in die Datenbank geschrieben habe und mit postfix reload
in Postfix neu eigelesen hat. Die Postfix-Konfigurationsdatei /etc/postfix/main.cf ändere ich, sodass folgendes drin steht: smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
# Authentifizierung beim ISP
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/smtp_auth
smtp_sasl_security_options = noanonymous
# Verschlüsselte Übertragung zum ISP:
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tsl_CApath=/etc/ssl/certs
myhostname = debian.renes.xx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debian.renes.xx, localhost.renes.xx, localhost, neotech.ch,
$mydomain
relayhost = Name_des_smtp-Servers_des_Providers
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
Mein Internet-Service-Provider verlangt eine Absenderauthentifizierung für das Versenden von Emails. Dafür ist SASL zuständig, das wie folgt installiert wird: aptitude install libsasl2-modules
Als nächstes lege ich die Datei /etc/postfix/sasl/smtp_auth an: touch /etc/postfix/sasl/smtp_auth
Der Dateiinhalt ist sinngemäß:
16
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
SMTP-Server Benutzername:Paßwort
z.B.:
mailout.example.com Benutzername:Geheim
Der Dateiinhalt muß jetzt noch in eine Datenbankdatei geschrieben werden. Das mache ich mit: postmap /etc/postfix/sasl/smtp_auth
Dadurch sollte die folgende Datei angelegt werden: /etc/postfix/sasl/smtp_auth.db Nach einem Neustart von Postfix (/etc/init.d/postfix restart) funktioniert der Emailversand.
Emails mit fetchmail abholen Die Installation erfolgt mit: aptitude install fetchmail
Die Konfigurationsdatei erzeuge ich mit: touch /etc/fetchmailrc
und editiere diese Datei wie folgt (POP3-Server, Benutzername und das Paßwort sind natürlich zu ersetzen.): set daemon 300
set syslog
poll POP3-Server with proto POP3 auth password
user "Benutzername" there with password "geheim" is andreas here options sslproto
'' fetchall
Wenn ich meine Emails über eine verschlüsselte Verbindung abholen will, vorausgesetzt, der Provider unterstützt das, sollte folgendes in der Konfigurationsdatei stehen: set daemon 300
set syslog
poll POP3-Server with proto POP3 auth password
user "Benutzername" there with password "geheim" is andreas here options ssl
fetchall
Damit fetchmail als Dienst arbeitet und automatisch beim Systemstart gestartet wird, muss ich die Datei /etc/default/fetchmail anpassen: START_DAEMON=yes
Mit /etc/init.d/fetchmail start sollte alles laufen.
SASL-Authentifizierung der smtp-Clients gegenüber Postfix Um ein offenes Relais zu vermeiden, also mein Postfix-Server Emails von jedem beliebigen Client Mails annimmt, benötige ich eine Absenderauthentifizierung. Die gewählte Methode "PAM" authentifiziert gegen die Benutzerdatenbank des Linux-Systems. Zuerst ist die Installation eines weiteren Pakets erforderlich: aptitude install sasl2-bin
Danach muss ich die Konfigurationsdatei /etc/default/saslauthd, wie folgt anpassen: START=yes
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Das unter Options genannte Verzeichnis muß auch existieren und lege ich deshalb an: mkdir -p /var/spool/postfix/var/run/saslauthd
17
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Ich habe noch folgende Datei erstellt: touch /etc/postfix/sasl/smtpd.conf
mit folgendem Inhalt: pwcheck_method: saslauthd
mech_list: plain login
Die Datei /etc/postfix/main.cf habe ich wie folgt angepaßt: smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
# Authentifizierung beim ISP
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/smtp_auth
smtp_sasl_security_options = noanonymous
# Verschlüsselte Übertragung zum ISP:
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tsl_CApath=/etc/ssl/certs
# Authentifizierung der smtp-Clients beim Postfix-Server
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
check_recipient_maps, reject_unauth_destination, permit_auth_destination
myhostname = debian.renes.xx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debian.renes.xx, localhost.renes.xx, localhost, neotech.ch,
$mydomain
relayhost = SMTP-Server beim ISP
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
sender_canonical_maps = hash:/etc/postfix/sender_canonical
home_mailbox = mails/
Nach einem /etc/init.d/saslauthd restart
/etc/init.d/postfix restart
funktioniert bei mir die sasl-Authentifizierung meines Mail-Clients gegenüber dem Postfix-Server.
IMAP-Server mit Dovecot Die Installation des Dovecot-IMAP-Servers mache ich mit folgendem Befehl: aptitude install dovecot-imapd
Danach finde ich die Konfigurationsdatei /etc/dovecot/dovecot.conf, die bei mir folgenden Inhalt bekam: base_dir = /var/run/dovecot/
18
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
protocols = imap imaps
listen = *
disable_plaintext_auth = yes
log_timestamp = "%Y-%m-%d %H:%M:%S "
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
login_dir = /var/run/dovecot/login
login_user = dovecot
mail_location = maildir:%h/mails
protocol imap {
}
auth default {
mechanisms = plain
passdb pam {
}
userdb passwd {
}
user = root
}
dict {
}
plugin {
}
Ich passe die Rechte an: chmod 0750 /var/run/dovecot
Dovecot starte ich neu mit /etc/init.d/dovecot restart.
TLS Verschlüsselung Bis jetzt habe ich eine verschlüsselte Verbindung zwischen IMAP-Clients und IMAP-Server Dovecot. Versende ich Emails vom SMTP-Client (z.B. einem Windows XP-PC) zum Debian-Postfix-Server, werden Benutzername und Kennwort unverschlüsselt übertragen. Das ändere ich jetzt. Ich begebe mich in das Verzeichnis /etc/ssl/private. Als nächstes erzeuge ich einen private Schlüssel smtpd.key: openssl genrsa -out smtpd.key 2048 Den CSR (Certificate Signing Request) erstellen: openssl req -new -key smtpd.key -out smtpd.csr Hierbei werde ich nach den Zertifizierungsinformationen gefragt, die ich alle, bis auf den "Common Name", ohne Eingabe mit Enter bestätigen kann. Der "Common Name" ist der FQDN des eigenen Postfix-Servers, bei mir debian.renes.xx. Jetzt erstelle ich das Zertifikat: openssl x509 -req -days 4312 -in smtpd.csr -out smtpd.crt -signkey smtpd.key
19
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Nun muss ich Postfix für die Verwendung von TLS konfigurieren. Die Datei /etc/postfix/main.cf habe ich wie folgt geändert: smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/private/smtpd.crt
smtpd_tls_key_file=/etc/ssl/private/smtpd.key
smtpd_use_tls = yes
smtpd_enforce_tls = no
smtpd_tls_auth_only = yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
# Authentifizierung beim ISP
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/smtp_auth
smtp_sasl_security_options = noanonymous
# Verschlüsselte Übertragung zum ISP:
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tsl_CApath=/etc/ssl/certs
# Authentifizierung der smtp-Clients beim Postfix-Server
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
check_recipient_maps, reject_unauth_destination, permit_auth_destination
myhostname = debian.renes.xx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debian.renes.xx, localhost.renes.xx, localhost, neotech.ch,
$mydomain
relayhost = SMTP-Server beim ISP
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
sender_canonical_maps = hash:/etc/postfix/sender_canonical
home_mailbox = mails/ Nach den Änderungen an den Konfigurationsdateien starte ich Postfix und fetchmail neu.
Virenscanner installieren Für mich kommt Antivir von Avira als Lösung in Frage. Eine gute Installationsanleitung finde ich wie fast immer im Forum: http://wiki.ubuntu-forum.de/index.php/AntiVir. Noch ein paar Links und Infos: Die Antivir-Unix-Workstation-Version ich hier herunter laden. Die Lizenzdatei für den privaten Gebrauch erhalte ich hier welche ich unbedingt zur Installation benötige.
20
Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze"
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Eine deutschsprachige Dokumentation gibt es auch im Downloadbereich für den Antivir-Server.
SSH-Server für die Remoteadministration installieren Für die Fernwartung des Servers installiere ich mir einen OpenSSH-Server. Tastatur und Maus sind damit nicht mehr notwendig, können aber bei Bedarf über USB angeschlossen werden. Die Installation erfolgt mit: aptitude install openssh-server Das war's schon. Ab sofort kann ich mich von Windows aus mit dem Programm "Putty" zum Server verbinden. Von meinem Linux-PC aus geht das mit Boardmitteln auf der Konsole: rlogin -l andreas debian
oder
ssh -l andreas debian Um die Sicherheit etwas zu erhöhen, habe ich noch die folgende Konfigurationsdatei bearbeitet: /etc/ssh/sshd_config Die Anmeldung mit dem User "root" ist ein generelles Risiko. Deshalb verbiete ich ihm den Fernzugriff und schränke die zugelassenen User auf "rene" ein. Ausserdem lasse nur eine gleichzeitige Verbindung zu: PertmitRootLogin no
AllowUsers andreas
MaxStartups 1 Das Programm "denyhosts" durchsucht in regelmässigen Abständen die Logdatei /var/log/auth.log um Einbruchsversuche aufzuspüren. Die so ermittelten Hosts trägt es in die Datei /etc/host.deny ein. Ich hab es bei den Standardeinstellungen belassen. Die Installation erfolgt mit: aptitude install denyhosts Für meinen Linux-Server, der nicht direkt am Internet angeschlossen ist, reichen diese Sicherheitsmaßnahmen aus. Hier noch etwas Literatur: http://wiki.ubuntuusers.de/SSH
Webmin installieren Administration über Web-Frontend. Die Installation ist auf der Webmin-Website gut beschrieben. Zuerst installiere ich den Sicherheits-Schlüssel: wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
Danach erweitere ich die Datei /etc/apt/sources.list mit folgender Zeile: deb http://download.webmin.com/download/repository sarge contrib Als Letztes gebe ich auf der Konsole folgendes ein: apt-get update
apt-get install webmin Der Aufruf von Webmin erfolgt im Webbrowser mit: https://debian:10000/
21
Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ?
Letztes Update: 26.April 2013
© René Künzi, www.neotech.ch
Die Datensicherung
Hardware Raid Lösung Da mein Server zwei HW Raid Controller hat habe ich die Datensicherung wie folgt gelöst.
� Arbeitsverzeichnis inkl. Daten auf dem Server. � Backup auf dem Storage 24 Festplatten mit Raid 6