An der VHS Braunschweig findet ab dem 28.10.2013 ein Spezial-Seminar mit dem Thema "Linux Server Workshop" statt. Aus den Reihen und Teilnehmern der Zertifikatsreihe "Fachkraft IT-Systeme und Netzwerke" wurde eine Interessentenliste erstellt, die jetzt zu einem Seminar an der VHS Braunschweig führte.
Das Seminar soll die Informationen zum Thema "Linux" (siehe Modul des FITSN) vertiefen und weiter führen: Linux als Serversystem. Hierzu werden wir uns alle notwendigen Themen für diesen Einsatzzweck vornehmen und dann die Serverdienste erfolgreich implementieren und nutzen. Für den Einsatz als "Server" gibt es unterschiedliche Linux-Distributionen und wir werden uns den "Marktführer" vornehmen: Debian. Aber natürlich können die Umsetzungen auch in einer alternativen Umgebung wie openSUSE umgesetzt werden.
Ort: VHS Braunschweig, Heydenstraße 2, Raum 2.03
Zeiten: Mo, 28.10. bis Fr, 01.11.2013; jeweils 08.30 - 16.00 Uhr
Ich freue mich auf ein anregendes Seminar und werde die Inhalte an dieser Stelle ausführlich begleiten.
Ihr Trainer Joe Brandes
Tag 01 - Mo
Montag, 28.10.2013, 08.30 - 16.00 Uhr
- Orientierungsphase, TN-Themen, Woche planen (nichts geht über eine guten Plan ;-)
Anm zu TN-Themen: PXE-Boot zur Installation und Verteilung - Distributionen
der Kernel (siehe www.kernel.org) ist das eigentliche Linux - oder besser gesagt GNU/Linux; aber mit Hilfe einer Distro erhalten Sie komplette Sammlungen und Tools von der Installation bis zur Verwaltung des Systems; ausführliche Übersichten zu Distros z.B. über www.distrowatch.com (beeindruckende Übersicht und Masse)
Distro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora, CentOS
Kaufversion: RHELRPM (Red Hat Package Management)
Standardtool: rpmNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu(s) DEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt-get, apt-cache, ... , aptitude
Entscheidung für Debian wegen Marktführerschaft im Bereich Server Internet/Intranet und Konzentration auf Stabilität und Zuverlässigkeit - aber wie schon gesagt: gerne auch im Laufe der Woche alternative Linux-OS möglich. Mein "Roter Faden" aber wie gesagt "Debian". - Debian Versionen
7 - Wheezy; 6 - Squeeze; 5 - Lenny; 4 - Etch (Charaktere aus Toy Story)
Varianten: stable, testing, unstable (und oldstable)
Versionen ab Squeeze (7.x) aktualisiert mit 7.1, 7.2, ... (statt früher 7.0.1, 7.0.2, ...)
Unterschiedliche Quellen (Web/http, FTP-Server) und Download-Techniken (Bittorrent, jigdo) - Debian Installation
Installation von Debian 7.2 (amd64) auf Wechselplatten von Trainer und TN-PCs
Stichworte: Grundinfos zu Partitionierung und Bootmanagement /dev/hda vs. /dev/sda
Mountpoints (/, /home, /var, /usr, /tmp), LVM (Logical Volume Management); Grundinstallation (Abwahl aller Posten in tasksel) also: Rohinstallation
Server von "Grund-Auf" installieren und dann zielgerichtet aufrüsten und optimieren
VirtualBox: Nutzung von Virtuellen Maschinen zum Testen und Implementieren der Techniken und Netze - deb Paketmanagement
*.deb (vs. *.rpm mit openSUSE YaST2-Tool, zypper, yum und Basistool rpm)
mit Tool dpkg (Basistool)
Achtung: dpkg löst keine Abhängigkeiten auf!
Hinweis: Standard-Pager aktuell more; Pager less bereitstellen mittels:
apt-get -d install less cd /var/cache/apt/archives ls less*
zeigt das Paket im Verzeichnis der apt-Archive
installieren:
dpkg -i lessTAB
Anm.: TAB/Tabulator komplettiert
Anm.: hier ohne Probleme, da keine Abhängigkeit von nicht vorhandenem Paket
dpkg Aufrufe: (bitte genau auf Groß/Kleinschreibungen achten und Einsatz bei installierten bzw. nichtinstallierten Paketen)
dpkg -i (Install-Infos für installierte Pakete bzw. installieren)
dpkg -I (Install-Infos für nichtinstallierte Pakete)
dpkg -c (Dateien für nichtinstalliertes Paket)
dpkg -s (Infos über installiertes Programm)
dpkg -L (Dateien für installiertes Paket)
Paket entfernen:
dpkg -r <paketname> (Konfigurationen bleiben)
dpkg -P <paketname> (ALLES inkl. Konfiguration entfernen)
Pakete auf System auflisten:
dpkg -l
dpkg -l | more (filtern, natürlich jetzt auch | less)
Pakete suchen auf System:
dpkg -S mount (als Beispiel)
Gegenbeispiel (weil es abhängige Pakete gibt, die eben gerade fehlen - hier eine Bibliothek libpcap0.8):
apt-get -d install tcpdump
dpkg -i tcpdumpTAB führt zu Fehler bei Abarbeitung der Installation; besser also die folgenden apt-Tools nutzen, die uns gleich auch noch die Abhängigkeiten auflösen und automatisieren - apt Tools
Installation inklusive Abhängigkeiten mittels Werkzeug apt-get
apt-get install tcpdump
apt-get remove <paketname> (Entfernen exkl. Konfigurationen; entspricht -r)
apt-get --purge remove <paketname> (gründliches Entfernen; entspricht -P)
Konfiguration von apt-get (Paketquellen) in Datei sources.list:
/etc/apt/sources.list
System aktualisieren:
apt-get update # (Paket-DB aktualisieren) apt-get upgrade # (Aktualisierung durchführen)
- Konsole - Shell
Prompt beachten: # für root und $ für user
Homeverzeichnis durch ~ (Tilde) gekennzeichnet,
pwd (print working directory) zeigt aktuelles Verzeichnis an
Virtuelle Konsolen: Alt + F1 ... F6 (bzw. mit Grafik mittels Strg + Alt + Fx)
Konsole "löschen": clear screen bzw. Strg + L
System herunterfahren
shutdown -h now
erste Schritte in der Shell mit Befehlen cd, cat, more, less inklusive Piping (weiterleiten an nächsten Shell-Aufruf mit |) - Editor
eine erste Übersicht: Standardeditor auf System: nano
Aufruf auch mit editor <dateiname> (aktuell eben nano als Standardeditor konfiguriert)
Ausblick: morgen analysieren welche Editoren noch installiert sind und weitere Editoren (vim) nachinstallieren und aufrüsten
Tag 02 - Di
Dienstag, 29.10.2013, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- apt Tools (Forts.)
Installation und Entfernen von Software: (apt Quellen Konfiguration: /etc/apt/sources.list)
apt-get install <paket> # Installieren (inkl. Abhängikeiten) apt-get remove <paket> # Entfernen (inkl. Abh.) - energisches Entfernen mit --purge
Tool: apt-cache
apt-cache search <begriff> # (Suche im Paket-Cache) apt-cache search sniffer apt-cache show <begriff> # (Detaillinfos zu Paket) apt-cache show wireshark apt-cache depends <begriff> # (Abhängigkeiten zeigen) apt-cache depends wireshark
Tool: aptitude (auch mit Suchen Funktion
spezieller apt-get Aufruf: (mit äußerster Vorsicht und nach Komplettsicherungen durchführen!)
apt-get dist-upgrade # (führt Distributionsupgrade durch - Debian 6 -> 7
Bei Dist-Upgrade auch die Besonderheit der verlinkten apt-Quellen (sources.list) beachten bei Fremdquellen
Tool: tasksel (aus Installation bekanntes "Gruppen-Installationstool) - Benutzer abmelden
mit exit (beendet man jede "Shell/Umgebung" oder mit logout (funktioniert nur für die Login-Shell, in der man sich angemeldet hat - Textdateien betrachten: (kleine Zusammenfassung)
more (einfacher Pager)
less (besserer Pager - mit v zum Standardeditor)
cat (concatenate - eigentlich Texte zusammenfügen)
head -n40 (die ersten 40 Zeilen)
tail -n40 (die letzten 40 Zeilen; mit -f ständig aktualisiert) - Editoren (nano, vi/vim, emacs und Co)
mit aptitude die installierten Editoren analysieren: installierte Pakete - Editoren - main - nano, vim.tiny)
editor (Standard-Link auf Standard-Editor)
Analysiere: /usr/bin/editor ist symbolischer Link (Verknüpfung)
auf /etc/alternatives/editor und das ist ein Link auf /bin/nano
Übung: vollständigen Vim nachinstallieren mit
apt-get install vim vim-doc gpm
Anm.: mittels gpm dann auch Maus in Konsole!
Beachten: mit Taste v kommt man aus Pagern in Standard-Editor! - vim (Special in eigenem Tab)
der "Vi improved" gehört als Arsenal in die Server-Admin-Toolbox; eine Extra-Übung durchgeführt für das Management auf der Konsole (Tools nachinstalliert, Ordnerstrukturen erstellt, Dateien per Konsole down-geloadet ;-) - Hilfen (Online im System)
man (Man-Pages mit unterschiedlichen Kategorien)
Kategorien: 1 Benutzerkommandos; 2 Systemaufrufe (Systemcalls); 3 Bibliotheksaufrufe; 4 Spezielles (z.B. Geräte); 5 Formate Konfigurationsdateien / Konventionen
6 Spiele; 7 Makropakete; 8 Systemadmininstrationskommandos; 9 Kernel
siehe Verzeichnisstruktur /usr/share/man
man -a <befehl> zeigt alle Kategorien an
whatis (Kurzsuche in man-Pages)
apropos (Suche inklusive Kurzbeschreibungen)
info (GNU System basierend auf Hyperlinks)
oder direkt in mit den Befehlen mittels befehl --help - Mounten (Dateisysteme)
Befehle mount und umount
Dateisysteme: auto, ISO9660, UDF, VFAT, NTFS, NFS
/dev/cdrom ist Symlink auf /dev/hdc (bzw. heute /dev/sr0)
Anm.: ls -l /dev/cdrom (oder /dev/dvd); Beispielhafte Aufrufe:
mount -t auto /dev/cdrom /media/cdrom umount /media/cdrom
mount (ohne Parameter zeigt mount-Status)
/etc/fstab (Anweisungen für das Einbinden der Dateisysteme beim Systemstart)
/etc/mtab (aktuell eingebundene Dateisysteme)
Tag 02 - vim
[Nachtrag Nov 2015] Die Vorgehensweisen wurden aktuell unter Debian 8.2 durchgetestet und können im Beitrag "Linux Server Workshop /VHS BS / 02. - 06.11.15" (Link) im entsprechenden "Vim Special" nachgelesen werden!
Jeder Server-Admin sollte einen leistungsfähigen Konsolen-Editor beherrschen. Da gibt es dann natürlich auch wieder alte "Fehden" zwischen den emacs-Usern und den vi-Fanatics. Hier möchte ich eine kurze Einführung in vim darstellen, die natürlich keinesfalls den Anspruch auf Vollständigkeit erhebt!
Die Teilnehmer können (konnten) jedenfalls mit den folgenden Kurzanleitungen einen funktionsfähigen Einstieg in vim und dessen Erweiterungsmöglichkeiten erfahren.
Vorab eine kleine Übersicht / Linkliste mit Online-Infos und Quellen zum vim:
Home: http://www.vim.org/index.php
PDF: http://swaroopch.com/notes/Vim/#Download
Video:
http://www.derekwyatt.org/vim/vim-tutorial-videos/vim-novice-tutorial-videos/
http://vimcasts.org/
Tipps/Trick:
http://www.catswhocode.com/blog/130-essential-vim-commands
http://www.fprintf.net/vimCheatSheet.html
http://wiki.ubuntuusers.de/VIM
http://vimcheatsheet.com/
(preview: https://cdn.shopify.com/s/files/1/0165/4168/files/preview.png )
http://www.refining-linux.org/archives/20/13-Printable-vim-cheat-sheets/
Für TN werden/wurden Ausdrucke (DinA4 einseitig) zum Vim bereitgestellt aus den freien Quellen zum Thema!
Für die folgende Installation von Emmet (siehe emmet.io) müssen die Pakete git und curl nachinstalliert werden:
apt-get install git curl
Jetzt kann es losgehen - Pathogen (Vim Plugin Verwaltungs- und Automatisierungs-Tool für vim-Ordner bundle) bereitstellen:
(Anm.: die folgenden Schritte für den gewünschten User durchführen)
mkdir -p ~/.vim/autoload ~/.vim/bundle curl -Sso ~/.vim/autoload/pathogen.vim https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
Konfigurationsdatei vim für den User bereitstellen und mit nötigen Zeilen ausstatten:
vim ~/.vimrc
Minimalkonfiguration: (mit Aufruf für Pathogen, Syntaxhighlights on und Dateityperkennung und Einrückungen)
execute pathogen#infect() syntax on filetype plugin indent on
Für PlugIns Vim jetzt einfach in den ~/.vim/bundle Ordner und per git das *.vim bzw. *.git holen
Beispiel: Emmet (Vim Plugin - früher Zencoding)
cd ~/.vim/bundle git clone http://github.com/mattn/emmet-vim.git
Und schon steht emmet in vim zur Verfügung - Test mit z.B. html:5 Tastenkombinationsfolge "Strg+y ," ergibt HTML5-Code; html:xt ergibt Grundgerüst für XHTML Code
Weiteres PlugIn: NERDTree (PlugIn für ein Fenster im vim mit Dateimanagement)
cd ~/.vim/bundle git clone https://github.com/scrooloose/nerdtree.git
Anleitung Kopieren und Einfügen: (nur mit Tastatur - natürlich geht mit gpm auch markieren mit Maus und mittlere Maustaste fügt ein)
Kommandomodus v
Text mit Cursor markieren
mit y in Puffer (Zwischenablage) einfügen
an Stelle positionieren zum Einfügen (z.B. O für neue Zeile)
Einfügemodus (ESC)
mit p einfügen
Ok - ich gebe zu - ganz "normal" ist das nicht ;-) aber wenn man das erst einmal drin hat geht das alles rasend schnell und effizient.
Weitere kleine Beispiele: dd löscht Zeile ndd (mit n Anzahl Zeilen löscht gleich n Zeilen) ...
Viel Spaß mit dem vim!
Tag 03 - Mi
Mittwoch, 30.10.2013, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- Übung zu apt-Quellen:
contrib Quellen nachtragen in sources.list / update / upgrade (siehe aptitude) - Systemstart
Bootloader: LILO, GRUB/GRUB2
Grub2 arbeitet mit UUIDs (siehe /etc/fstab)
update-grub entspricht grub-mkconfig -o /boot/grub/grub.cfg
grub.cfg niemals editieren - sondern /etc/grub.d/41_costum
Grub2 Wissen: http://wiki.ubuntuusers.de/grub_2
Auflösung für Konsole ändern:
mit hwinfo (erst installieren apt-get install hwinfo) die Auflösungen ermitteln:
hwinfo --framebuffer
Die Auflösung im Grub-Menü wird in der Datei /etc/default/grub festgelegt.
Dazu öffnet man die Datei mit einem Editor mit Root-Rechten und passt die Auflösung des Monitors mit den zuvor ermittelten Werten an:
GRUB_GFXMODE=800x600x24 GRUB_GFXPAYLOAD_LINUX=keep
danach update-grub ausführen und Neustart zum Testen - Runlevel
runlevel (findet aktuellen Runlevel heraus)
Runlevel in Debian leicht anders als bei anderen Distro, die die RL 2 bis 5 nicht so streng getrennt werden.
Daemons (=Dienste=Services; Disk and Execution Monitor) pro RL
init # wechselt in anderen Runlevel
Beispiele:0 Systemhalt; S Single-User (Wartungsarbeiten); 1 Single-User-Mode; 2 Multi-User (Netzwerk bei Debian); 6 Systemneustart (Reboot)
init-Prozess mit id (PID) 1
/etc/inittab (analysieren: Start-Runlevel, Strg+Alt+Entf, ...)
dmesg (Systemstartmeldungen ausgeben)
Runlevel-Verzeichnisse:
/etc/rc0.d bis /etc/rc6.d und rcS.d (bei Debian!)
Skripte befinden sich in /etc/init.d
Skript-Parameter: start, stop, restart, reload, status
einfaches Tool: rcconf (Übung: nachinstallieren)
update-rc.d (zum klassischen Anpassen der Runlevel; nicht mehr nutzen sondern insserv)
aber heute besitzen Skript LSB-Header (Linux Standard Base) für abhängiges Abarbeiten innerhalb des Bootvorgangs (Dependency based boot sequence)
siehe LSB-Header cron (jobs)...
insserv (Tool für Auswertung inkl. LSB-Header)
apt-get install openssh-server
Modifikation mittels
insserv -r ssh (ssh aus allen Leveln entfernen) insserv ssh (sauber neu eintragen)
natürlich alles Testen und Einträge in den rc-Ordnern überprüfen - ssh Clients
unter Linux einfach
ssh username@<rechner-name-oder-ip>
unter Windows Putty (Link) oder WinSCP (Link) - Benutzerverwaltung

Benutzer erstellen:
Achtung: Debian erstellt standardmäßig für jeden Benutzer eine besondere Gruppe
useradd <username>(neuen Benutzer anlegen)
Homedirs werden aus /etc/skel "geclont"
Übung: Verzeichnis .vim und .vimrc aus funktionsfähigem Home-Dir kopiert und getestet
useradd -m -d <homedir-absolut> <username> (make spezielles Homedir)
useradd -c "Kommentar" <username> (Kommentar hinzufügen)
useradd -s <shell> <username> (Shell zuweisen /bin/bash, /bin/false)
useradd -u <uid> <username> (Zuweisen spezieller User ID, root hat 0, normale hochgezählte UserIds ab 1000; max bis 65534 nobody??)
Standardgruppe (eigentlich!) users mit gid 100; ggf.:
usermod -g users <username> (Einstellung der Hauptgruppe)
Andere Gruppen dann mit:
usermod -G <group1>,<group2>
/etc/passwd (Übersicht über User auf System)
<username>:x:<uid>:<gid>:<Kommentar>:<homedir>:<shell>
Anm.: die Shell(s) beachten
/etc/shadow (Passworte und Richtlinien)
Benutzer ändern: (usermod bei bereits existierendem user - s.o.)
usermod -d /<neuesdir> <username> (muss vorher angelegt und mit Rechten versehen werden!)
usermod -s <shellneu> <username> (andere Shell)
usermod -L (Lock; Benutzer sperren)
usermod -U (Unlock; Benutzer entsperren)
Benutzer löschen:
userdel <username> (nur Benutzerkonto löschen)
userdel -r <username> (Benutzer inklusive Homedir)
Gruppen erstellen:
groupadd <group>
groupadd -g <gid> <group> (mit Vorgabe einer gid)
Passwort erstellen:
passwd <username> (siehe /etc/shadow)
Kennwortrichtlinien:
chage <username> (Richtlinien anzeigen)
siehe auch Tools adduser, addgroup
Workshop: Einrichten von Benutzern
s.a. who, whoami, id, groups - Berechtigungen
chown (auch als Ersatz für chgrp)
chmod (Rechte setzen mit Buchstaben oder oktal)
Sonderrechte:
Set-UID (siehe ls -l /usr/bin/passwd)
so hat auch normaler User mit passwd die nötigen root-Rechte um /etc/shadow (Passworte) zu schreiben
setzen mit z.B. chmod 4755 /usr/bin/passwd
Set-GID (siehe chmod 2...)
Sticky-Bit (siehe ls -ld /tmp; mit chmod 1777 /tmp) - bash (Bourne Again Shell)
erste Übung mit .bashrc im Home-Dir: Farben und Abkürzungen (siehe l für ls -al) aktiviert
Hinweis auf dash als Standardshell auf Debian; beim Anlegen der User beachten (useradd bzw. usermod)
Tag 04 - Do
Donnerstag, 31.10.2013, 08.30 - 16.00 Uhr
- Rekapitulaition, TN-Fragen
- "Bibliothek" (Trainingsliteratur und Zeitschriften)
Debian Server Buch: Eric Amberg "Linux Server mit Debian 7 GNU/Linux"; mitp Verlag; Auflage: 2014 (20. Februar 2014); Sprache: Deutsch; ISBN-10: 3826682009 (Link Amazon); Autor hat auch bereits Bücher zu den Debian Versionen 4+5 (Etch + Lenny) und 5+6 (Lenny + Sqeeze) geschrieben
Zeitschriften (von Schwerpunkt her von Professional nach Standard-Benutzer): Linux Magzin (Link), Linux User (Link), Easy Linux (Link), Ubuntu User Magazin (Link)
Weitere Literatur in Seminar vorgestellt und zur Durchsicht bereitgestellt; eine gesonderte Aufbereitung im Schwerpunkt Linux - Bibliothek folgt als Extra-Beitrag - Bash (Shell Forts.)
Konfigurationsdateien: /etc/profile; ~/.profile; ~/.bashrc
Strg + r für rekursive Suche in der Shell
~/.bash_history enthält die Aufrufe des Users
Aliasse (Befehl: alias)
Umgebungs-Variablen: $SHELL, $USER, $HOME, $PWD, $PATH
Tee leitet die Ausgabe als Verzweigung weiter
Umleitungen mittels > oder >>
Pipes (Verkettungen) mit | und als bedingte Verkettungen mit &&
Beispiel: make && make install && make clean (bei manuellen Programmerstellungen)
Patterns wie * oder auch eckige Klammern [1-3]
Escape-Sequenzen am Beispiel Leerzeichen für Datei: touch Neue\ Datei.txt
s. a.: export, set, PS1 (Path), - Suchen und Finden
find / -name palimpalim (alle Ordner palimpalim)
find /home -group users -type f
find /home -user joeb -mtime -3 (alle Dateien von joeb in home geändert in letzten 3 Tagen)
find / -user joeb -type f -exec rm -f {}; (alle Dateien von joeb finden und löschen)
locate (vorher apt-get install locate)
locate suchbegriff
updatedb & (Aktualisierung der Suchdb - im Background - Shell bleibt nutzbar) - Einzeiler (Beispiel)
dpkg -l | grep -i "ii m.*" | wc -l
ermittelt die Anzahl der installierten Paket, die mit m anfangen - System- und Festplattenmanagement
vmstat 2 10
top
free -m
uptime
uname -a
ps aux
ps ax | grep -i ssh
pstree (genauso wie für killall mit psmisc nachinstallieren; findet man am schnellsten mit apt-cache search pstree)
kill <pid> (mit -9, -15, -HUP)
killall <ps-name>
du (Disk Usage bzw. du -h und du -s)
du -h --max-depth=1
df (Disk Free bzw. df -h) - Netzwerk (ein wenig ;-)arp -a (Auflösung MAC in IP - "Leimprotokoll" zwischen ISO-Leveln 2 und 3)
ifconfig (Netzkonfiguration anzeigen; bzw. flüchtig konfigurieren)
route (Netzrouting anzeigen; bzw. flüchtig konfigurieren)
ping -c 10 www.bahn.de (bitte mit -c Anzahl der Pings angeben)
traceroute www.nytimes.com
netstat -nr (zeigt Routingtabelle)
netstat -a (zeigt Portbelegungen) - NFS
Installieren: apt-get install nfs-kernel-server
Verzeichnis erstellen: z.B. /install
Konfiguration: /etc/exports
Eintrag:
/install *(ro,sync)
Freigabe veröffentlichen mit
exportfs -a (oder gezielt mit exportfs <freigabename>)
Läuft Server nfs und co testen mit ps Aufrufen oder
rpcinfo -p
Start/Restart nfs-Server:
/etc/init.d/nfs-kernel-server start|restart
Grundinstallation empfohlen (auf Server und Client-Seite)
apt-get install nfs-common portmap
Verknüpfung: (Client-Seite mit angelegtem Mountordner z.B. /nfs_install
mount -t nfs 192.168.2.65:/install /nfs_install
showmount -e 192.168.2.65 (zeigt Export-Liste)
/etc/exports kann weiter spezifziert werden
/install 192.168.2.1(rw,sync) # spezieller Client und read and write (nfs restarten) /install 192.168.2.0/255.255.255.0(ro,sync) # Subnetz zuweisen
Optionen: root_squash, ..., sync nachschlagen (siehe man und Co)
bei mount gerne auch mit -o soft (statt standardmäßig hard) wichtig für den
Fall, dass nfs-Ressource mal weg ist, was öffnende Programme gerne mit Absturz quittieren
/etc/fstab
192.168.2.1:/install /nfs_install nfs ro,soft - /etc/hosts (manuelle Auflösung für Namen)
kleine Übung für Namen im LAN (linux01 bis linux 17)
bei Windows: c:\Windows\system32\drivers\etc\hosts
Tag 05 - Fr
Freitag, 01.11.2013, 08.30 - 16.00 Uhr
- Rekapitulationen, TN-Fragen
Einleitungen und Übersicht zu den Serverumgebungen und Daemons für den Freitag
Hinweis: bestimmte Darstellungen und weitergehende Installationen bleiben dem Zeitrahmen geschuldet - Samba
Name als "Wortspiel" zu Netzwerk-Protokoll SMB/CIFS
Installation der nötigen Packages für Client und Server plus Web-Adminitration:
apt-get install samba samba-common smbclient swat
Testen mittels:
ps ax | grep .*mbd netstat -tulpn | grep mbd nmblookup <servername> nmblookup <workgroup> # (siehe /etc/samba/smb.conf)
mit nackter smb.conf beginnen und aufrüsten - Beispiel-conf vorher natürlich sichern (mv - umbenennen)
[global] workgroup = BILDUNGSURLAUB security = share [test] comment = Testfreigabe path = /sambatest read only = no guest ok = yestestparm (Testlauf für Samba)
smbclient -N -L <servername>
Workshop für TN bereitgestellt um von "security = share" (mittlerweise deprecated) auf "security = user" umzurüsten
SWAT nutzen mit Browser http://<ip-adresse>:901 - LAMP System installieren
L(inux - Betriebssystem) A(pache - Webserver) M(ysql - Datenbankserver) P(HP - serverseitige Skriptsprache)
Standardinstallation auf den allermeisten Hosting-Angeboten - Apache (Webserver)
Hinweise auf LAMP System und Anleitungen im Web (z.B. Link)
apt-get install apache2
Hinweis auf vorgeschlagene Pakete:
apache2-doc apache2-suexec apache2-suexec-commmon (alles erst einmal weglassen)
Hinweis auf Module (Apache Module alias, autoindex, env, ...)
Apache Version: apache-mpm-worker; Vergleich mit prefork http://tinyurl.com/o6mqmze
Testen des Apache2 starts:
ps ax | grep -i apache
und natürlich die Ports:
netstat -tulpn
Port 80 hier für TCP6 was eben auch TCP4 einschließt
Testen mit telnet (apt-get install telnet) und per "get" Befehl Request versuchen (Ergebnis 501-Seite)
telnet localhost 80
mit Browser testen "It works!"; Browser für die Konsole: w3m (oder auch lynx)
Apache2 Struktur: /etc/apache2/apache2.conf und Unterordner/Linkstrukturen betrachten - MySQL (Relationales Datenbank Management System - RDBMS - DB-Server)
Insatallation (auch mysql-client und Co)
apt-get install mysql-server
hier wieder ein User root (jetzt aber DB-User)
Installation testen:
mysqlshow -p ps ax | grep mysql netstat tulpn
siehe Port 3306 und host 127.0.0.1
telnet localhost 3306 ergibt nur Antwort ohne echte Client/Servernutzung
DB-Übung:
mysql -p # (mit Passwort in DB) > SHOW DATABASES; > CREATE DATABASE bildungsurlaub; > USE bildungsurlaub; > SHOW tables; > CREATE TABLE testing ( -> ID SMALLINT NOT NULL AUTO_INCREMENT, -> name CHAR(25) NOT NULL, -> vorname CHAR(25) NOT NULL, -> PRIMARY KEY (ID)); > EXPLAIN testing; > INSERT INTO testing (name, vorname) ->VALUES ("Becker", "Boris"); > SELECT * FROM testing;DB-Administration:
mysqladmin -u root -p password <pass>
DB-Sicherung: Analyse von /var/lib/mysql (/bu)
msqldump -u root -p bu > backup-bu.sql mysql -u root -p bu < backup-bu.sql
Analyse der Dump-Dateien; Hinweis auf Komprimierung durch GZip - PHP (serverseitige Skriptsprache)
Installation durchführen:
apt-get install libapache2-mod-php5
automatisches Umschalten auf -prefork Apache Version; Jetzt könnte es losgehen s. Modul II CMSOD ;-)
Testskript: /var/www/test.php: (Aufruf mit Browser-URL <ip-webserver>/test.php
<?php phpinfo(); ?>phpMyAdmin geht jetzt auch:
apt-get install phpmyadmin
siehe reloading apache2; Aufruf: /etc/init.d/apache reload - Logging
Hinweis auf /var/log/syslog; Anzeige der letzten 40 Zeilen der Logdatei:
tail -n 40 /var/log/syslog
Tool zum Auswerten und Lesen der Logdateien: apt-get install logtool
tail -f /var/log/syslog | logtool cat /var/log/syslog | logtool -o html > /var/www/syslog.html
man könnte sich die Auswertungen gerne auch per Mail schicken lassen! - DNS (Domain Name System - eine Annäherung zum Seminarende)
FQDN (Fully Qualified Domain Name): server.subdom.domain.tld
in Zonendatei bitte noch einen . am Ende bedenken für ROOT-Level (gehört eigentlich auch zun FQDN!)
Begriffe: Zone (vs. Domain); Master und Slave; Caching Server (cached und leitet weiter); Forwarder (leitet nur weiter); Rekursiver vs. Iterativer Request; Forward und Reverse Lookups möglich
Installation des BIND (Berkely Internet Name Daemon):
apt-get install bind9
Testen:
ps ax | grep named netstat -tulpn | grep :53"\ "
siehe Transportprotokolle tcp/53 (für DNS Server) und upd/53 (für DNS Clients)
Verwaltungstool: rndc (muss extra installiert und konfiguriert werden)
DNS-Clients nachinstallieren: apt-get install dnsutils
eigene erste Zone erstellen (siehe db.* Dateien in /etc/bind) und in der BIND-conf (/etc/bind/named.conf/) eintragen
Zone/DNS testen: "nslookup - 127.0.0.1" oder mit dem Tool dig - TN-Unterlagen bereitstellen, TN-Bescheinigungen, Feedback und letzte Fragen
Vielen Dank für Ihr freundliches Feedback zum Ende des Seminars und Ihr Interesse an weiteren Seminaren - eine erste Mail zum Thema "Interessentenliste PowerShell" ist bereits bei mir eingegangen.
Ihr Trainer Joe Brandes


