Nachträge und Korrekturen in Kapiteln 3+4

This commit is contained in:
Felix Lohmeier 2016-12-30 23:46:02 +01:00
parent a793ff8a46
commit 2f9f8c35a2
8 changed files with 109 additions and 24 deletions

View File

@ -1,11 +1,11 @@
# 3.1 Installation der Systemumgebung
Im Seminar an der HAW Hamburg verwenden wir vorinstallierte Linux-Webserver, welche die Hochschule bereitstellt. Wer dieses Skript außerhalb des Seminars nachspielen möchte, muss sich zunächst einen Linux-Webserver auf dem eigenen Rechner installieren. Das funktioniert am einfachsten und am sichersten mit einer Virtualisierungssoftware wie [VirtualBox oder VMware](http://www.pc-magazin.de/vergleich/vmware-virtualbox-virtualisierung-tool-test-gratis-kostenlos-2827888.html).
Im Seminar an der HAW Hamburg verwenden wir vorinstallierte Linux-Webserver, welche die Hochschule bereitstellt. Wer dieses Skript außerhalb des Seminars nachspielen möchte, muss sich zunächst einen Linux-Webserver auf dem eigenen Rechner installieren. Das funktioniert am einfachsten und am sichersten mit einer Virtualisierungssoftware wie [VirtualBox oder VMware](http://www.pc-magazin.de/vergleich/vmware-virtualbox-virtualisierung-tool-test-gratis-kostenlos-2827888.html) und ist in etwa 60 Minuten erledigt.
**Systemvoraussetzungen:**
* Computer mit Windows, Mac, Linux oder Solaris
* Computer mit Windows, Mac oder Linux
* mindestens 1 GB freien Arbeitsspeicher für die virtuelle Maschine
* etwa 10 GB freien Speicher für die Festplatte
* 20 GB freien Speicher auf der Festplatte
* einigermaßen aktuelle CPU mit [Hardware-Unterstützung für Virtualisierung](http://www.sysprobs.com/disable-enable-virtualization-technology-bios) (Intel VT-X, AMD-V)
## Schritt 1: VirtualBox installieren
@ -20,15 +20,85 @@ VirtualBox ermöglicht es Ihnen auf ihrem gewohnten Betriebssystem (Windows, Mac
Normalerweise würden Sie das gewünschte Linux von der offiziellen Webseite herunterladen, eine virtuelle Maschine in Virtualbox einrichten, das Linux installieren und anschließend als Webserver konfigurieren. Um diesen Vorgang zu vereinfachen, können Sie auch eine vorgefertigte virtuelle Maschine aus dem Internet herunterladen. Wie immer gilt dabei, dass Sie dem Anbieter vertrauen müssen, denn er könnte böswillige Änderungen an dem Linux vorgenommen haben. Ein etablierter Anbieter von virtuellen Maschinen (dort "Appliances" genannt) ist [TurnKey Linux](https://www.turnkeylinux.org/). Dort gibt es zahlreiche vorkonfigurierte Webserver zum Download in verschiedenen Formaten, unter anderem für VirtualBox.
In den weiteren Übungen verwenden wir [Debian](https://de.wikipedia.org/wiki/Debian). Das ist ein Linux, das häufig auf Webservern eingesetzt wird. Die entsprechende Appliance bei Turnkey Linux heißt [Turnkey Core](https://www.turnkeylinux.org/core).
In den Übungen in diesem Skript verwenden wir [Debian](https://de.wikipedia.org/wiki/Debian). Das ist ein Linux, das häufig auf Webservern eingesetzt wird. Die entsprechende Appliance bei Turnkey Linux heißt [Turnkey Core](https://www.turnkeylinux.org/core).
1. Download von TurnKey Core: Laden Sie die Version für virtuelle Maschinen ("VM build") von der Turnkey-Linux-Webseite herunter: https://www.turnkeylinux.org/download?file=turnkey-core-14.1-jessie-amd64.ova
2. Starten Sie VirtualBox und folgen Sie der Installationsanleitung von TurnKey Linux: https://www.turnkeylinux.org/docs/installation-appliances-virtualbox-new (nur Schritt 3a)
3. Booten Sie die virtuelle Maschine in VirtualBox. Sie werden aufgefordert, ein Passwort zu vergeben und bekommen dann die IP-Adresse des Webservers angezeigt.
### 1. Download von TurnKey Core
TurnKey Linux bringt eine Administrationsoberfläche und eine Kommandozeile mit, die Sie über den Browser aufrufen können:
Laden Sie die Version für virtuelle Maschinen ("VM build") von der Turnkey-Linux-Webseite herunter. Direktlink zu Version 14.1: https://www.turnkeylinux.org/download?file=turnkey-core-14.1-jessie-amd64.ova
https://12.34.56.789:12321/ - System control panel
https://12.34.56.789:12320/ - Web based command line terminal
### 2. Starten Sie VirtualBox und folgen Sie der Installationsanleitung von TurnKey Linux
Die *12.34.56.789* müssen Sie durch die IP-Adresse ihres Webservers ersetzen, die beim Start angezeigt wurde. Warnmeldungen des Browsers zu ungültigen SSL-Zertifikaten bitte ignorieren bzw. eine Ausnahmeregelung einrichten.
(vgl. Schritt 3a unter https://www.turnkeylinux.org/docs/installation-appliances-virtualbox-new)
If you've downloaded the default VM build:
1. Under the File menu, select Import Appliance.
2. Direct the file browser to the OVA file.
3. Double click Guest OS Type and select Linux > Ubuntu
4. Press Import to create the VM.
Die folgenden Einstellungen aus der Installationsanleitung nur vornehmen, wenn Sie nicht bereits vorausgewählt sind:
After you've created the new VM, you'll need to tweak its configuration:
1. Settings > System > Processor > Enable PAE/NX
2. Settings > Network > Adapter 1 > Attach to: bridged
Die letzte Einstellung verbindet die virtuelle Maschine über eine "Bridge" mit der Netzwerkverbindung Ihres Computers. Wenn Sie mehrere Netzwerkadapter (z.B. WLAN und Ethernet) haben, dann wählen Sie einen aus. Die Einstellung lässt sich später ändern. Ihr Computer muss per WLAN oder Kabel mit einem lokalen Netzwerk (in der Regel Ihr WLAN-Router zuhause) verbunden sein, bevor Sie fortfahren.
Nehmen Sie weitere Einstellungen vor, die Sie zu Ihrem Computer passen. Empfehlungen:
* General/Name: Vergeben Sie einen individuellen Namen
* System/Motherboard/Base Memory: Erhöhen Sie den Arbeitsspeicher, wenn Ihr Computer ausreichend freien Arbeitsspeicher zur Verfügung hat. Achtung: In der Regel sollten Sie nicht mehr als die Hälfte des verfügbaren Arbeitsspeichers vergeben, da sonst ggf. nicht mehr genug Speicher für Ihr "normales" Betriebssystem verbleibt! Die Übungen im Kapitel 7 dieses Skripts sind für virtuelle Maschinen mit 4096 MB RAM ausgelegt. Wenn Sie weniger Arbeitsspeicher zuteilen können, dann müssen Sie im Kapitel 7 die Übungen später etwas abwandeln und weniger Daten verarbeiten. Mindestens 1024 MB sollten es aber sein.
* System/Motherboard/Processor(s): Auch hier gilt: Je mehr CPUs desto besser, aber nicht mehr als die Hälfte der insgesamt verfügbaren CPUs.
### 3. Booten Sie die virtuelle Maschine in VirtualBox
Klicken Sie auf "Start", es öffnet sich ein neues Fenster, in dem der Startvorgang durchläuft (etwa 1 Minute). Dann erscheint ein Bildschirm mit Dialogen:
* Vergeben Sie ein Passwort.
* Die "Hub Services" von TurnKey können Sie überspringen (mit der Tab-Taste können Sie auf "Skip" wechseln).
* Die E-Mail-Benachrichtigungen sind sinnvoll, können aber auch übersprungen werden (falls Sie sich registrieren wollen, aber Probleme haben, die @-Taste zu finden... auf einer englischen Tastatur ist es: ```AltGr``` und ```2```).
* Die Sicherheitsupdates sollten Sie sofort installieren (und den Neustart bestätigen, wenn Sie dazu aufgefordert werden).
Nach erfolgtem Neustart bekommen Sie die Adressen angezeigt, unter denen die virtuelle Maschine in Ihrem Netzwerk erreichbar ist. TurnKey Linux bringt eine Administrationsoberfläche und eine Kommandozeile mit, die Sie über den Browser auf Ihrem Computer aufrufen können. Notieren Sie sich die Angaben oder machen Sie einen Screenshot (Menü View / Take Screenshot).
Wenn der Mauszeiger verschwunden sein sollte, müssen Sie ggf. eine Taste drücken, die unten rechts in der Fußzeile des Fensters angezeigt wird. Diese Taste (z.B. STRG rechts) hebt den Fokus auf dieses Fenster wieder auf, so dass Sie normal in Ihrem Betriebssystem navigieren können.
Solange das Fenster offen ist, läuft die virtuelle Maschine. Zum Beenden der virtuellen Maschine schließen Sie einfach das Fenster und wählen Sie die zweite Option "Send the shutdown signal". Um die virtuelle Maschine erneut zu starten, wählen Sie den "Start" Button in Virtualbox. Sobald der bekannte Bildschirm mit den Adressen erscheint, ist die virtuelle Maschine erreichbar.
## Schritt 3: Systemkonfiguration
Rufen Sie die Web Shell im Browser auf:
https://192.168.1.1:12320
Die IP-Adresse 192.168.1.1 durch die Adresse Ihres Webservers ersetzen und Warnmeldungen zum SSL-Zertifikat ignorieren bzw. eine Ausnahmeregelung einrichten.
Login mit ```root``` und dem von Ihnen während der Installation festgelegten Root-Passwort. Geben Sie dann folgende Befehle ein:
### 1. Tastaturlayout anpassen
apt-get install console-data console-setup
Im Auswahlmenü "Other", dann "German" und nochmal "German" auswählen.
### 2. Neuen Benutzer einrichten
Aus Sicherheitsgründen sollte nicht mit dem Benutzer ```root``` gearbeitet werden, weil dieser uneingeschränkte Berechtigungen auf dem System hat. Wir richten daher einen neuen Nutzer ein:
adduser name
```name``` durch einen Namen ihrer Wahl ersetzen (ein Wort und besser in Kleinschreibung). Sie werden dann aufgefordert ein Passwort zu vergeben. Die Abfragen nach weiteren Informationen können Sie jeweils leer lassen und mit ENTER bestätigen.
Für die Übungen im Skript werden später manchmal Administrator-Berechtigungen benötigt, daher installieren wir das Paket [sudo](https://wiki.ubuntuusers.de/sudo/) und fügen den gerade hinzugefügten Nutzer der Gruppe der Administratoren hinzu.
apt-get install sudo
adduser name sudo
```name``` wieder durch den gewählten Namen ersetzen.
### 3. Neustart
reboot
Sobald der Server neu gestartet ist (etwa 30 Sekunden), sollte ein "Connect" Button in der Web Shell erscheinen, mit dem eine neue Verbindung hergestellt werden kann. Jetzt kann der Login mit dem gerade neu angelegten Benutzer erfolgen und es sollte das neue Tastaturlayout eingestellt sein (Test z.B. mit @-Taste). Die Verbindung der Web Shell beenden Sie mit dem Befehl ```exit```.

View File

@ -1,14 +1,17 @@
# 3.2 Einführung in die Linux Konsole
Wer Webserver administrieren möchte, der kommt an der [Kommandozeile](https://de.wikipedia.org/wiki/Kommandozeile) von Linux nicht vorbei. In Textform lassen sich Server einfach sicherer und schneller steuern als über grafische Oberflächen.
Wer Webserver administrieren möchte, der kommt an der [Kommandozeile](https://de.wikipedia.org/wiki/Kommandozeile) von Linux nicht vorbei. In Textform lassen sich Server einfach sicherer und schneller steuern als über grafische Oberflächen. Das sieht dann zum Beispiel so aus:
![](images/putty2.png)
Bevor wir in Kapitel 3.3 in die praktischen Übungen einsteigen, hier ein paar Literaturtipps vorab:
Eine gute Einführung in die Linux-Kommandozeile bietet [http://linuxcommand.org](http://linuxcommand.org) von William E. Shotts, der auch ein kostenfreies [540-Seiten-Buch](http://linuxcommand.org/tlcl.php) darüber geschrieben hat.
Es gibt sehr viele praktische kleine Programme auf der Kommandozeile. Zur Übersicht eignet sich daher ein Spickzettel ("Cheatsheet") sehr gut. Ein Beispiel für die unzähligen Cheatsheets: [http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/](http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/).
Nicht vergessen werden sollte, dass ein Linux-Server im Internet trotz der guten Sicherheitsarchitektur von Linux ein beliebtes Angriffsziel darstellt und missbraucht werden könnte. Auch bei Linux werden regelmäßig neue Sicherheitslücken und Einfallstore aufgedeckt. Es wäre daher keine gute Idee, einen Server ohne Updates und Überwachung monatelang im Internet herumdümpeln zu lassen. Wer einen Server dauerhaft im Netz belassen möchte, sollte weitere Vorkehrungen treffen. Hier ein paar Einsteigertipps:
* https://developer-blog.net/10-tipps-wie-man-seinen-server-absichert/
* https://www.thomas-krenn.com/de/wiki/Absicherung_eines_Debian_Servers
* https://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers

View File

@ -1,8 +1,9 @@
# 3.3 Verbinden mit dem Server über SSH
In diesem Seminar verbinden wir uns von unseren Rechnern (auf denen z.B. Windows läuft) mit dem Linux-Server. Für die Verbindung nutzen wir das SSH-Protokoll, damit die Verbindung vollständig verschlüsselt wird. Wenn wir uns über SSH mit dem Linux-Server verbinden, dann bekommen wir die Kommandozeile von Linux angezeigt und können auf dem Linux-Server arbeiten, als wir ob direkt davor sitzen.
In diesem Seminar verbinden wir uns von unseren Rechnern (auf denen z.B. Windows läuft) mit dem Linux-Webserver. Für die Verbindung nutzen wir das SSH-Protokoll, damit die Verbindung vollständig verschlüsselt wird. Wenn wir uns über SSH mit dem Linux-Webserver verbinden, dann bekommen wir die Kommandozeile von Linux angezeigt und können auf dem Linux-Webserver arbeiten, als wir ob direkt davor sitzen.
## Schritt 1: Verbinden
### mit Windows
Verbinden mit dem Server über SSH-Protokoll mit der kleinen Software [Putty](http://www.putty.org):
* putty.exe von http://www.putty.org herunterladen und ausführen
@ -22,9 +23,16 @@ Verbinden mit dem Server über SSH-Protokoll mit der kleinen Software [Putty](ht
* ssh *user*@*ip* (Beispiel: ```ssh felix@192.168.1.1```)
* siehe auch: http://macs-moritz.com/ssh-verbindung-via-terminal-unter-mac-os-x
### über die Weboberfläche von TurnKey Core
Wenn Sie in Schritt 3.1 Turnkey Core installiert haben, dann können Sie auch das Web-Terminal aufrufen. Beispiel: https://192.168.1.1:12320 (192.168.1.1 durch die IP-Adresse ersetzen)
### über die Web Shell von TurnKey Core
Wenn Sie in Schritt 3.1 TurnKey Core installiert haben, dann können Sie in den folgenden Übungen auch die bekannte Web Shell aufrufen:
https://192.168.1.1:12320
192.168.1.1 durch die IP-Adresse ersetzen und Warnmeldung zu ungültigen SSL-Zertifikatswarnung ingnorieren bzw. Ausnahmeregelung einrichten.
Im Firefox-Browser gibt es Schwierigkeiten einige Sonderzeichen wie ```|``` einzugeben. Verwenden Sie bei Bedarf stattdessen den Chrome-Browser.
## Schritt 2: Neues Passwort setzen
1. Sicheres Passwort unter http://passwordsgenerator.net/ generieren (Empfehlung: Checkbox "Exclude Ambiguous Characters" aktivieren, das macht es leichter das Passwort einzutippen)
1. Sicheres Passwort unter http://passwordsgenerator.net generieren (Empfehlung: Checkbox "Exclude Ambiguous Characters" aktivieren, das macht es leichter das Passwort einzutippen)
2. Passwort setzen mit dem Befehl ```passwd```

View File

@ -18,7 +18,7 @@ Welche Linux-Kommandos liefern die Antworten auf die folgenden Fragen? Ein Teil
Lösung: {%s%}free -h{%ends%}
### 2. Wieviel Festplattenspeicher ist auf dem System frei?
Lösung: {%s%}df -H{%ends%}
Lösung: {%s%}df -h{%ends%}
### 3. Welche(r) Prozessor(en) stehen dem System zur Verfügung?
Lösung: {%s%}lscpu{%ends%}
@ -42,5 +42,4 @@ Lösung:
### 8. Welche Netzwerkverbindungen sind gerade aktiv?
Lösung:
* {%s%}netstat -i{%ends%}
* {%s%}netstat -r{%ends%}
* {%s%}netstat{%ends%}

View File

@ -6,5 +6,4 @@
* Beenden mit *Ctrl+X*
## Schritt 2: Anzeige von Dateien mit cat
* ```cat readme.txt```
* ... mit Bildschirmseiten für größere Dateien: ```cat readme.txt | less```
* ```cat readme.txt```

View File

@ -1,11 +1,16 @@
# 3.6 Übung: Text durchsuchen und Wörter zählen
## Schritt 1: "War and Peace" von Leo Tolstoy herunterladen
## Schritt 1: "War and Peace" von Leo Tolstoy herunterladen und anzeigen
* ```curl http://www.gutenberg.org/files/2600/2600-0.txt > war_and_peace.txt```
* ```cat war_and_peace.txt | less```
Der Anhang ```| less``` am zweiten Befehl zeigt den Text so an, dass Sie mit den Pfeiltasten scrollen können. Beenden können Sie die Ansicht mit der Taste ```q```.
## Schritt 2: Zeilen, Wörter und Zeichen zählen mit wc
* ```wc war_and_peace.txt```
Die drei Nummern sind Zeilen, Wörter und Zeichen (in dieser Reihenfolge).
## Schritt 3: Suche nach Vorkommnissen der Wörter "war" and "peace"
* ```cat war_and_peace.txt | grep -i -ow war | wc```
* ```cat war_and_peace.txt | grep -i -ow peace | wc```

View File

@ -51,6 +51,7 @@ Vergleich picaxml mit marcmxl/dc/mods:
* picaxml vs. mods: {%s%}diff -u 834422018.picaxml.strip 834422018.mods.strip{%ends%}
Grafischer Vergleich picaxml mit marcxml/dc/mods:
* Installation vim: {%s%}sudo apt-get install vim{%ends%}
* picaxml vs. marcxml: {%s%}vimdiff 834422018.picaxml.strip 834422018.marcxml.strip{%ends%}
* picaxml vs. dc: {%s%}vimdiff 834422018.picaxml.strip 834422018.dc.strip{%ends%}
* picaxml vs. mods: {%s%}vimdiff 834422018.picaxml.strip 834422018.mods.strip{%ends%}

View File

@ -224,7 +224,7 @@ Das Script benötigt für einen Komplettdurchlauf etwa 6 Stunden. Sie werden als
## Lösung
(1) Prüfung Dateigrößen:
* a) alle: {%s%}du -h{%ends%}
* a) alle: {%s%}du -a -h{%ends%}
* b) die kleinste(n): {%s%}ls -1 -s -S{%ends%}
* c) Auffälligkeiten: {%s%}achten Sie auf kleine und gleiche Dateigrößen, ebenfalls mit ls -1 -s -S{%ends%}
@ -235,4 +235,4 @@ Das Script benötigt für einen Komplettdurchlauf etwa 6 Stunden. Sie werden als
(3) Dubletten ausgeben:
* a) welche: ```grep -h "<controlfield tag=\"001\">" *.marcxml | sed 's/<[^>]*>//g; s/^ *//' | uniq -D```
* b) wieviele: ```grep -h "<controlfield tag=\"001\">" *.marcxml | sed 's/<[^>]*>//g; s/^ *//' | uniq -c -d```
* c) wo: ```grep -h "<controlfield tag=\"001\">" *.marcxml | sed 's/<[^>]*>//g; s/^ *//' | uniq -D | grep -f - *.```
* c) wo: ```grep -h "<controlfield tag=\"001\">" *.marcxml | sed 's/<[^>]*>//g; s/^ *//' | uniq -D | grep -f - *```