Schlagwort-Archive: SSH

Podcast Nr. 82: Kodi Mediacenter auf einem Raspberry Pi 2 – Teil 3

In diesem Podcast schließe ich meinen Raspberry an und starte ihn zum ersten mal. Anschließend werden für Kodi noch Pakete nachinstalliert, die Grundkonfiguration der Grafik gemacht und der Kodi Screen Reader installiert.

Damit es zu keinen Fehlern bei den Befehlen kommt, die verwendet wurden, gibt es hier mal eine Liste der Befehle, die im Podcast verwendet wurden.

Kleiner Hinweis: Die Befehle, die Administratorrechte benötigen, bekommen ein „sudo“ vorangestellt. Gibt man so einen Befehl zum ersten mal ein, wird das sudo-Passwort benötigt, dann, für eine gewisse Zeit, nicht mehr. Ich bin mir nicht ganz sicher, aber ich meine, es wären 15 Minuten.

Verbindet man sich per SSH mit dem Raspberry Pi 2, so ist bei XBIAN der Benutzername standardmäßig xbian und das Passwort raspberry.

Hier die Befehlsliste:

  • sudo apt-get update: Dies aktualisiert die Daten aus den Paket-Repositories.
  • sudo apt-get upgrade: Dies installiert evtl. vorhandene neuere Versionen. Der apt-get update Befehl sollte immer vorher ausgeführt werden, da sonst nicht bekannt ist, ob es neuere Versionen gibt.
  • sudo apt-get install xxx: Dies installiert Pakete, wobei xxx für den Paketnamen steht. Zum Beispiel sudo apt-get install espeak.
  • apt-cache search xxx: Dies durchsucht Paketquellen, wobei xxx für einen Paketnamen oder sonst für einen Suchbegriff stehen kann.

Um euch per SSH mit dem Raspberry Pi verbinden zu können, benötigt ihr einen SSH-Client. Da gäbe es PUTTY, der mit Jaws z. B. so leidlich funktioniert. Ich persönlich verwende Cygwin, dessen Installation etwas komplexer ist, aber wenn ihr das nur selten braucht, empfehle ich euch Putty, weil dieser keine Installation benötigt.

PUTTY gibt es hier.

CYGWIN gibt es hier.

Detaillierte Informationen über Kodi, Zugang zum Kodi Forum oder zum Kodi Wiki gibt es über die Homepage von Kodi. Detaillierte Informationen zu XBIAN, Zugang zum Forum und dessen Wiki gibt es auf der XBIAN-Homepage.

Download

 

Homeserver 28: Von außen auf den Server zugreifen

Es gibt immer wieder Situationen, in denen es doch schön wäre, wenn man von außen auf den Server käme. Zum Beispiel, als mir letztens die Platten im RAID verrücktgespielt hatten. Da hätte ich von außen einiges tun können, so musste ich warten, bis ich wieder zu Hause bin. OK, in diesem Falle war das jetzt nicht so schlimm. Aber in der Zukunft soll der Server auch zum Videorekorder werden, und dann würde einfach nichts mehr aufgenommen werden. Das wäre dann schon nicht mehr so schön…

Hierbei gibt es zwei Zugangsarten, die für mich wichtig sind. Zum Einen möchte ich auf die Weboberfläche des Servers kommen. Hier könnte ich die Logs sehen, Temperaturen abfragen und später, wenn es denn mal eingerichtet ist, Aufnahmen programmieren. Alles natürlich, wie in den letzten Teilen beschrieben, SSL-verschlüsselt und Passwort-gesichert. Lest euch hier dazu noch mal die Artikel zur Webserver-Installation im Teil 20 und das Absichern des Webservers im Teil 23 durch.

Das ist jetzt aber eigentlich erst mal nur recht informativ, aber von hier aus kann ich nicht wirklich was tun. Also muss ich auch irgendwie auf die SSH-Oberfläche des Servers. Ich weiß nicht wirklich, ob das auch so über die gleiche Art funktioniert, wie für den Webserver, daher richte ich hierfür eine VPN-Verbindung ein. Die hat auch den Vorteil, dass ich auch auf die Datenverzeichnisse des Servers zugreifen kann.

Vorbereitungen

Viel gibt es da gar nicht vorzubereiten. Ich möchte, wenn ich mal nicht zu Hause bin, von meinem MacBook aus auf mein Netzwerk zugreifen können. Hierfür, und für noch eine ganze Anzahl anderer Aufgaben, habe ich ein Windows in einer virtuellen Maschine auf dem Mac laufen. In dieses Windows müssen alle Tools, die dafür benötigt werden, installiert werden. Dabei ist das bei mir z. B. Putti, oder wenn man möchte, Cygwin, als SSH-Client.

Fernzugriff auf den Webserver

Eigentlich braucht es hierfür nur einen DynDNS-Account. Da ich als Privatperson ja nicht immer eine feste IP-Adresse habe, braucht es so eine Hilfstechnik. Und da ich mein Netz mit einer Fritz!Box ans Netz angebunden habe, würde sich ja der MyFritz-Dienst anbieten. Also melde ich mich dort an.

MyFritz!-Konto erstellen

Ich öffne also den Webbrowser meiner Wahl und gebe in die Adresszeile „fritz.box“, natürlich ohne die Anführungsstriche, ein. Es öffnet sich das Login-Fenster der Fritz!Box, in das ich mein Passwort eingebe und Enter drücke.

Um nun zu der Funktion zu gelangen, unter der man sich einen MyFritz-Zugang anlegen kann, muss man auf den Link „Internet“, und dann den Link „MyFritz“ klicken.

Hier wähle ich weiter unten aus, ob ich ein neues Konto erstellen möchte, oder ob ich meine Fritz!Box an einem vorhandenen Konto anmelden möchte. Da ich noch kein Konto habe, wähle ich „Neues MyFritz!-Konto erstellen“ aus. Anschließend gebe ich noch meine Mailadresse ein und wähle mir ein Kennwort für den MyFritz!-Dienst. Danach klicke ich auf „Weiter“.

Nun sagt mir die Fritz!Box, dass ich einen Benutzer anlegen soll:

Für den Zugriff aus dem Internet ist die Einrichtung eines FRITZ!Box-Benutzers erforderlich. Der Internetzugriff ist nur mit Benutzername und Kennwort möglich.

OK, dann fülle ich mal die Felder aus, die mir hier angeboten werden. Im Feld „Name“ wähle ich einen Benutzernamen, das Feld für die E-Mail-Adresse ist schon ausgefüllt, und dann muss noch ein Kennwort für den Fritz!Box-Benutzer festgelegt werden. Und hiernach klicke ich wieder auf „Weiter“.

Jetzt öffne ich mein Mailprogramm, denn bei meiner Anmeldung an den MyFritz!-Dienst hat mir das System eine Mail geschickt, in der ein Bestätigungslink ist. Diesen klicke ich an.

Es öffnet sich nun der Webbrowser. Hier muss man jetzt die Nutzungsbedingungen für MyFritz! durchlesen und mit einem Kontrollkästchen akzeptieren. Klickt man dann auf „Konto aktivieren“, wird das MyFritz!-Konto bestätigt und die Fritz!Box daran angemeldet.

Und wie geht es jetzt weiter?

Anmelden an der Fritz!Box

Zwei Dinge gilt es nun zu tun: Zum Einen möchte ich wissen, ob meine Fritz!Box von außen zugänglich ist, zum Anderen wüsste ich gerne den Link zu ihr. Also, nur um sicher zu gehen, schließe ich mal alle Browserfenster und öffne ein neues leeres Fenster. Hier gebe ich in die Adresszeile „myfritz.net“ ein.

Auf dieser Seite kann ich mich nun anmelden, indem ich hier meine E-Mail-Adresse und mein MyFritz!-Kennwort eingebe. Weiter unten gibt es ein Kontrollkästchen, „Ich bin kein Roboter!“, dieses solltet ihr wirklich aktivieren. 🙂 Danach könnt ihr weiter unten auf die Schaltfläche „Zu meiner Fritz!Box““ klicken.

Jetzt passiert etwas ähnliches, wie mit meinem für meinen Webserver erstellten SSL-Zertifikat. Auf dieser Seite wird mir nun erklärt, was ich machen muss, aber das weiß ich ja schon aus Teil 23.

Wichtiger ist, dass hier auch der direkte Link zu meiner Fritz!Box steht. Dummerweise ist das aber ein Link, den sich keiner merken kann. Er sieht in etwa so aus:

https://XXX.myfritz.net:YYY/myfritz?user=meine_mailadresse%40gmx.de

Wobei das XXX für eine lange Buchstaben- und Zahlenkette steht, und als E-Mail-Adresse am Ende natürlich die Mailadresse, mit der ich mich angemeldet habe. Das YYY steht für eine zufällig vergebene Portnummer, die man in der Fritz!Box auch ändern kann. Wie gesagt, das kann sich ja keiner merken! Dafür muss ich noch eine Lösung finden!

Klicke ich auf diesen Link, erhalte ich die bekannte Fehlermeldung, dass der Verbindung nicht vertraut werden kann. Macht nix, ich kenne meine Fritz!Box, daher klicke ich wieder unten auf „Ich kenne das Risiko“. Nun klicke ich auf „Ausnahmen hinzufügen“, im folgenden Dialog auf „Zertifikat herunterladen“, hake das Kästchen bei „Diese Ausnahme dauerhaft speichern“ an und klicke dann auf „Sicherheitsausnahme bestätigen“. Fertig, die Anmeldeseite meiner Fritz!Box öffnet sich.

Gerätefreigabe Einrichten

Ich will ja meinen Server von außen erreichen können. Also muss ich ihn ja auch für den Zugriff von außen freigeben. Hierfür gehe ich wieder auf die Benutzeroberfläche der Fritz!Box und gehe nacheinander im Navigationsbereich auf „Internet“ und auf „Freigaben“.

In dieser Tabelle stehen alle Geräte, mit ihren von außen erreichbaren Adressen, auf die ich über meinen Browser zugreifen können möchte. Natürlich steht da jetzt noch kein Gerät, daher klicke ich auf „Neue MyFritz!-Freigabe“. Es öffnet sich ein Fenster, welches folgende Daten abfragt:

  • Netzwerkgerät: Hier wähle ich „server01“.
  • Anwendung: Hier wähle ich HTTPS-Server.
  • Verzeichnis: Das lasse ich leer, ist sowieso optional.

Anschließend klicke ich noch auf OK, damit wäre die Freigabe eingerichtet. Nun sehe ich in der Tabelle das Gerät, die Adresse und den dafür konfigurierten Dienst. Die Adresse für meinen Server sieht jetzt also so aus:

https://server01.xxx.myfritz.net:443

Wobei, den Port am Ende kann man auch weglassen, solange es ein Standard-HTTPS-Port ist. Die Fritz!Box selbst hat einen zufälligen Port erhalten, den muss ich angeben, wenn ich auf die Fritz!Box-Oberfläche aus dem Internet zugreifen möchte. Ich könnte mich hierfür natürlich auch einfach über myfritz.net anmelden.

So, auf meinen Server kann ich jetzt zugreifen, Logs sehen, Manpages lesen, aber das reicht mir ja noch nicht. Ich will auch per VPN auf SSH zugreifen können.

VPN einrichten

Um mit meinem iPhone oder meinem MacBook per VPN auf mein Netzwerk zugreifen zu können, muss ich dies in der Fritz!Box einstellen. Dies ist sogar recht einfach. Ich logge mich auf der Benutzeroberfläche der Fritz!Box ein und gehe im Navigationsbereich nacheinander auf „Internet“ und „Freigaben“. Im oberen Bereich des Fensters wähle ich „VPN“ aus. In der Tabelle stehen nun die verfügbaren VPN-Verbindungen. Da ist natürlich noch keine, daher füge ich mit der Schaltfläche „VPN-Verbindung hinzufügen“ eine neue Verbindung hinzu.

Zunächst werde ich gefragt, was für eine Verbindung ich einrichten möchte. Ich wähle daher den Punkt „Fernzugang für einen Benutzer einrichten“.

Nun öffnet sich die Liste der in der Fritz!Box eingerichteten Benutzer. Ich wähle also den für MyFritz! eingerichteten Benutzer aus und betätige die „Bearbeiten“-Schaltfläche daneben. In der Liste der Berechtigungen aktiviere ich das Kontrollkästchen „VPN“ und klicke dann auf OK.

Normalerweise sollte sich ein Fenster öffnen, welches zeigt, was man wo in sein iPhone oder Android-Gerät eingeben soll. Bei mir ist das nicht passiert, stattdessen habe ich einen OK-Schalter, der mir dann das Fenster öffnet. Das nutzt mir nur gerade nix, weil mein iPhone nicht geladen ist und am Strom hängt.

Das macht aber nichts, denn man kann sich die Daten jederzeit erneut anzeigen lassen. Man loggt sich einfach auf die Benutzeroberfläche der Fritz!Box ein, wählt im Navigationsbereich „System“, dort „Fritz!Box-Benutzer“, klickt neben dem für VPN berechtigten Benutzer auf „Bearbeiten“ und kann sich weiter unten mit dem Link „VPN-Einstellungen anzeigen“ das Fenster erneut anzeigen lassen. Hier folgt man dann einfach den Anweisungen.

Mit dem iPhone über VPN verbinden

Die Einstellungen in das iPhone zu fummeln ist etwas kompliziert. Gut für den, der eine externe Tastatur sein eigen nennt. Denn zum einen muss man die kryptische MyFritz!-Adresse eingeben und das Shared Secret, welches aus Zahlen, Klein- und Großbuchstaben besteht und 16 Stellen lang ist. Auch Benutzername und Kennwort kann man bei der Einrichtung der Verbindung im iPhone gleich angeben. Die Anleitung, die über den Link „VPN-Einstellungen anzeigen“ geboten wird, hat bei meinem iPhone jedenfalls tadellos funktioniert.

Um mich nun mit dem VPN zu verbinden, sollte man zum Testen mal machen, schalte ich erst mal mein WLAN am iPhone ab. Ich will mich über das 3G-Netz verbinden. Nun gehe ich in die App Einstellungen. Jetzt befindet sich unterhalb von „Persönlicher Hotspot“ der Schalter „VPN“. Wenn man den doppeltippt, dauert es eine Weile, bis die Verbindung aufgebaut ist, anschließend wechselt der Schalter von „Aus“ zu „Ein“. Genau so kann man es auch wieder trennen.

Nun schließe ich mal die App Einstellungen, und gucke mal in die Statuszeile des iPhones. Neben dem Symbol für 3G gibt es jetzt auch ein VPN-Symbol. Also öffne ich doch mal eine App, die garantiert nur in meinem eigenen Heimnetz funktionieren sollte. Da bietet sich dreaMote an, um meine Dreambox zu steuern. Die App öffnet sich und nach einer Wartezeit von etwa 5 bis 8 Sekunden kann ich sogar meine Timer sehen. Damit steht fest, auf dem iPhone funktioniert VPN prima. Dann kann ich es in der App Einstellungen ja auch wieder trennen.

VPN am MacBook

Eigentlich werden hier die gleichen Angaben gemacht, nur der Weg ist geringfügig anders. Daher beschreibe ich mal den Vorgang, VPN am MacBook einzurichten. Ich verwende hier Yosemite 10.10.2, das nur, falls es bei anderen Versionen etwas anders aussieht. Ich denke aber, da dürfte es nicht so viele Unterschiede geben. Ich gehe zum Eintragen des VPN-Zugangs ins MacBook also folgendermaßen vor:

  • Mit VO+M gehe ich ins Menü und wähle aus dem Menü „Apple“ die Systemeinstellungen.
  • Hier gehe ich zu „Netzwerk“ und öffne es mit VO+Leertaste.
  • Mit VO+Pfeil-rechts gehe ich weiter, bis ich zu „Dienst hinzufügen“ komme, und drücke dort VO+Leertaste.
  • Im Einblendmenü „Anschluss“ wähle ich „VPN“.
  • Bei VPN-Typ wähle ich „Cisco IPSec“.
  • Bei Dienstname kann ich eine Beschreibung eingeben, die ist frei wählbar.

Anschließend aktiviere ich die Schaltfläche „Erstellen“. Nun befinde ich mich wieder in der Vorherigen Ansicht, und ein weiterer Dienst wurde meiner Dienste-Tabelle hinzugefügt. Dieser muss aber noch konfiguriert werden. Wenn ich jetzt also mit VO+Pfeil-rechts weitergehe, finde ich die Angaben über Serveradresse, Account-Name und Passwort, wo ich die gleichen Werte eingebe, wie beim iPhone.

Anschließend aktiviere ich noch die Schaltfläche „Authentifizierungseinstellungen“, weil hier noch paar Angaben gemacht werden müssen. Zum Beispiel der Shared Secret und der Gruppenname. Auch diese Angaben sind die gleichen, wie für das iPhone, also fülle ich das aus und bestätige das Dialogfenster mit der OK-Schaltfläche.

Ich könnte mich hier natürlich auch verbinden, das mache ich aber nicht. Aber hier ist ein Markierungsfeld, welches man durchaus aktivieren sollte. Denn wenn man „VPN-Status in der Menüleiste anzeigen“ markiert hat, kann man sich ganz bequem über das Statusmenü mit dem VPN verbinden. Dann schließe ich das Fenster, bestätige, dass ich die Änderungen übernehmen will und schließe alle Fenster.

Die VPN-Verbindung am Mac ist zwar jetzt eingerichtet, ich kann sie aber gerade nicht testen. Ich bin ja in meinem eigenen WLAN, da macht das nicht so viel Sinn. Dies zu testen muss also warten, bis ich in einem anderen WLAN bin.

Vereinfachung der MyFritz!-URL

Es gibt bekanntlich viele Wege zur Fritz!Box, hier sind mal zwei davon.

  • Man könnte sich einen Account bei FreeDNS erstellen und hier eine Subdomain registrieren. Das ist sogar kostenlos.
  • Wenn man eigene Domains hat, könnte man sich evtl. ja auch eine Subdomain hier anlegen.

Beide Varianten hätten das gleiche Ziel, aber da ich bereits mehrere Domains habe, lege ich mir eine Subdomain an.

Ein Beispiel könnte so aussehen: Ich habe ja die Domain tuksub.de. Jetzt könnte ich mir eine Subdomain einrichten, wie z. B. „linuxserver“, und als Ziel gebe ich die kryptische MyFritz!-URL an. Wenn ich in meinen Browser jetzt also linuxserver.tuksub.de eingeben würde, würde mich der Browser automatisch auf server01.XXX.myfritz.net weiterleiten, wobei XXX für den kryptischen Buchstabensalat steht, den MyFritz! mir zugewiesen hat.

Natürlich war das nur ein Beispiel, die Tatsächliche Subdomain und Domain, unter der mein Server zu erreichen ist, behalte ich mal für mich… 🙂

Fazit

Es klingt alles komplizierter, als es am Ende tatsächlich einzurichten war. Allerdings war dies ein Schritt, der lange überfällig war. Denn erst jetzt werden gewisse Dinge möglich. Zum Beispiel Fehlerbehebung und Statusabfrage von außen, Programmierung des Videorekorder-Dienstes, sobald der mal installiert ist und, was jetzt auch noch kommen soll, CardDAv und CalDAV zum Synchronisieren meiner Kalender- und Kontaktdaten mit meinen Mobilgeräten.

Aber was genau ich jetzt als nächstes tue, mal gucken. In viele Bereiche muss ich mich noch einlesen, dann geht es weiter!

Homeserver 26: Prozesse unbeaufsichtigt im Hintergrund laufen lassen

Lange laufende Prozesse am Server bereiten ein kleineres Problem. Das ist mir insbesondere aufgefallen, als ich die Hashwerte mit den Daten prüfen wollte. Dieser Prozess hat länger als einen Tag gedauert, und in der Zeit muss die SSH-Verbindung offen bleiben, also auch der Rechner hier weiter laufen. Wäre mir zwischenzeitlich mein Windows-PC abgestürzt, hätte ich von vorn beginnen können.

Aber, dieses Problem kann gelöst werden, mit virtuellen Terminals. Und wie dies geht, werde ich in diesem Artikel erklären.

Screen

Screen ist ein ziemlich umfangreiches Werkzeug. Man kann fast beliebig viele virtuelle Fenster erstellen, man kann auch mit mehreren Personen an so einem Fenster arbeiten. Das macht z. B. Sinn, wenn Person A jemandem etwas zeigen will, wie z. B. eine bestimmte Software funktioniert, und Person B und einige weitere sind ebenfalls an diesem Fenster angemeldet und können die Vorgänge nachvollziehen.

Für mich ist jetzt erst einmal nur die Möglichkeit wichtig, ein Fenster zu erstellen, und dieses dann von der Sitzung zu entkoppeln, so dass ich die SSH-Sitzung schließen kann. Später kann ich über SSH das Fenster wieder aufrufen und dort weiter arbeiten.

Zunächst muss Screen aber erst mal installiert werden:

sudo apt-get install screen

Aufruf

Es gibt mehrere Möglichkeiten, Screen aufzurufen. Gibt man „screen“ ohne irgendwelche Parameter auf, so wird einfach ein Fenster erzeugt, in dem man schon arbeiten könnte. Man kann auch mit screen und einem Befehl dahinter sofort eine Aufgabe an ein virtuelles Terminal übergeben. Ich habe beide Methoden probiert und hinterher etwas Schwierigkeiten gehabt, die Fenster aus dem Hintergrund wieder hervorzuholen. Denn dazu müsste ich den Namen angeben, und das ist bei automatisch erzeugten Fenstern nicht ganz trivial. Stattdessen erzeuge ich ein Fenster, welches gleich einen zur Aufgabe passenden Namen bekommt:

screen -S Hash

Nun habe ich ein leeres Terminal und kann, wie der Name des Terminals schon sagt, die Erstellung der Hashwerte einleiten. Also gebe ich an der Befehlszeile ein:

sudo hashdeep -re /raid1/daten >hashset.txt

Wie ich schon sagte, dieses Programm läuft lange, länger jedenfalls, als ein Tag. Und so lange möchte ich weder das Terminal offen lassen, noch den PC. Daher verfrachte ich das virtuelle Terminal in den Hintergrund, ich entkopple es also von der SSH-Sitzung, und kann die SSH-Sitzung dann problemlos schließen.

Screen lässt sich ganz einfach mit Tastenbefehlen steuern. Jeder Befehl beginnt mit einem STRG+a gefolgt von einem Buchstaben oder einer Kombination. Eine Liste der Tastenbefehle bekommt ihr, wenn ihr STRG+a ? eingebt. Ich möchte jetzt das Terminal entkoppeln, dafür drücke ich STRG+a d. Nun ist das Terminal abgekoppelt und ich kann SSH beenden und den PC abschalten, der Hash-Vorgang läuft auf dem Server aber weiter.

Wieder verbinden

Auch hier gibt es mehrere Möglichkeiten.

screen -r

Dieser Befehl ist dann sinnvoll, wenn man sowieso nur ein Fenster offen hatte. Es wird dann sofort verbunden. Hat man mehrere Fenster im Hintergrund laufen, so hilft der Befehl „screen -ls“ herauszufinden, welche Fenster da sind und wie diese heißen. Wie mein Fenster heißt, weiß ich ja, ich habe es ja entsprechend gestartet.

screen -r Hash

Nun bin ich wieder mit meinem Fenster verbunden und kann sehen, ob der Hash-Vorgang noch läuft, oder ob er schon beendet ist. Läuft er noch, kann ich das Fenster ja wieder abkoppeln. Ist der Vorgang aber schon beendet, kann ich das Fenster ja beenden, also, wie es in der Linux-Welt so brutal heißt, killen! 🙂 Also kille ich das Fenster mit STRG+a k. Dann werde ich noch gefragt, ob ich das wirklich will, und dann ist das Terminal auch beendet. Dies kann man leicht mit „screen -ls“ herausfinden.

Fazit

Man kann mit Screen noch eine Menge toller Sachen machen, wie z. B. am Terminal eines Rechners verbunden sein, der irgendwo auf der Welt steht, gemeinsam an Dokumenten Arbeiten und vieles mehr. Aber für mich ist erst mal nur von Bedeutung, dass ich lange laufende Prozesse im Hintergrund ablaufen lassen kann, ohne dass mein Windows-PC und mein SSH-Fenster offen sein müssen.

Projekt Homeserver im Eigenbau 6: Erste Schritte am Server

Noch mal kurz ein kleiner Nachtrag zur Installation. Ich habe mit dem System noch etwas herumgespielt, um einiges auszuprobieren. Dabei habe ich so viel durcheinander gebracht, dass eine Neuinstallation schneller ging als das Problem zu beheben. Das wäre gegangen, aber ich war zu faul. Und dabei habe ich das System zwar genau so installiert, wie im vorigen Beitrag beschrieben, aber mit einer kleinen Änderung: Da, wo ich die Software-Pakete auswähle, die installiert werden sollen, habe ich Web Server und SQL Database nicht mehr ausgewählt. Das Debian Desktop Environment habe ich wieder abgewählt. Damit wird tatsächlich eine grafische Oberfläche mit allen Zusatzprogrammen installiert, das war übrigens eines meiner Experimente. Ich will das nur erwähnt haben, falls ihr euch zu gegebener Zeit fragt, warum ich Web Server usw. manuell installiere.

Übrigens, macht das ruhig mal paar mal. Installiert Linux, spielt damit herum, macht es kaputt, installiert es erneut, spielt wieder rum, versucht dann, das Problem zu finden und zu lösen. So lernt man fast mehr, als trocken irgendwelche Bücher zu lesen. Durch viel Rumprobieren an meiner Mediacenter-Installation habe ich das meiste über Linux gelernt. Und es ist ja nicht wie Windows, was man aktivieren muss. Es kostet euch nur etwas Zeit, sonst nichts.

Neuinstallation leicht gemacht?

Zur Zeit ist es ja egal, ich habe ja noch nichts produktives mit dem System angestellt, aber das ändert sich jetzt sehr schnell. Und damit ich bei einer eventuellen Neuinstallation nicht alles per Hand wieder machen muss, führe ich während meiner Arbeit 3 kleine Dateien. Das sind Shellscripte, die haben unter Linux in etwa die Funktion von Batch-Dateien. Allerdings sind die unter Linux um ein beträchtliches mächtiger.

Die erste Datei ist filecopy.sh. Die Dateiendung *.sh findet ihr bei diesen Scripts. Hier schreibe ich einen Kopierbefehl rein, wenn ich z. B. eine Konfigurationsdatei ändere. Ändere ich z. B. die Konfigurationsdatei für das Netzwerk, so trage ich hier folgenden Befehl ein:

sudo cp /etc/network/interfaces ~

Dieser Befehl kopiert mir die Datei in mein Home-Verzeichnis.

Die zweite Datei ist filerestore.sh, die kopiert die gesicherten Konfigurationsdateien wieder dort hin, wo sie hingehören. Hier z. B:

sudo cp interfaces /etc/network/interfaces

Die beiden Scripte und die kopierten Konfigurationsdateien kann ich z. B. auf einen USB-Stick kopieren, so dass ich nach einer Neuinstallation einfach nur filerestore.sh ausführen muss. Und innerhalb von Sekunden ist mein Server wieder korrekt konfiguriert.

Die dritte Datei ist die installserver.sh. Hier trage ich die Befehle für alle nachträglich installierten Pakete ein. So brauche ich auch das hinterher nicht mehr per Hand machen, wenn ich den Server mal neu aufsetzen muss.

Näher zu Scripten, wie man sie schreibt und ausführt, gehe ich später noch ein. Aber ich würde mir, um die Arbeit hinterher zu erleichtern, die Befehle für evtl. nachinstallierte Pakete und geänderte Konfigurationsdateien irgendwo notieren.

Jetzt aber, los geht’s!

Nun haben wir es also geschafft, der Server ist installiert. Aber, außer ein bisschen Strom verbrauchen, tut der im Augenblick nichts interessantes. Also müssen wir mal sehen, das wir den Server überhaupt erst mal gesteuert bekommen.

Putty

Putty ist ein SSH-Client, mit dem man sich mit Linux-Rechnern verbinden kann, um an oder auf ihnen zu arbeiten. Das war auch der Grund, warum ich während der Installation auch den SSH Server angewählt habe. Mit Putty haben wir eine Eingabeaufforderung am Server, als würden wir direkt an diesem arbeiten.

Zunächst mal müssen wir Putty runterladen. Das ist nur ein winzig kleines Programm. Putty gibt es hier zum Herunterladen.

Sucht auf der Seite nach der Windows-Version und ladet das Programm runter. Kopiert es nun an einen Ort auf eurem Rechner, wo ihr es leicht wiederfindet. Ich habe auf meinem Laufwerk D: einen Ordner, wo ich all diese kleinen Helferlein reinkopiere.

Verbindung zum Server herstellen

Zunächst mal muss der Server eingeschaltet werden. Da er jetzt keinen Monitor hat, müssen wir raten, wann er fertig mit booten ist. Dafür muss ich mir auch noch mal was einfallen lassen…

Legt euch nun auf dem Desktop eine neue Verknüpfung an, dann braucht ihr das nicht jedes mal per Hand eingeben. Klickt rechts auf euren Windows-Desktop, wählt aus dem Kontextmenü „Neu“ und aus dem Untermenü „Verknüpfung“ aus.

In das Feld „Geben sie den Speicherort des Elements ein“, gebt ihr nun den Pfad zu Putty ein, und natürlich den Parameter, mit dem es gestartet werden soll. Ihr könnt eine IP-Adresse angeben, aber auch einen Rechnernamen. Mein Server heißt ja „server01“. Also heißt die Zeile bei mir:

d:\tools\putty.exe server01

Nachdem ihr auf „Weiter“ geklickt habt, gebt ihr der Verknüpfung noch einen vernünftigen Namen, bei mir heißt sie nun „Server 01“. Fertig, ab jetzt braucht ihr nur noch diese Verknüpfung, um euch mit eurem Server zu verbinden.

Erste Verbindung zum Server

Geht nun auf die neue Verknüpfung und drückt Enter. Das Putty-Fenster geht auf, und ein Dialogfeld erscheint.

Dieser englische Dialogtext sagt euch nichts anderes, als dass Putty den Schlüssel dieses Rechners nicht kennt und man sich nicht sicher sein kann, dass es wirklich der Rechner ist, den ihr erreichen wolltet. Da ich mir aber sicher bin, dass es mein Server ist, klicke ich auf „Ja“, wodurch der Schlüssel gespeichert wird und diese Frage nie wieder kommt.

Anschließend werdet ihr nach Benutzernamen und Passwort gefragt. Loggt euch ein, und es erscheint folgender Bildschirm:

Linux server01 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 15 00:53:50 2014
benutzer@server01:~$

Der obere Text ist eigentlich erst mal uninteressant. Wichtig ist die letzte Zeile. Die sagt nämlich folgendes:

  • benutzer: Der Benutzername, mit dem ihr angemeldet seid.
  • @server01: Der Rechner, an dem ihr angemeldet seid.
  • :~: Das Verzeichnis, in dem ihr euch gerade befindet. Die ~ (Tilde) sagt euch, ihr seid in eurem eigenen Home-Verzeichniss.
  • $: Das Dollar-Zeichen sagt euch, dass ihr als normaler User verbunden seid. Als Root würde da ein # (Nummernzeichen) stehen.

So, und nun könnten wir ja eigentlich schon mal paar Befehle eingeben…

Zeit synchronisieren

Ihr erinnert euch? Bei der Installation gab es ja mal so paar Probleme mit der Internet-Zeit-Synchronisation. Nun, stellt sich raus, dass ich dem Server das noch beibringen muss… Also muss das Paket nachinstalliert werden. Benötigt wird das Paket NTP, Network Time Protocol. Und das installiert man folgendermaßen:

Da dies ein administrativer Eingriff ist, muss man dies als Admin tun. Also kommt vor den Befehl der Zusatz sudo. Das zeigt dem System, dass nun mit Admin-Rechten gearbeitet wird. Um das Paket also zu installieren, sind folgende 2 Befehle nötig:

sudo apt-get update

Dieser Befehl aktualisiert die Paketquellen und lädt die Liste verfügbarer Pakete runter. Gleichzeitig wird eine Datenbank erstellt, in der das System vermerkt, was schon installiert ist, und was nicht und deren Abhängigkeiten.

sudo apt-get install ntp

Dieses installiert nun das Paket NTP und alle seine Abhängigkeiten. Die nachfrage, ob man dies nun installieren möchte, bestätigt man mit Y.

Nachdem der NTP-Dienst installiert wurde, stimmt nun auch endlich meine Uhrzeit, die man immer mit dem Befehl „Date“ abfragen kann.

Kurze Anmerkung zu apt-get

Das Programm, oder Paket, apt-get ist einer der Paketmanager, mit dem man Pakete installieren, deinstallieren, Systemupdates durchführen und vieles mehr machen kann. Auf alle Aspekte des Pakets einzugehen würde zu weit führen.

Ihr könnt übrigens jeder Zeit eine Handbuchseite zu einem Paket oder Befehl aufrufen. Dazu gebt ihr einfach „man“ und den Befehl, über den ihr die Seite sehen wollt, ein. Für apt-get hieße die Zeile z. B.:

man apt-get

BRLTTY entfernen

Wieso denn das jetzt? Nun, BRLTTY hat nur einen Zweck, und zwar die Braillezeile anzusprechen. Da aber niemand mehr direkt am Server arbeiten wird, ist es auch nicht nötig, dass es permanent im Hintergrund läuft. Da ich Linux ja mit Braillezeile installiert habe, hat es BRLTTY auch standardmäßig installiert. Der einzige Grund, je wieder einen Monitor und Tastatur an den Server anzuschließen ist, wenn ich ihn über das Netzwerk nicht mehr erreichen kann. Und dann wird wahrscheinlich sowieso eine Neuinstallation fällig. Daher glaube ich, kann BRLTTY auch runter vom System. Und das geht mit diesem Befehl:

sudo apt-get remove brltty

Abhängigkeiten bereinigen

Wenn man ein Paket entfernt, wird oft eben nur dieses entfernt. Die anderen Pakete, die mit dem eigentlichen Paket installiert wurden, weil sie voneinander abhängig sind, wurden nicht entfernt. Daher müsst ihr gelegentlich mal gucken, ob es nicht mehr benötigte Pakete auf eurem Server gibt. Diese können in einem Rutsch ganz leicht mit folgendem Befehl entfernt werden:

sudo apt-get autoremove

Das müsst ihr nicht oft machen, aber es kann nicht schaden, diesen Befehl auszuführen, wenn ihr mal mehrere Pakete deinstalliert habt. Diese unbenötigten Pakete stören zwar nicht, müssen aber auch nicht unbedingt auf dem Server bleiben.

System update

Eigentlich sollte man meinen, das sei jetzt bei einem gerade aus dem Internet installierten System nicht nötig. Vielleicht ist es das tatsächlich nicht. Aber es würde doch mein Gewissen beruhigen, mal nach Updates zu gucken. Auch hierzu sind zwei Befehle nötig.

sudo apt-get update

Ja, hatten wir eben schon mal, aber wenn wir später mal wieder ein Update machen wollen, müssen beide Befehle sein.

sudo apt-get upgrade

Dieser Befehl führt das eigentliche Update durch.

OK, war nicht nötig, keine Updates vorhanden.

Und eine Vorschau auf den nächsten Artikel erspare ich mir, weil ich wahrscheinlich sowieso wieder was ganz anderes dazwischen schieben werde, als ich vor hatte… 🙂