Howto: Debian LAMP Server für zu Hause einrichten

Hier werden Probleme diskutiert und Fragen beantwortet. Hier kommt alles rein was mit Linux zu tun hat.
Antworten
C_T

Howto: Debian LAMP Server für zu Hause einrichten

Beitrag von C_T »

Viele, die gerne eine Websoftware ausprobieren oder ändern möchten stehen vor dem Problem, dass sie keinen gescheiten Webspeicherplatz zur Verfügung haben.

Es gibt zwar Anbieter, die soetwas billig zur Verfügung stellen, aber oft möchte man auch nicht, dass die eigene Programmiertätigkeit weltweit sichtbar ist.

Hier kommt nun eine Howto, wie man als Linux-Laie einen evtl. herumstehenden alten PC in einen WebServer für zu Hause verwandelt, um dort seine Webprojekte in Ruhe zu installieren, zu bearbeiten und zu testen.

Wer will, kann diesen Server auch für andere weltweit über sogenannte dynamische DNS-Dienste erreichbar machen - das wird alles erklärt.

Technische Voraussetzungen:

Man sollte natürlich einen alten PC mit einem CDrom-Laufwerk besitzen, der in der Lage ist, vom CDRom zu booten (es tut natürlich auch ein neuer :D ) - bei mir werkelt nun ein Fujitsu Siemens Scenic Edition X102 aus der elektronischen Bucht für 20 Euro, der mit 512 MB Arbeitsspeicher, 40 GB Festplatte und einer Netzwerkkarte ausgestattet ist.

Es tut allerdings auch ein alter 486er PC mit Netzwerkkarte, CDrom und Festplatte.

Bei den meisten Menschen ist sowieso ein Netzwerk-Router (egal ob mit oder ohne Wlan) vorhanden, der den Internetzugang der angeschlossenen Pcs / Laptops (egal ob mit Netzwerkkabel oder WLan) über einen DHCP-Server regelt - den brauchen wir auch für die Installation. Dann sollten wir natürlich noch wissen, wie unser Router unser bestehendes Netzwerk konfiguriert hat. Wir loggen uns in den Router ein und notieren uns die LAN-Einstellungen (ich verwende in meiner Howto die bei mir vorhandenen Daten):

Code: Alles auswählen

TCP/IP
Standard-Gateway-IP-Adresse: 192.168.0.1
IP-Subnet-Maske: 255.255.255.0

DHCP 

IP-Adressvergabe über DHCP
Start-IP-Adressfolge der Clients : 192.168.1.10
Grösste Adressfolge der Clients: 230 (es sind also IP-Adressen für die im Netzwerk angeschlossenen Rechner von 192.168.1.10 bis 192.168.1.240 möglich)
erster DNS-Server: 0.0.0.0
zweiter DNS-Server: 0.0.0.0
Zunächst schliessen wir den alten PC mit Maus, Tastatur und Monitor und Netzwerkkabel an den Router an und bereiten ihn für seine neue Aufgabe vor, indem wir in das Bios gehen und dort unter "Boot Optionen" die Funktion "Post Errors" auf "No Halt on any Errors" setzen. Das verhindert nämlich, das der PC später nicht hochfährt, wenn wir ihn ohne Maus, Tatstatur und Monitor hochfahren wollen. Denn eine Maus, Tastatur und einen Monitor wollen wir später gar nicht daran betreiben, weil wir das nicht mehr brauchen.

Mit unserem heimischen Windows-PC surfen wir nun im Internet zu

http://www.debian.org/CD/netinst/

und laden uns dort das passende iso-image der Netz-installations-CD herunter. Davon brennen wir uns eine CD.

Auch laden wir uns das Programm "Putty" für unseren Windows-PC aus dem Internet herunter (google-Suche nach "putty") - das brauchen wir, um uns später (nach der Linux-Installation) vom Windows-PC aus auf dem Linux-Server als User root anzumelden, um diesen fernsteuern zu können.

Unsere neu gebrannte Debian-Linux-Netinstall-CD legen wir nun in das CDrom-Laufwerk unseres demnächst als Server fungierenden PCs und schalten diesen ein.

Kurze zeit später meldet sich der Debian Linux - Installer in perfektem Englisch - da wir mit diesem gerne in Deutsch kommunizieren möchten, wählen wir mit den Pfeiltasten die Funktion "Advanced Options" aus und drücken die Enter-Taste.

(Hinweis: Es gibt sicher noch andere Möglichkeiten, Linux die deutsche Sprache beizubringen, nämlich über die Konsole nach der Installation. Ich wähle aber absichtlich die folgende Installationsart, um es einigermaßen "Idiotensicher" zu machen, da nicht jeder hier ein "Linux-Experte" ist.)

In dem nun angezeigten Menü wählen wir wieder mit den Pfeiltasten "Alternative desktop environments" aus und drücken "Enter".

In dem nun folgenden Menü wählen wir "KDE" aus und drücken "Enter"

(KDE ist eine Desktop-Umgebung - Linux arbeitet damit so, wie Ihr es von einem Windows-PC gewohnt seit.)

Nun erscheint ein Menü, in dem "Install" bereits markiert ist - wir drücken "Enter", das CDrom beginnt Geräusche zu machen und wir bekommen ein Menü angezeigt, in dem wir mit den Pfeiltasten Sprachen auswählen können. Wir wählen dort "German - Deutsch" aus und drücken "Enter"

Nun fragt uns Linux in Deutsch nach unserem Land oder Gebiet, dort wählen wir "Deutschland" aus, ebenso im Folgemenü für die Tastaturbelegung.

Nach Druck auf die "Enter-Taste" beginnt Linux mit der Hardwareerkennung und meldet sich nach der Netzwerkerkennung mit der Frage nach dem Rechnernamen (Linux ist nun bereits mit dem Internet verbunden, nur so als Info!):

Dort können wir irgend einen Namen für unseren Rechner vergeben, welchen wir nehmen, bleibt uns selbst überlassen, da wir den später eh wieder ändern können. wir nehmen einfach "Linux"

Mit der Tabulatortaste können wir übrigens zwischen den Schaltflächen hin- und her springen, so als Info.

Wir drücken Enter, um den Namen zu übernehmen, und werden dann nach einem Domainnamen gefragt.

Um später unser "Normales" Netz nicht zu stören, wählen wir hier den Domainnamen "lan"

Ein Druck auf Enter startet die Hardwareerkennung, welche in der Festplattenpartitionierung endet:

Anfänger wählen hier das Voreingestellte " geführt - verwende vollständige Festplatte" und bestätigen mit "Enter"

Dann wird die zu partitionierende Festplatte angezeigt, welche wir (da wir nur eine haben) auswählen und mit "Enter" bestätigen.

Wir kommen zu einem Bildschirm, der uns die Partitionierungsdaten anzeigt, erst wenn wir mit "Enter" bestätigen, beginnt Linux die Änderungen an der Festplatte vorzunehmen.

Nachdem wir mit Enter bestätigt haben beginnt Linux, die Festplattenkonfiguration zu schreiben und ein Grundsystem vorzubereiten.

Achtung: Ab hier bitte alles genau so aufschreiben, wie ihr es eingebt!!!!

Dann werden wir nach einem "root-Passwort" gefragt, welches wir uns selbst ausdenken und dann eingeben. Beachtet bitte, dass Linux die GrossKleinschreibung unterscheidet, und dass ihr Euch dieses Passwort irgendwo aufschreibt - denn ohne dieses Passwort macht ihr später nichts mehr an dem Linux-Rechner!!!

Linux fragt das Passwort noch ein mal ab, ihr müsst das also 2 mal eingeben.

Dann fragt Linux nach einem Benutzernamen - dort könnt ihr z.B. Euren Vornamen eingeben und mit Enter bestätigen.

Linux fragt nun nach einem Passwort für diesen Benutzer, wählt eines und schreibt es euch auf, gebt es ein und bestätigt mit Enter!!!

Linux fragt auch das Passwort noch ein mal ab, ihr müsst das also 2 mal eingeben.

Nach Eingabe der Passwörter, Benutzer, Benutzerpasswörter jeweils mit Enter bestätigen.

Linux verbindet sich dann mit den Spiegelservern und fragt uns, welchen wir verwenden möchten? Wir suchen uns einen Server aus, der sich in unserer Nähe befindet (irgendeiner der Universitätsserver ist immer eine gute Wahl) , und drücken "Enter"

Nach einigen Meldungen fragt Linux, was wir sonst noch alles installieren möchten? Das lassen wir aber alles so wie voreingestellt, und bestätigen nur mit "Enter"

Linux wird melden, dass es noch achthundertundsoundsoviel Dateien aus dem Internet laden muss und 30 bis 40 Minuten dazu braucht (je nachdem wie schnell die Internetverbindung ist.

Nach Ablauf dieser Lade- und Installationszeit meldet sich Linux mit "Installation fertig" und wirft die CD-Rom aus, welche wir dann aus dem Laufwerk rausnehmen und das mit Enter bestätigen. Nun startet Linux neu von der Festplatte und meldet sich mit einem Login-Bildschirm.

Wir haben nun ein grafisches Grundsystem installiert und können uns dort nun einloggen.

Aus Sicherheitsgründen ist es jedoch nicht möglich, sich als User root dort einzuloggen - wir geben also den vergebenen Benutzernamen (Vornamen?) und das zugehörige Passwort genau in der zuvor eingegebenen Schreibweise ein und bestätigen mit "Enter"

Linux startet nun die Desktopoberfläche "KDE" und wir staunen über unsere bisherige Arbeit.

Bis zu diesem Punkt ist eine Debian-Linux-Netz-Installation übrigens immer gleich - wenn wir zuvor noch andere Pakete/Funktionen ausgewählt haben, installiert die Debian-Paketverwaltung diese mit. Richtig - Programminstallationsdateien heissen unter Linux "Pakete".

Wir haben unser Grundsystem installiert, aber es fehlen natürlich noch einige Dinge, die wir benötigen, um das Grundsystem in einen vollwertigen Webserver zu verwandeln.

Nachdem wir uns als unser Benutzer eingeloggt haben, sehen wir unten die Taskleiste und links ein Symbol "Zahnrad mit nem K dran" - dieses Symbol ist das gleiche wie bei einem Windows-Rechner der "Start"-Button - heisst nur anders, hat aber dieselben Funktionen.

Ein Klick auf dieses "K-Symbol" öffnet ein Fenster mit Auswahlmöglichkeiten, dort wählen wir "System" und im Folgefenster "Konsole - Terminalprogramm" aus. Es öffnet sich ein Fenster, welches sich "Euer Benutzername@Linux:~ - Befehlsfenster Konsole nennt und in dem

Code: Alles auswählen

christian@Linux:~$ 
erscheint.

Linux arbeitet hier mit einer Konsole, in die ihr direkt Linux-Befehle eingeben könnt.

Allerdings seit Ihr nun als Benutzer (in meinem Beispiel als "christian") angemeldet - nicht als Systemadministrator - und habt nur eingeschränkte Rechte auf dem System.

Euch fehlt z.B. das Recht, Pakete (Programme) zu installieren, was nur der Benutzer "root" darf.

Um das (temporär) zu ändern, gebt ihr in die Konsole folgendes nach dem Prompt ( christian@Linux:~$ )ein:

Code: Alles auswählen

christian@Linux:~$ su  
Mit der Return (Enter) - Taste bestätigen - es erscheint Folgendes:

Code: Alles auswählen

christian@Linux:~$ su  
Passwort: 
Nun tippt Ihr Euer rootpasswort ein - so wie zuvor bei der Installation aufgeschrieben - und bestätigt mit Return. Es ist übrigens richtig, dass bei der Eingabe nichts angezeigt wird - auch keine ***!

Eure Konsole zeigt Euch nun

Code: Alles auswählen

christian@Linux:~$ su  
Passwort:
Linux: /home/christian# 
an - ihr seit nun User "root" und im Homeverzeichnis von Christian - und habt alle Rechte auf dem System - auch das Recht, falsche Befehle einzugeben und dadurch das System zu beschädigen, denn User Root ist für Linux wie Gott - er kann und darf alles, Linux warnt User Root meistens auch nicht vor falschen Eingaben, sondern akzeptiert alles wie es kommt, funktioniert anschliessend aber nicht mehr richtig.

In unsere Konsole geben wir nun erst mal folgendes nach "Linux: /home/christian# " ein und bestätigen mit Return:

Code: Alles auswählen

christian@Linux:~$ su  
Passwort:
Linux: /home/christian# apt-get update
Linux führt nun ein Update der Paketverwaltung durch. Durch Eingabe von "apt-get upgrade"

Code: Alles auswählen

christian@Linux:~$ su  
Passwort:
Linux: /home/christian# apt-get upgrade
und Bestätigung mit "Return" prüft Linux, ob alle Pakete (Programme) auf aktuellem Stand sind und aktualisiert diese gegebenenfalls.

Nun müssen wir noch ein paar Programme zusätzlich installieren, um mit dem Linux-rechner ferngesteuert von unserem Windows-PC über das Programm "Putty" arbeiten zu können, nämlich den ssh-Dienst und das Programm Midnight Commander, mit dem wir uns einfach im Linuxrechner bewegen können:

Wir geben ein:

Code: Alles auswählen

Linux: /home/christian# apt-get install mc ssh
und bestätigen mit Return.

Linux installiert nun die zuvor abgewählten Pakete (Programme) ssh und mc.

Nun stellen wir noch kurz fest, welche IP-Adresse unser Linux-Rechner von unserem Router erhalten hat und merken uns diese. Wir geben ein:

Code: Alles auswählen

christian@Linux:~$ su  
Linux: /home/christian# ifconfig
und bestätigen mit Return.

Die Anzeige lautet dann etwa:

Code: Alles auswählen

christian@Linux:~$ su  
Linux: /home/christian# ifconfig
eth0  Link encap: Ethernet  Hardware Adresse xx:xx:xx:xx:xx:xx
      inet Adresse: 192.168.0.11
      ...
      ...
Wir merken uns die Hardware- und die inet Adresse!

Nun können wir die Konsole schliessen (das geht wie bei Windows mit dem X rechts oben) und über Klick auf das K-Symbol - Abmelden - Rechner ausschalten den rechner herunterfahren.

Nachdem der Rechner heruntergefahren ist und abgeschaltet hat, ziehen wir Monitor, Tastatur, und Maus heraus und stellen den Rechner weg - nur Netzkabel und Netzwerkkabel zum Router verbleiben an unserem neuen Server.

Denn wir beginnen nun damit, den Rechner von unserem Windows-PC aus ferngesteuert weiter zu installieren und zu verwalten, was dem gleichen Aufwand / Vorgehen entspricht, als wenn Ihr einen Rootserver bei einem Hostingprovider angemietet habt - dort könnt ihr auch nicht direkt an den Server dran und müsst alles über ssh bzw. Putty installieren.
C_T

Teil 2

Beitrag von C_T »

Wir haben nun unseren neuen Linux-Rechner irgendwo in der Ecke stehen - ausser dem einen Netzwerkkabel zu unserem Netzwerkrouter oder -Hub/Switch und dem Netzkabel befinden sich keinerlei weitere Verbindungen an unserem Linux-Rechner.

Wir schalten den Linux-Rechner nun wieder ein und merken an der Festplatten-LED, dass er selbsttätig hochfährt, was je nach dem wie schnell unser verwendeter Alt-PC ist, ca. 1 bis 2 Minuten dauert.

Nun gehen wir an unseren Windows-PC, und Laden folgende Datei von der PuTTY Download Page und speichern sie auf unserem Windows System, z.B. auf dem Desktop:

http://the.earth.li/~sgtatham/putty/lat ... /putty.exe

Durch Doppelklick auf Putty.exe starten wir Putty:

Bild

und geben in das rot umrandete Feld die IP-Adresse unseres Linux-Rechners "192.168.0.11" ein:

Bild

Nun klicken wir auf die Schaltfläche "OPEN" und sehen folgendes:

Bild

Hier können wir getrost auf "Ja" klicken. Denn wenn man sich zum ersten Mal mit dem Server verbindet, erscheint eine Sicherheitswarnung. Das passiert, weil PUTTY den HostKey des Servers noch nicht kennt. Es ist also sicher auf Ja zu klicken (wenn das später noch mal passiert, kann es bedeuten, dass ein anderer Server gerade unter der gleichen IP Adresse läuft, oder dass jemand in den Server eingebrochen ist und den Key geändert hat.)

Nach Klick auf "Ja" kommen wir zu folgendem Bild:

Bild

Dort geben wir dann ein "root" und drücken die Enter-Taste

Bild

Nun geben wir unser Root-Passwort ein, drücken die Enter-Taste und erhalten folgendes Bild:

Bild

Wir sind nun mit unserem Linux-Server verbunden und können weiter administrieren und installieren.

Um zu diesem Bild zu gelangen ist es natürlich wichtig, die IP-Adresse unseres Linux-Servers zu kennen und den Router wie auch den Server so zu konfigurieren, dass er bei jedem einschalten dieselbe IP-Adresse vom Router erhält.

Wir müssen nun dem Linux-Rechner beibringen, dass er eine feste und immer dieselbe IP-Adresse hat.

Auch möchten wir später einen Nameserver auf dem Linux-Server betreiben, damit wir unseren Projekten einen Domainnamen wie zum Beispiel "Linux.lan" geben und diesen im Browser aufrufen können. Auch möchten wir, dass unser Linux-Server später über 2 verschiedene IP-Adressen im Netzwerk erreichbar ist

Dazu geben wir in das Putty-Fenster den Befehl "mc" ein und bestätigen mit Return, um den Midnight Commander zu starten, welcher dem früheren Norton Commander ähnelt, was unter MS-Dos ein weit verbreitetes Dateiverwaltungstool war.

Unser Bildschirm sieht nun so aus:

Bild

Man kann das Fenster übrigens auch vergrössern, und man kann auch mit der Maus die wichtigsten Funktionen durch Doppelklick auswählen - wie in Windows gewohnt.

Wir wechseln durch Doppelklick auf "überverzeichnis", dann auf /etc und dort auf /network in den Ordner /network. Wenn wir übrigens die Ordner oder Dateien in MC nicht sehen können, helfen die Pfeiltasten beim navigieren.

Zuvor müssen wir aber noch den MC Midnight Commander einstellen, indem wir mit der Maus auf Optionen -> Konfiguration und dort dann auf "internen Editor benutzen" klicken, sodass zwischen den Klammern ein "X" erscheint, und dann auf OK klicken.

Sind wir im Ordner /network angegommen, finden wir dort eine Datei namens "interfaces" - welche wir mit der Maus ein mal anklicken zum Markieren, und dann mit Klick auf "Bearbeiten" öffnen.

Nun öffnet sich der Editor - und wir ersetzen den kompletten Dateiinhalt durch Folgendes

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
    address 127.0.0.1
    netmask 255.0.0.0
    allow-hotplug eth0


# The primary network interface

auto eth0 eth0:1
iface eth0 inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.1


iface eth0:1 inet static
address 192.168.0.200 
netmask 255.255.255.0

Mit dieser Änderung erreichen wir, dass die Netzwerkkarte mit dem Namen eth0 die fest konfigurierte IP-Adresse 192.168.0.11 hat, mit dem unter iface eth0:1 eingetragenen bekommen wir eine 2. Netzwerkkarte mit der IP-Adresse 192.168.0.200 unter Linux zugewiesen.

Bitte keine Tippfehler einbauen - ein Punkt oder Komma zuviel und das Netzwerk geht nicht mehr. Datei speichern durch Klick auf Speichern.

Über Klick auf Beenden oder die Taste F10 beenden wir den Midnight Commander MC, und müssen nun unsere Änderungen anwenden - also das Netzwerk neu starten:

Wir geben in Putty auf der Befehlszeile ein:

Code: Alles auswählen

Linux: /home/christian# /etc/init.d/networking restart
und bestätigen mit Enter den Befehl.

Folgendes wird dann ausgegeben:

Bild

Wir geben nun in unser Befehlsfenster den Befeht "ifconfig" ein, um die MAc-Adresse unserer Netzwerkkarte im Linux-Server herauszubekommen.

Wir erhalten als Ausgabe von ifconfig:

Code: Alles auswählen

Linux:~# ifconfig

eth0      Link encap:Ethernet  Hardware Adresse 00:30:05:88:8b:d8

          inet Adresse:192.168.0.11  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::230:5ff:fe88:8bd8/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:3043 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2347 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:411955 (402.2 KiB)  TX bytes:743372 (725.9 KiB)
          Interrupt:19 Basisadresse:0x1800

eth0:1    Link encap:Ethernet  Hardware Adresse 00:30:05:88:8b:d8

          inet Adresse:192.168.0.200  Bcast:192.168.0.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          Interrupt:19 Basisadresse:0x1800

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:62 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:6144 (6.0 KiB)  TX bytes:6144 (6.0 KiB)

Linux:~#

Uns interessiert nun die Hardware Adresse 00:30:05:88:8b:d8 (die wird bei Euch garantiert anders lauten, aber gleich aussehen - zahlen/Buchstabenkombi getrennt mit Doppelpunkt, 6 Gruppen!)

Nun öffnen wir einen Browser und gehen in die Verwaltungsfunktion unseres Netzwerkrouters / Wlan-Routers - wie das geht, solltet Ihr noch von der Einrichtung dieses Teils wissen oder in der Bedienungsanleitung Eures Routers nachsehen.

Dort müssen wir nun das sogenannte statische DHCP einrichten, um zu gewährleisten, dass unser Linux-Server auch tatsächlich immer dieselbe Haupt-IP-Adresse nach dem Einschalten bekommt.

In der Funktion "statisches DHCP einrichten tragen wir nun ein, dass die Hardware Adresse "00:30:05:88:8b:d8" immer die IP-Adresse "192.168.0.11" erhalten soll.

Wie das genau geht, müsst ihr aber in der Bedienungsanleitung Eures Routers nachschlagen, da es eine Vielzahl Router gibt, die alle unterschiedliche Masken haben.

Bild

Wenn ihr die ganzen Einstellungen nun korrekt gespeichert habt werdet ihr feststellen, dass nach jedem neu-Booten/Einschalten Eures Linux-Servers oder Netzwerkrouters der Linux-Server immer unter der selben Netzwerk-IP-Adresse 192.168.0.11 mit Putty zu erreichen ist.

Wenn Ihr nun mit Putty versucht, den Linux-Server unter 192.168.0.200 zu erreichen, wird dasselbe geschehen wie beim ersten Verbinden mit dem Linuxserver unter Putty beschrieben - aber ihr werdet den Linux-Server auch unter der Ip-Adresse 192.168.0.200 erreichen und euch einloggen können.

Unser Linux-Rechner läuft nun und ist unter seinen IP-Adressen von Windows aus erreichbar.

Das können (und sollten) wir von Windows aus prüfen, indem wir auf Start -> Ausführen klicken und dort cmd eingeben und mit Return bestätigen.

CMD ist nämlich der Kommandozeileninterpreter in Windows - also fast das selbe wie unsere Konsole in Linux.

Dort geben wir den Befehl "ping 192.168.0.11" ein und bestätigen mit return - die Ausgabe lautet:

Code: Alles auswählen

Win  XP [Version 5.1.2690]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\Christian>ping 192.168.0.11

Ping wird ausgeführt für 192.168.0.11 mit 32 Bytes Daten:

Antwort von 192.168.0.11: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.0.11: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.0.11: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.0.11: Bytes=32 Zeit<1ms TTL=64

Ping-Statistik für 192.168.0.11:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

C:\Dokumente und Einstellungen\Christian>

Das gleiche geht auch mit der Ip-Adresse 192.168.0.200

Code: Alles auswählen

Win  XP [Version 5.1.2690]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\Christian>ping 192.168.0.200

Ping wird ausgeführt für 192.168.0.200 mit 32 Bytes Daten:

Antwort von 192.168.0.200: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.0.200: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.0.200: Bytes=32 Zeit<1ms TTL=64
Antwort von 192.168.0.200: Bytes=32 Zeit<1ms TTL=64

Ping-Statistik für 192.168.0.200:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

C:\Dokumente und Einstellungen\Christian>

Fein! Aber unser Linux-Rechner kann noch keine Domainnamen auflösen, keine Webseiten anzeigen, kein PHP, kein Mysql, und kann auch sonst noch nicht viel ausser Lüfterlärm machen und Strom verbrauchen.

Aber wir sind geduldige Admins und bringen dem Linux-Rechner nun Schritt für Schritt bei, dass er nun ein Server werden und genau das tun soll, was wir von ihm erwarten.

Wir öffnen wieder unser Programm Putty, und loggen uns als

Benutzer: root
Passwort: unser Rootpasswort genau in unserer Schreibweise

ein.

Wir erhalten wieder unseren vorherigen Bildschirm in Putty, in dem

Bild

steht.

Da ich nun keine Fotos mehr schiessen werde, gebe ich nun nur noch die einzugebenden Befehle an - [Return] bedeutet, dass dort nun die Return-Taste zu drücken ist:

Eingabe in Putty:

mc [Return] startet den Midnight Commander.

Wir gehen nun mit der Maus wieder auf das "Übervz"-Überverzeichnis und dann in den Ordner /etc. Dort finden wir den Ordner /apt , in den wr mit Doppelklick darauf wechseln.

Wir klicken auf die Datei sources.list und öffnen diese mit Taste F4 oder Klick auf "Bearbeiten.

In der Datei steht:

Code: Alles auswählen

# 
# deb cdrom:[Debian GNU/Linux 5.0.2 _Lenny_ - Official i386 NETINST Binary-1 20090629-11:06]/ lenny main

#deb cdrom:[Debian GNU/Linux 5.0.2 _Lenny_ - Official i386 NETINST Binary-1 20090629-11:06]/ lenny main

deb http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main
deb-src http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

was wir in folgendes ändern:

Code: Alles auswählen

# 
# deb cdrom:[Debian GNU/Linux 5.0.2 _Lenny_ - Official i386 NETINST Binary-1 20090629-11:06]/ lenny main

#deb cdrom:[Debian GNU/Linux 5.0.2 _Lenny_ - Official i386 NETINST Binary-1 20090629-11:06]/ lenny main

deb http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main
deb-src http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main
deb http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main non-free contrib
deb-src http://ftp.tu-chemnitz.de/pub/linux/debian/debian/ lenny main non-free contrib

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

deb http://ftp.de.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.de.debian.org/debian/ lenny main contrib non-free

Datei abspeichern und den Midnight Commander verlassen.

Eingabe in Putty:

apt-get update [Return]

Eine etwaige Fehlermeldung nach apt-get update können wir ignorieren, oder wir rufen apt-get update noch einmal auf.

Danach eingabe in Putty:

apt-get dist-upgrade [Return]
C_T

Teil 3

Beitrag von C_T »

Es findet ein Upgrade der bisher installierten Software und des Paketmanagers statt - das sollte man übrigens regelmässig machen, da Linux-Pakete doch recht häufig upgedatet werden - z.B. wenn irgendwo ein Fehler entdeckt wurde.

Nun geht es ans eingemachte, wir installieren ein bischen Software und Module:

Code: Alles auswählen

apt-get install apache2-mpm-worker apache2 apache2.2-common apache2-suexec apache2-utils awstats bash bind9 bzip2 chkrootkit courier-authdaemon courier-base courier-imap courier-maildrop courier-pop diff dnsutils gcc gzip iptables ispell libapache2-mod-fastcgi libapache2-mod-fcgid libberkeleydb-perl libc6-dev libcrypt-blowfish-perl libcrypt-cbc-perl libcrypt-passwdmd5-perl libdate-calc-perl libdate-manip-perl libdbd-mysql-perl libdbi-perl libfile-mimeinfo-perl libio-stringy-perl libmail-sendmail-perl libmailtools-perl libmcrypt4 libmd5-perl libmime-perl libnet-dns-perl libnet-libidn-perl libnet-netmask-perl libnet-smtp-server-perl libperl5.10 libsasl2-2 libsasl2-modules libsnmp-session-perl libterm-readkey-perl libterm-readpassword-perl libhtml-parser-perl libtimedate-perl libmysqlclient15off locales lsb-base lsb-release lynx lzma make mysql-client mysql-common mysql-server ntp ntpdate original-awk patch perl perl-base perl-modules php-pear php5 php5-adodb php5-cgi php5-cli php5-gd php5-mcrypt php5-mhash php5-mysql policyd-weight postfix postgrey procmail proftpd rkhunter sasl2-bin ssh tar unzip wget zip    [Return] 
Bitte alles vorstehende als eine Zeile eingeben!

Pakete, die schon installiert sind, wird apt-get als solche anzeigen; Fehlende Pakete wird er mit der Frage, ob sie tatsächlich installiert werden sollen, beantworten. Da geben wir dann J oder Y gefolgt von [Return] ein.

Dann kommen noch folgende Fragen und Antworten während der Installation auf uns zu:

Informationen zur Paket-Installation:

1. MySQL-Root Passwort setzen (und notieren!) @ oder $ oder % nicht im MySQL-Root Passwort benutzen!!!

2. x11-common mit OK bestätigen

3. Postfix Konfiguration erst mit OK weiter, dann wählen wir „Internet Site“ und geben als SystemMailName unsere Domain z.b. Linux.lan ein, bei „Root and postmaster mail recipient“ geben wir root an. Der folgende Dialog kann einfach mit OK bestätigt werden.

4. Die folgenden 2 Fragen immer mit dem jeweiligen Standardwert bestätigen.

5. Wähle bei der „Locals to be generated“ All locals und wähle als default local deine bevorzugte Sprache aus. (kann sein dass die Frage nicht kommt, da wir die Locales schon bei der Linuxinstallation gesetzt haben auf Deutsch)

6. Die folgenden 2 Fragen immer mit dem jeweiligen Standardwert bestätigen.

7. Bei der „Proftpd Configuration“ wählen wir „Standalone“ als Type.

8. Die folgenden Fragen alle mit den vorgegebenen Standardwerten bestätigen.

Nachdem all diese Pakete installiert sind, geben wir mal aus Spass in unseren Windows-Webbrowser ein:

http://192.168.0.11 [Return] - es sollte nun eine Webseite in weiss angezeigt werden, in der steht :

It works!

Also, unser Webserver (apache 2) tut es schon mal.


Nun kennen die Meisten ja Webverwaltungstools wie z.B. Confixx oder die Verwaltungsoberflächen von anderen Großhostern. Diese Verwaltungsprogramme haben alle den Nachteil, daß sie Lizenzpflichtig und daher für unseren Heim-Linux-Server nicht so prächtig geeignet sind.

Doch da wir auf den Komfort nicht verzichten wollen, installieren wir uns ein ähnliches Tool, welches OpenSource und kostenlos ist - nämlich ispcp-omega .

1.) Wir geben in die Befehlszeile folgende Befehle ein

Code: Alles auswählen

 mkdir -p /usr/local/src/ispcp     [Return] 
 
 cd /usr/local/src/ispcp    [Return] 
 
 wget http://mesh.dl.sourceforge.net/sourceforge/ispcp/ispcp-omega-1.0.5.tar.bz2     [Return] 
 
 tar -xjvf ispcp-omega-1.0.5.tar.bz2     [Return] 
2. Wir wechseln in das entpackte Verzeichnis

Code: Alles auswählen

  cd ispcp-omega-1.0.5     [Return] 
3. Kompillieren/Vorbereiten des Systems für die Installation von ispcp-omega

Code: Alles auswählen

 make install    [Return] 

4. Die erstellten Verzeichnisse ins System kopieren

Code: Alles auswählen

 cp -Rv /tmp/ispcp/* /      [Return] 
 
5. MySQL Server einrichten

HINWEIS: Hier brauchen wir das Mysql-Rootpasswort, das wir zuvor erstellt und aufgeschrieben haben!

Code: Alles auswählen

 
 mysql_secure_installation     [Return] 
 


6. Einrichten des System

In das Setup Verzeichnis wechseln:

Code: Alles auswählen

  
 cd /var/www/ispcp/engine/setup     [Return] 


Setup aufrufen:

Code: Alles auswählen

   
 perl ./ispcp-setup    [Return] 


Alle Fragen sollten selbsterklärend sein. Alle Benutzernamen / Passwörter, die man zusätzlich vergibt, sollte man sich aufschreiben!

7. Temporäre Verzeichnisse bereinigen

Code: Alles auswählen

 
 rm -fR /tmp/ispcp     [Return] 


Nun kann man sich unter http://192.168.0.11 in das Admin-Panel von ispcp-omega einloggen und das System einrichten. Doch zunächst erst mal die deutsche Sprachdatei runterladen http://www.isp-control.net/ispcp/wiki/translations und via ispCP-AdminPanel installieren.

Dann Reseller und Kunden anlegen - die Kunden werden dann Eure Testaccounts mit den Domainnamen.lan .

Der Server ist nun fast fertig zur Verwendung und besitzt:

Debian Lenny Betriebssystem
Apache 2 Webserver mit Zend Engine v2.2.0 und Suhosin Patch 0.9.6.2
PHP Version 5.2.6-1
Mysql 5.0.51a
GD support
Bind9 - Nameserver
Postfix-Mailserver

Den Bind9 - Nameserver müssen wir aber noch ein wenig konfigurieren - denn wir wollen ja später aus unserem eigenen Netz über http://www.meineeigenedomain.lan auf unsere Webseiten zugreifen können.

Ein Nameserver sorgt dafür, dass wir uns nicht die IP-Adressen merken müssen, sondern Domainnamen wie z.B. http://www.diesteckdose.net eingeben können und dann mit dem entsprechenden Webserver verbunden werden.

Dazu müssen wir den Bind9 - Nameserver auf unsererm Linux-Server zu Hause konfigurieren - denn wir wollen ja aus unserem eigenen Netz über http://www.meineeigenedomain.lan auf unsere Heim-Webseiten zugreifen können.

Es ist damit sogar möglich, Benutzer, die an unserem Heimnetz angeschlossen sind, auf ganz andere Webseiten umzuleiten - zum Beispiel unsere Kinder, für die wir eine Domain sex.com einrichten können, und die dann bei Aufruf von sex.com meinetwegen auf kinderschokolade.de umgeleitet wird...

Dazu müssen wir aber den Bind9 konfigurieren.

Dessen Konfigurationsdateien finden wir über Putty auf unserem Linux-Server in dem Ordner /etc/bind .

sie lauten:

named.conf
named.conf.local
named.conf.options

Zunächst basteln wir uns erst mal einen Nameserver zusammen - dazu editieren wir folgende Dateien und achten (WICHTIG!) immer darauf, dass nach den Eintragungen eine mit Return abgeschlossene Leerzeile vorhanden ist:

1.) In die Datei named.conf.options tragen wir folgendes ein

Code: Alles auswählen

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.0.1;
		
	 };

	auth-nxdomain yes;    # conform to RFC1035
	listen-on port 53 {
	192.168.0.11;
	};
	listen-on port 53 {
	192.168.0.200;
	};

	listen-on-v6 { any; };
};



Alles, was unser Nameserver nicht kennt, soll er an den Nameserver unseres Internetproviders weiterleiten (forwarden). Da der Nameserver unseres Internetproviders auch mal ausfallen oder geändert werden kann, fragen wir also das Gateway in unserem Router. Das weiss sowas nämlich immer aktuell.

Dort könnten wir theoretisch auch die IP-Adressen von anderen offenen Nameservern eintragen nach Muster

forwarders {
192.168.0.1;
1.2.3.4;
9.8.7.6;
11.12.13.14;
};

Würde nun ein Nameserver ausfallen, würde ein anderer unsere Anfrage beantworten.

Aus diesem Grunde würden auch die geplanten Internetsperren des bunten Innenministers nicht ganz so gut funktionieren - würde unser Provider in seinem Nameserver 1.2.3.4 z.B. die Domain bundeswehr.de sperren, weil er Militärgegner ist, würden wir einfach den Nameserver 1.2.3.4 durch nen anderen ersetzen, der uns die Domain anliefert. ;-)

Achtung: Mancher Provider hat seine Nameserver für Anfragen aus Fremdnetzen gesperrt - ne Anfrage aus dem Vodafone-Netz zum Nameserver bei T-Online kann ggf. nicht funktionieren.

Hinweis: Wenn wir unseren eigenen Nameserver später als Nameserver in unserem Router benutzen, müssen wir in forwarders jedoch die nameserver-IP-Adressen unseres Providers eintragen, weil unser Nameserver sonst die Welt ausserhalb unseres internen Netzes nicht mehr finden wird - und uns bei der Eingabe von "google.de" im Browser nur ein "Seite nicht gefunden" angezeigt wird!

Für alle Domains, die der Nameserver kennt (also all unsere lokalen Domains, die wir in ispcp-omega angelegt haben) soll unser Nameserver "ich weiss wo!" sagen (auth-nxdomain yes)

Zum Schluss sagen wir dem Nameserver noch, auf welchen IPAdressen er auf DNS-Anfragen hören (listen) soll.

Abspeichern! Weiter mit 2.


2.) In die Datei named.conf.local tragen wir folgendes ein

Code: Alles auswählen

//

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

zone "11.0.168.192.in-addr.arpa" {
	type master;
	file "/var/cache/bind/192.168.0.11.ns1.db";
	};

zone "200.0.168.192.in-addr.arpa" {
	type master;
	file "/var/cache/bind/192.168.0.200.ns2.db";
	};
	
Datei speichern!

3.) Im Ordner /var/cache/bind/ erstellen wir 2 Dateien, auf die wir in 2. verwiesen haben, nämlich

192.168.0.11.ns1.db mit folgendem Inhalt:

Code: Alles auswählen

$ttl 86400
11.0.168.192.in-addr.arpa. IN SOA ns1.Linux.lan. root.Linux.lan. (
 2010040402 ;
 10801 ;
 3600 ;
 604800 ;
 86400 ;
 )
11.0.168.192.in-addr.arpa. IN NS ns1.Linux.lan.
      
und 192.168.0.11.ns1.db mit folgendem Inhalt:

Code: Alles auswählen

$ttl 86400
200.0.168.192.in-addr.arpa. IN SOA ns2.Linux.lan. root.Linux.lan. (
 2010040402 ;
 10801 ;
 3600 ;
 604800 ;
 86400 ;
 )
200.0.168.192.in-addr.arpa. IN NS ns2.Linux.lan.
      
Beide Dateien speichern!

Vorstehende Dateien sind wichtig, wenn wir bei einem Registrar die Domain Linux.lan registriert hätten und dort Nameserver mit Domainnamen angeben müssten - in dem Falle ns1.Linux.lan und ns2.Linux.lan .

Nun können wir den noch mit alteinstellung laufenden Nameserver mit den neuen Einstellungen neu starten, indem wir in Putty auf der befehlszeile eingeben:

Code: Alles auswählen

/etc/init.d/bind9 restart      [Return]
Wenn wir alles richtig eingegeben haben (keinen Punkt oder Komma zu viel, oder statt nem Semikolon nen Doppelpunkt) meldet unser Nameserver das herunterfahren und den neustart - oder er meldet bei nem Fehler "fail" - dann müssen wir Fehler suchen!

Nun können wir von unserem Windows-PC aus den Nameserver testen:

Wir öffnen in Windows unsere Netzwerkverbindung und klicken dann auf Eigenschaften. Dort öffnet sich ein Fenster, in dem so Sachen wie Client für Microsoft-Netzwerke usw stehen. Dort scrollen wir auf "Internetprotokoll (TCP/IP)" und öffnen das mit nem Doppelklick.

In dem sich dann öfnenden Fenster "Eigenschaften von Internetprotokoll (TCP/IP)" klicken wir auf "folgende DNS-Serveradressen verwenden" und tragen in die beiden Fenster unsere Nameserver-IP-Adressen ein, nämlich die

192.168.0.11 und die 192.168.0.200

und klicken dann auf OK!

Wir schliessen alle Fenster mit Klick auf OK bzw im Netzwerkfenster "Schliessen".

Wenn wir nun den Browser öffnen und http://www.Linux.lan aufrufen, oder die von ispcp-omega angelegte Domain http://admin.Linux.lan werden uns diese Seiten, sowie auch die von uns zusätzlich über Reseller als Kunden angelegten Seiten http://www.mein-eigener-bastelserver.intern oder so ähnlich angezeigt.

Man muss aber darauf achten, dass man nicht im ispcp-omega zufällig eine Domain diesteckdose.net anlegt - wenn man das tut, bekommt man nur noch das was auf dem eigenen Server liegt angezeigt - und nicht mehr die original-Seite diesteckdose.net

Man könnte theoretisch auch die neuen Nameserver direkt als Nameserver in seinen Router eintragen - dann geht alles aus der eigenen Wohnung / dem eigenen Büro erst mal den Weg über den eigenen Nameserver und erst dann nach draussen in die weite Welt - interessant für Firmen, die ihren Mitarbeitern eine interne Webseite zeigen möchten oder für Eltern, die ihre Kinder aus Knuddels, Facebook oder http://www.lade-illegale-Spiele.net fernhalten wollen. Doch dann sollte man den Hinweis zu forwarders beachten, um sich nicht völlig gegenüber der Welt "draussen" zu isolieren.

Übrigens ist in dem System auch ein eigener Mailserver enthalten - mit dem man sich auch im internen Netz Mails versenden kann - ganz normal über Outlook oder andere Mailclienten. Nur nach draussen mailen wird nicht richtig klappen, wenn man von seinem Provider eine dynamische IP-Adresse zugewiesen bekommt - andere mailserver merken das nämlich und weisen - wenn sie richtig konfiguriert sind - mails aus dynamischen IP-bereichen mit Fehlermeldung ab.

In diesem Sinne, Frohes nachbauen...
elo22
Null-Leiter
Beiträge: 640
Registriert: Sonntag 3. Oktober 2004, 05:05
Kontaktdaten:

Beitrag von elo22 »

C_T hat geschrieben:[...]
IMHO zu komplex, da bleibe ich bei meinen eis(fair).

Lutz
C_T

Beitrag von C_T »

OK, es ist ein bischen Arbeit, so etwas einzurichten.

Ist aber schneller geschehen, als bei einem Provider nen kostenpflichtigen Webspace einzurichten (Installationsdauer nach Anleitung etwa 3 Stunden incl. Leerlaufzeiten wegen downloads) und man hat nen eigenen Webserver im Zimmer/Büro.

Und - es läuft problemlos!
elo22
Null-Leiter
Beiträge: 640
Registriert: Sonntag 3. Oktober 2004, 05:05
Kontaktdaten:

Beitrag von elo22 »

C_T hat geschrieben:Und - es läuft problemlos!
Meiner einer auch.

Lutz
bambam77

Beitrag von bambam77 »

hallo, wo ist denn teil 2 des tutorials hin?
C_T

Beitrag von C_T »

bambam77 hat geschrieben:hallo, wo ist denn teil 2 des tutorials hin?
Ich weiss nicht - es war plötzlich weg - habe aber nun ein Backup wieder da reinkopiert!

AAADMIN! Vergisst das Forum Inhalte?
geloescht

Beitrag von geloescht »

Hallo Christian,

ich habe Dir dazu eben eine PN geschickt. Es ist mir nicht erklärlich, aber Du bist nicht der einzige der sich über verlorene Beiträge beklagt.

Warum das so ist dafür habe ich im Moment keine Erklärung, kümmere mich aber darum.

Gruß

Alois
C_T

Beitrag von C_T »

Alois hat geschrieben:Hallo Christian,

ich habe Dir dazu eben eine PN geschickt. Es ist mir nicht erklärlich, aber Du bist nicht der einzige der sich über verlorene Beiträge beklagt.

Warum das so ist dafür habe ich im Moment keine Erklärung, kümmere mich aber darum.

Gruß

Alois
Das glaube ich Dir - hast Dich bisher ja auch immer drum gekümmert wenns irgendwo brannte.
Antworten