• debian.dedebian.de

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

  • Debian InstallerDebian Installer

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)

    DistroAbleger der DistroPaketmanagement
    Red Hat
    (Link)
    Fedora, CentOS
    Kaufversion: RHEL
    RPM (Red Hat Package Management)
    Standardtool: rpm
    Novell (Suse)
    (Link)
    openSUSE (Link)
    Kaufversion: SLES
    RPM
    mit YaST2-SW-Verwaltung, zypper, yum
    Debian
    (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

 

  • VirtualBoxVirtualBox
  • Debian PortalDebian Portal
  • DownloadsDownloads
  • PartitionenPartitionen
  • taskseltasksel
  • Debian InstallerDebian Installer

Tag 02 - Di

  • aptitudeaptitude

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)

 

  • apt-cache dependsapt-cache depends
  • aptitudeaptitude
  • vim Anleitungvim Anleitung
  • Virtual DisksVirtual Disks
  • tasksel in shelltasksel in shell
  • vimvim

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

  • GRUB2GRUB2

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
    boot-grub-600px
    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
    user-600px
    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)

 

  • hwinfo --framebufferhwinfo --framebuffer
  • GRUB2GRUB2
  • Konsolen-FontKonsolen-Font
  • PuttyPutty
  • WinSCPWinSCP
  • ssh Konsolessh Konsole

Tag 04 - Do

  • nfs Servernfs Server

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

 

  • .bashrc.bashrc
  • mcmc
  • nfs Servernfs Server
  • NFSNFS
  • hostshosts
  • toptop

Tag 05 - Fr

  • phpMyAdminphpMyAdmin

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 = yes
    
    testparm (Testlauf für Samba)
    smbclient -N -L <servername>
    samba-600px
    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)
    amp-600px
    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

 

  • apache2apache2
  • interfacesinterfaces
  • mysql Clientmysql Client
  • SWATSWAT
  • Apache läuftApache läuft
  • phpMyAdminphpMyAdmin

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