Linux Server in Betrieb nehmen
Transcrição
Linux Server in Betrieb nehmen
2 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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 © René Künzi, www.neotech.ch 3 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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. © René Künzi, www.neotech.ch 4 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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: Diese Module laden: Schweizerdeutsch PC-Card-Dienste starten? <nein> Ich habe kein PCMCIA am Server Zu ladende Installationskomponenten: <weiter> Netzwerk automatisch mit DHCP einrichten? IP-Adresse: Ein Server sollte eine feste Adresse haben. Deshalb <nein> 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. <weiter> Basierend auf Ihrem Land ist die Zeitzone Europe/Berlin. Ist die Systemzeit auf UTC gesetzt? <weiter> <nein> Shadow Passwörter benutzen? <Ja> root das Anmelden erlauben? <Ja> Soll ein normales Benutzerkonto erstellt werden? Zu installierender Kernel: <nein> (Das mache ich später.) Protokoll für den Datei-Download: Die angebotene Auswahl ist meistens richtig und kann übernommen werden. <Ja> (Man sollte dafür eine DSL Flatrate haben!) 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.) <Ja> (Das ist Ansichtssache ;-)) Einen Netzwerkspiegel verwenden? >>Non-free<<-Software verwenden? An der Paketverwendungserfassung teilnehmen? Welche Software soll installiert werden? Den GRUB-Bootloader in den Master Boot Record installieren? GRUB-Passwort: © René Künzi, www.neotech.ch <Ja> (Auch das ist Ansichtssache.) Alle Sternchen mit der Leertaste entfernen außer "Standardsystem" dann <weiter> <Ja> leer lassen 5 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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 © René Künzi, www.neotech.ch 6 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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. © René Künzi, www.neotech.ch 7 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 $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; © René Künzi, www.neotech.ch 8 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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ß, /etc/dhcp3/dhcpd.conf an. Sie hat bei mir folgendes Aussehen: © René Künzi, www.neotech.ch passe ich auch die Datei 9 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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: © René Künzi, www.neotech.ch 10 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 (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 © René Künzi, www.neotech.ch 11 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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. © René Künzi, www.neotech.ch 12 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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). © René Künzi, www.neotech.ch 13 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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 /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 © René Künzi, www.neotech.ch ich in der Datei 14 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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 /etc/apache2/mods-available/dir.conf mit "index.shtml" wird, ergänze ich die Datei 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/* © René Künzi, www.neotech.ch 15 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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, $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 localhost, neotech.ch, 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äß: © René Künzi, www.neotech.ch 16 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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 © René Künzi, www.neotech.ch 17 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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, $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/ localhost, neotech.ch, 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/ © René Künzi, www.neotech.ch 18 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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 © René Künzi, www.neotech.ch 19 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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. © René Künzi, www.neotech.ch 20 Wie installiere ich ein Linux Server mit Debian GNU/Linux 6.0 "squeeze" Letztes Update: 26.April 2013 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/ © René Künzi, www.neotech.ch 21 Wie installiere ich ein Linux Server mit Debian GNU/Linux 7.0 "Wheezy" ? Letztes Update: 26.April 2013 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 © René Künzi, www.neotech.ch