• debian.dedebian.de

Dieser Workshop richtet sich an interessierte Teilnehmer, die tiefer in das Betriebssystem Linux eintauchen möchten und besonders mit eigenen Fragen und Wünschen die Inhalte des Workshops erweitern.

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 implementieren und nutzen. Für den Einsatz als "Server" gibt es unterschiedliche Linux-Distributionen und wir werden uns den "Marktführer" vornehmen: Debian.

Mögliche Inhalte::

  • Linux im Netzwerk
  • Infrastruktur (DNS- / DHCP-Server / LDAP-Verzeichnisdienst)
  • Linux als File- und Printserver
  • Web-Applikationen (Apache2 / FTP-Server)
  • Systemüberwachung und Network Monitoring

Hier die Rahmendaten unseres Seminars:

Ort: VHS Braunschweig, Raum 2.03
Zeiten: Mo, 07.11. bis Fr, 11.11.2016; jeweils 08.30 - 16.00 Uhr

Ich werde unser Seminar in diesem Beitrag wieder ausführlich begleiten...
Ihr Trainer Joe Brandes

 

Mo., 07.11.16

Montag, 07.11.16, 08.30 - 16.00 Uhr

  • Orientierungsphase, TN-Themen
    Installationsmedien: Wechselplatten und Debian 9 Stretch/Sid 64-Bit DVD
  • Technikprobleme Raum 2.03 (bzw. 2.11) VHS BS Infrastruktur - erkannt, diskutiert und gelöst:
    Problem 1) DHCP der VHS BS Infrastruktur war für Seminarräume 2.03 und 2.11 ausgefallen!
    Lösung: Admin VHS BS rekonfigurierte und startete DHCP-Server neu
    Problem 2) Reborn-Card der Rechner in Raum 2.03 "schützen" den MBR der Festplatten/Wechselplatten
    Lösung: Bootloader GRUB unserer Installationen nicht in MBR (/dev/sda) sondern in erste primäre Partition /dev/sda1 
  • Linux (oder eigentlich GNU/Linux)
    freier Betriebssystemkern (hier: monolithisch, wobei aktuelle Entwicklungen nicht mehr nur starr monolithisch vs. Microkernel lauten; siehe Wikipedia-Artikel Link)
    engl.: Kernel (siehe Website für den Kern auf kernel.org - Lizenz GNU Public License
    erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds)
  • Distributionen
    Debian - die Nummer 1 bei den Server-Betriebssystemen für Web-Services und Co
    Ableger: Ubuntu, Ubuntu-Varianten (Derivate: Kubuntu, Edubuntu, Mythbuntu, Xubuntu, Lubuntu, ...)
    Red Hat - Firma mit Serverlizenzen Red Hat Enterprise Linux (RHEL)
    Ableger: CentOS (Community Enterprise Operating System) oder für Privat-Anwender auch Fedora mit den offenen/freien SW-Paketen
    Novell - SLES Suse Linux Enterprise Server (SLES)
    Ableger: openSUSE - freie Community-Variante (siehe de.opensuse.org)
    mit Version 42.1 hat Novell die Entwicklungspfade von SLES und openSUSE zusammengelegt (s.a.u. Versionen: 13.1 - 13.2 - 42.1)
    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 "Debian"
    weitere Distributionen: ArchLInux, Linux Mint, Gentoo, Mandriva, ... - the list goes on and on (s. a.

  • Debian Versionen
    9 - Stretch (aktuell noch Testing: Sid)
    8 - Jessie, 7 - Wheezy; 6 - Squeeze; 5 - Lenny; 4 - Etch (Charaktere aus Toy Story)
    Varianten: stable, testing, unstable (und oldstable)
    Versionen ab Wheezy (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)
    Download wöchentlicher Testing-Variante http://cdimage.debian.org/cdimage/weekly-builds/  
    Download aktuelle Stable Version Debian 8.6 Jessie http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-dvd/
  • Installation von Debian 9 Stretch / 64-Bit 
    Wechselplatten und Install-Medium DVD an TN verteilt
    Anm.: Problem bei Netzwerktechnik wegen Ausfall des DHCP-Servers für Schulungsräume!
    Erkannt und Gebannt!
    Stichworte: Grundinfos zu Partitionierung und Mountpoints
    /, /home, /var, /usr, /tmp 
    und Bootmanagement /dev/hda vs. /dev/sda 
    Installation GRUB in /dev/sda1  (statt sonst klassisch /dev/sda - also MBR der Platte)
    siehe Problem: Rechner mit neuen Reborn-Karten in Raum 2.03 "schützen" den MBR von HDDs
    LVM (Logical Volume Management); Grundinstallation
    Paketauswahl (tasksel): Abwahl Standardeinträge in tasksel und Aktivierung ssh Service
    Anm.: Nutzung der Installationen im "Runlevel für Server: bei Debian also #2"
    Nachfrage/Hinweis: Nutzung von Virtuellen Maschinen zum Testen und Implementieren der Techniken und Netze (VirtualBox, VmWare, Hyper-V)
  • Netzwerkkonfigurationen
    Übersicht über die wichtigsten Ordner und Dateien::
    /etc/networks  (Netzwerke konfigurieren)
    /etc/hosts   (statische Namensauflösungen)
    Übung: lokale Rechner debian-01 bis debian-17 in die hosts-Dateien eingetragen
    /etc/resolv.conf   (DNS konfigurieren)
    a) Debian "Rohinstallation"
    Erklärung über Debian Wiki zur Netzwerkkonfiguration (Link)
    /etc/network/interfaces  (Konfiguration der Netzwerkadapter /dev/eth0, eth1 bzw. enp0s25, ... mit statischen oder DHCP Konfigurationen)
    b) Debian "Komplettinstallation" (also inkl. Desktop Gnome) nutzt den NetworkManager
    hier übernimmt die Konfiguration ein Gnome-Tool als Grafisches Frontend und der Daemon NetworkManager
    /etc/NetworkManager  (Hauptverzeichnis für Konfigurationen)
    /etc/NetworkManager/system-connections/verbindungsdatei   (Datei mit Konfiguration z.B. Wired Connection 1)
    Hinweis: Trainer hat "debian-15" entsprechend installiert/bereitgestellt
    c) Speziell bei openSUSE:
    NEU seit openSUSE 13.2: Wicked Service als Standardinstallation auf Desktop-Systemen (Anm.: bei Notebooks weiterhin NetworkManager als Standard)
    Nachtrag von Mittwoch / Tag 03:
    d) netconfig  (bei RHEL 5.5 oder eben auch aktuell unter openSUSE 42.1 Serverminimalinstallation)
    Konfigurationen in /etc/sysconfig/network-scripts  in Dateien wie ifcfg-eth0 , ifcfg-eth1, ...  (beispielhafte Installation)
    entweder manuell bearbeiten, oder entsprechende Tools der Linux-OS nutzen - hier also natürlich gerne auch YaST nutzen
  • Netzwerk (eine erste Einführung / Vorarbeit für die weitere Vernetzung in der Woche)
    ifconfig (Netzkonfiguration anzeigen; bzw. flüchtig konfigurieren)
    ip address show  (oder kurz: ip a s; Tipp: besser als ifconfig, da Befehl ip auch ohne Netzwerkkonfigurationen für die Adapter klarkommt und somit gerade bei problematischen Installationen auskunftsfreudiger ist)
    route (Netzrouting anzeigen; bzw. flüchtig konfigurieren)
    ip route show  (oder kurz: ip r s)
    ping -c 10 www.bahn.de (bitte mit -c Anzahl der Pings angeben)
    traceroute www.nytimes.com  (Routing der Pakete zu Ziel anzeigen)
    netstat -nr (zeigt Routingtabelle)
    netstat -a (zeigt Portbelegungen - gerne auch der Klassiker:)
    netstat -tulpen (lässt sich gut merken - oder?)
    lspci -v (zeigt Geräte - dann nach Ethernet suchen)
    hwinfo --netcard  (zeigt Zuordnung der Netzwerkadapter zu den Gerätekennungen; Paket: hwinfo)
  • Netzwerkanalyse / Netzwerkplanung
    Daten über aktuelles Netz gesammelt und Plan für Vernetzung und Dienste (Services) für spätere BU-Firma erstellt
    Genereller Plan: (Anm.: wird morgen weiter ausgearbeitet)
    Abkopplung des Seminarraum mit Hilfe eines Debian-basierten Routers (NAT-Routing) 
    und Implementierung von Netzwerkdiensten DHCP, NAT-Routing und DNS (Caching / Forward Lookup Zone / Reverse Lookup Zone - eigene lokale Domäne)
    Basisbefehle für die Analyse von Routing und Gateway Konfigurationen
    # ip route show
    # route -n
    # netstat -rn
    Tipp: achten Sie auf das "G" für die Anzeige für die Gateways
    Erinnerung: DNS wird mit /etc/resolv.conf  konfiguriert!
  • Hostname (Name der Maschine - Hinweis: keine Netztechnik)
    geändert über Datei /etc/hostname 
    Anzeige mittels
    # cat /etc/hostname
    # echo $HOSTNAME
    # hostname
    Empfehlung: hier dann ausnahmsweise mal Neustart spendieren!
  • Benutzer-"Wechsel" (eine Zusammenfassung)
    Switch User (su, su - mit Wechsel in das Home-Dir)
    sudo (quasi ein "Ausführen als") - muss extra konfiguriert werden (siehe Gruppe sudoers und Konfigurationen in /etc/sudo)
    Anm.: in Debian Server/Rohinstallation nicht an Bord!
  • apt Tools
    Suchen im "Cache"
    apt-cache search suchbegriff
    Installation inklusive Abhängigkeiten mittels Werkzeug apt-get
    apt-get install mc    # installiert auch gleiche mc-data
    
    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
    Übung: die Install-DVD aus der sources.list deaktiviert (auskommentiert), dabei man sauber Software aus den Online-Quellen installieren/aktualisieren kann!
    System aktualisieren: (besonders auch nach einer Änderung an der sources.list !)
    apt-get update # (Paket-DB aktualisieren)
    apt-get upgrade # (Aktualisierung durchführen)
    apt-get install mc # (Installation Midnight Commander)
  • 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 Grafikoberflächen/GUIs mittels Strg + Alt + Fx)
    Konsole "löschen": clear screen bzw. Strg + L
    ans Ende mit Strg + E, an den Anfang mit Strg + A
    Löschen der Zeile ab Cursor: Strg + K
    System herunterfahren
    shutdown -h now    # oder
    poweroff
    erste Schritte in der Shell mit Befehlen cd, cat, more, less inklusive Piping (weiterleiten an nächsten Shell-Aufruf mit |)
  • Schrift in Konsole anpassen
    als root (SuperUser - UserID 0)
    dpkg-reconfigure console-setup
    eine Schriftart (Font) nach Wahl einstellen; hier für mich als Trainer wichtig, damit die "Terminals" am Beamer vernünftig erkennbar sind
  • Benutzerprofile mit der ~/.bashrc
    Übung: für Benutzer root mittels seiner /root/.bashrc  die Konfigurationen zur Nutzung des Syntaxhighlighting auskommentieren und die vorbereiteten Aliase nutzen
    zum Beispiel: beim root die Interaktivität (Nachfrage) für das Löschen mit rm aktivieren
    alias rm='rm -i'
    So würde man immer eine Nachfrage bei Löschvorgängen erhalten
  • Hilfen in Shell (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 Verzeichnisstrukturen:  /usr/share/man 
    man -a <befehl> zeigt alle Kategorien an - oder einfach man man
    whatis (Kurzsuche in man-Pages);
    Tipp:
    whereis für Ort der Dateien im System (inkl. man-Pages)
    apropos (Suche inklusive Kurzbeschreibungen)
    info (GNU System basierend auf Hyperlinks)
    oder direkt in mit den Befehlen mittels befehl --help
  • ssh (ein erster Test und Überblick)
    unter Linux einfach in der Konsole direkt nutzen
    ssh username@<rechner-name-oder-ip>
    # Dienststatus ssh abfragen:
    systemctl status sshd.service
    unter Windows brauchen wir natürlich einen ssh-Client:
    Klassiker Putty (Link) oder WinSCP (Link) -
    Empfehlung: MobaXterm (Link)

 

  • root Passwortroot Passwort
  • MobaXtermMobaXterm
  • hwinfohwinfo
  • NetzwerkanalyseNetzwerkanalyse
  • systemd - systemctlsystemd - systemctl
  • /etc/network/interfaces/etc/network/interfaces

 

Di., 08.11.16

Dienstag, 08.11.16, 08.30 - 16.00 Uhr

  • Ausführliche Rekapitulation zu Tag 01 - Plan für die Woche weiter spezifieren (s. a. Netzplan), TN-Fragen
    Übungen zu ssh von Windows und Linux Rechnern aus
    Empfehlung: MobaXterm
  • ssh (Fortsetzung)
    unter Linux einfach in der Konsole direkt nutzen
    ssh -X username@<rechner-name-oder-ip>  # ssh-Verbindung mit X-Server - also grafische Fenster möglich!
    unter Windows brauchen wir aber einen ssh-Client mit X-Server:
    MobaXterm nutzen oder Installation von Umgebungen wie Cygwin
  • Übung Netzwerktechnik
    Konfiguration der Debian-Systeme auf klassische statische Konfigurationen mit Hilfe der
    Konfigurationsdatei /etc/network/interfaces
    hier Auszug aus der Konfiguration:
    ...
    auto enp0s25
    allow-hotplug enp0s25
    iface enp0s25 inet static
    address 192.168.3.117
    netmask 255.255.255.0
    gateway 192.168.3.1
    ...
    Für die Konfiguration mittels DHCP war es:
    ...
    auto enp0s25
    allow-hotplug enp0s25
    iface enp0s25 inet dhcp
    ...
    Für diese Netze bitte auch Tools beachten: ifup, ifdown 
    Beachten: bei Verwendung von NetworkManager (z.B. unter Gnome-Desktop) dann bitte abweichende Konfigurationsdateien beachten, die häufig auch möglichst nicht manuell bearbeitet werden sollten (siehe: /etc/NetworkManager/system-connections/Wired connection 1  )
    In der Übung auch gleich die Rechnernamen / Hostnames in Ordung gebracht (bu-debian-XY - XY=Platznummer 2-stellig) und die /etc/hosts aktualisiert/korrigiert
  • deb Paketmanagement
    *.deb (vs. *.rpm mit openSUSE YaST2-Tool, zypper, yum und Basistool rpm)
    Übersicht in Extra-Beitrag auf dieser Website: Paketmanagements RPM vs. DEB  
    Tool dpkg (Basistool)
    Achtung: dpkg löst keine Abhängigkeiten auf!
    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 | less
    dpkg -l | grep openssh
    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 dann also zu Fehler bei Abarbeitung der Installation;
    Empfehlung:
    besser also die folgenden APT-Tools nutzen, die uns gleich auch noch die Abhängigkeiten auflösen und automatisieren
  • APT-Tools
    Suchen im "Cache"
    apt-cache search suchbegriff
    Installation inklusive Abhängigkeiten mittels Werkzeug apt-get
    apt-get install mc    # installiert auch gleiche mc-data
    apt-get remove <paketname> # (Entfernen exkl. Konfigurationen; entspricht -r)
    apt-get --purge remove <paketname> # (gründliches Entfernen; entspricht -P inkl. Konfigurationen)
    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)
    apt-get dist-upgrade # (Distro upgraden - von Debian 8.6 auf Debian 9)
    Weiteres Tool aus der APT-Toolfamilie: aptitude  (kann einfach nachinstalliert werden)
  • Prozesse (ein erster Einblick)
    Tool: ps;
    Aufgabe: läuft der OpenSSH-Service? Besser später dann mit den systemd-Tools...
    ps ax | grep sshd
    Urprozess/erster Prozess/init-Prozess: bei Debian systemd mit Prozess-ID 1
    Ordner:/proc  mit den Verzeichnisse für die Verwaltung der Prozess und Infodateien
    cat /proc/meminfo 
    zeigt uns die Speichernutzung; alternativ /proc/cpuinfo  (für Infos zur CPU)
    Tool zu Prozessen: pstree -p  (zeigt die Prozesse als Baum inkl. Prozess IDs)
    Übung: Nachinstallation mittels Recherche mit APT-Tools ergibt Paketinstallation psmisc
  • Runlevel vs. Targets
    Erläuterungen Online (Link 1 - Link 2)
    Vergleich der klassischen Runlevel mit Targets; gemeinsame Tools: init (bzw. telinit), runlevel
    aber: bei systemd (Targets) heißt das Haupttool systemctl (und nicht sysctl)
    Beispielaufrufe:
    systemctl isolate multi-user.target   # in Runlevel 2/3/4 wechseln - siehe init 2   
    systemctl get-default   # Standard anzeigen lassen  
    systemctl isolate graphical.target  # in Runlevel 5 wechseln - siehe init 5  
    Andere wichtige Aufrufe für systemctl: start, stop, enable, disable, ... (siehe man-Pages)
    Übersicht über die Services, die mit systemd verwaltet werden:
    systemctl --type=service  
    Standard-Target ("Default-Runlevel/Target") über das Neuanlegen der entsprechenden Symbolischen Links (siehe ln -s)
    Wichtig: bei systemd gibt es keine /etc/inittab mehr!
    systemd-Tools: einfach systemd TabTab führt z.B. systemd-analyze blame  (Analyse des Start-/Init-Vorgangs)
    Mehr Aufrufe und Vergleich mit SysVinit mit Linux-Befehlsreferenz auf diesem Portal
  • Installation bu-router  durch Trainer
    ein openSUSE 42.1 Konsolensystem für Darstellungen mit RPM und wegen Hardwarekompatibilität
    Router-PC besitzt zwei NIC (Network Interface Card)

 

  • /etc/hosts/etc/hosts
  • Administrator HandbookAdministrator Handbook
  • aptitudeaptitude
  • dpkgdpkg
  • Targets - ServicesTargets - Services
  • systemctlsystemctl

 

Mi., 09.11.16

Mittwoch, 09.11.16, 08.30 - 16.00 Uhr

  • Rekapitulation, TN-Fragen
  • Benutzer verwalten:
    Anmerkung: Debian erstellt standardmäßig für jeden Benutzer eine besondere Gruppe gleichen Namens
    Grundbefehl: useradd <username>   (neuen Benutzer anlegen)
    beispielhafter 2-Zeiler für Standarduser (siehe useradd -D  - zeigt die Defaults/Vorgaben für User) mit Home-Dir und Passwort:
    # useradd -m -c "Teilnehmer 01" -s /bin/bash tn01  
    # passwd tn01
    Homedirs werden aus Verzeichnis /etc/skel mit Parameter -m "geclont / make Homedir"
    Standardeinstellungen für neue User werden über /etc/default/useradd  konfiguriert!
    Anzeige der Standards für neue User mit useradd -D 
    Ändern der primären Gruppe mit usermod -g  (beachten: kleines g!)
    Andere Gruppen dann mit: usermod -G <group1>,<group2>  
    Benutzerdatei: /etc/passwd 
    Übersicht über User auf System:
    <username>:x:<uid>:<gid>:<Kommentar>:<homedir>:<shell>
    Anm.: die Shell(s) am Ende beachten
    Passwort- und Benutzereigenschaften: /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 (nicht bei allen Linux-Distros vorhanden - bitte mal schauen; techn.: Perl-Skript)
    Workshop/Übungen: Einrichten von Benutzern; s.a. who, whoami, id, groups
  • Tools für Berechtigungen
    chown (auch als Ersatz für chgrp mit chown user:group)
    chmod (Rechte setzen mit Buchstaben oder oktal)
  • Dateiberechtigungen
    in detaillierter Liste (ls -l  ) die Berechtigungen r (read), w (write), x (eXecute)  für
    Benuzter/Besitzer (u - user), Gruppe (g - group) und "alle Anderen" (o - others) hergeleitet,
    Berechtigungen in der (oktalen) Form 755 oder 644 erläutert,
    Befehl chmod eingeführt und nachrecherchiert
    Für chmod (Change Modus) an Unterordnern muss -R (Achtung: hier großes R für --recursive) gesetzt werden.
    Spezielle Berechtigungen:
    SetUserID -  Beispiel: /usr/bin/passwd (zum Passwort-Wechseln/Erstellen) - chmod u+s - chmod 4644
    so hat auch normaler User mit Tool passwd die nötigen root-Rechte um /etc/shadow (Passworte) zu schreiben
    SetGroupID - chmod g+s - chmod 2644
    StickyBit - Beispiel Ordner /tmp - chmod o+t - chmod 1755
  • Übungen zu Dateien und Ordnern in der Konsole
    Befehle: cd , ls , mkdir , mv , cp , ln , rm  
    Symbolische bzw. Softlinks mit ln -s  (Verknüpfungen zu Dateien oder Ordnern)
    Hardlinks ohne den Schalter -s  (Verweis auf Datei; funktioniert nur auf demselben Blockgerät - also der selben Partition!)
    Hinweis auf Datenträgerverwaltung mittel Inodes: ls -ali
    so klären sich auch die Zahlen in der Spalter für "User / Gruppe": 3 bedeutet, dass es eben 3 Harte Links also Verweise auf dieselbe "Speicherstelle/Inodenummer" im Datenträgerverwaltungssystem gibt
    Tipp: alle Dateieinträge (Hardlinks auf dieselbe Inodenummer) finden und löschen:
    find /home/ -inum 262862 2> /dev/null -exec rm -f {} \;
    Hier: smarte Ausblendung von Zugriffs-/Berechtigungsproblemen (z.B. Nachbarordner oder lost+found): Fehlermeldungen werden mittels 2> ins Nichts umgelenkt
  • Benutzer- und Gruppenverwaltung (allgemein)
    Anzeige zu Benutzern mittels Befehlen whoami, who, id, groups
    Dateien der Benutzer/Gruppen: /etc/passwd, /etc/shadow, /etc/group
    Inhalte und Aufbau der Dateien erläutert und recherchiert; Rechte analysiert und Benutzer- und Gruppen-IDs kennen gelernt;
    weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard /bin/bash; speziell: siehe www-data: /bin/false), Sekundäre Gruppen
    Abschlussübung: neue Benutzer angelegt und angemeldet und getestet
    Tests mit gegenseitigen Zugriffen der Benutzer - ist "Lesen/Stöbern" in anderen Home-Dirs möglich?
    Verhindern mit Berechtigung 700 (bzw. bei Debian auch 750) für Home-Dirs (Anm.: root schließt man nie aus)
    Tools für Benutzer- und Gruppenerstellungen / Anpassungen:
    useradd , usermod , userdel , groupadd , groupmod , groupdel 
    Übungen zu Benutzern durchgespielt
    Anm.: Perl-Skript adduser unter Debian verfügbar
  • Netzwerkanalyse / Netzwerkplanung
    Daten über aktuelles Netz gesammelt und Plan für Vernetzung und Dienste (Services) für unsere spätere "BU-Firma" erstellt
    Generell:
    Abkopplung des Seminarraum mit Hilfe eines Linux-basierten Routers (NAT-Routing)  und dann
    Implementierung von Netzwerkdiensten DHCP  und DNS (Caching / Forwarding - eigene lokale Domäne)
    Hinweis Netzwerktechnik auf Router bu-router wegen verwendeter openSUSE 42.1 Serverinstallation: netconfig 
    Erläuterung wurde bei Seminartag 01 in den Abschnitt "Netzwerkkonfigurationen" mit aufgenommen!
  • NAT-Routing mit Netfilter/iptables
    Hinweis: SUSE-Systeme wollen eigentlich die SuseFirewall2 nutzen, diese Suse-FW haben wir nicht installiert, sondern nutzen den Standard mit Netfilter/iptables
    Tipp: für spätere nachhaltige Einstellungen zu den iptables das Paket iptables-persistent (bzw. netfilter-persistent) nachinstallieren
    Wir arbeiten erst einmal mit einfachen manuellen Inbetriebnahmen der nötigen FW-Regeln
    Für die folgenden Befehle bitte die richtigen Router-NICs beachten:
    eth1 : NIC für die WAN-Seite (192.168.3.201 / 24 ; StdGW: 192.168.3.1; DNS: 192.168.3.1)
    eth0 : NIC für die LAN-Seite (10.0.0.1 / 8)
    1) Forwarding für den Linux-Kernel aktivieren - der Kernel denkt sonst gar nicht daran, Pakete zwischen den Adaptern weiterzuleiten:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    bzw. persistent - also nachhaltig - in /etc/syctl.conf  einstellen (net.ipv4.ip_forward = 1 )
    2) Forwarding von Paketen in "table filter" für beide Richtungen (LAN -> WAN und WAN -> LAN):
    Anm.: Angabe von -t filter kann als Standard weggelassen werden!
    iptables -t filter -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT
    Die Einstellung -m state bezieht sich auf die Fähigkeit der Netfilter-Kernel-Technik mittels Modul conntrack (Connection Tracking) Pakete auf Grund Ihrer Verbindungseigenschaften (hier: "in Beziehung" und "etabliert") akzeptiert werden können, ohne weiter untersucht zu werden!
    3) Für die Anbindung eines LAN mit mehreren Hosts müssen wir jetzt noch das NAT-Routing (Masquerading - Animation mit Erklärung) ermöglichen:
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    Anm.: das sind nur sehr einfache Grundkonfigurationen, die bei weitem nicht alle Sicherheitsaspekte abdecken. (Einblick z.B. bei Red Hat Doku)

 

  • /etc/passwd/etc/passwd
  • cron Skriptcron Skript
  • home Directoryhome Directory
  • SetUIdSetUId
  • Hardlinks vs. SoftlinksHardlinks vs. Softlinks
  • netconfignetconfig

 

Do., 10.11.16

Donnerstag, 10.11.16, 08.30 - 16.00 Uhr

  • Rekapitulation, TN-Fragen
    Wiederholung zu Netfilter/iptables auf Maschine bu-router: "NAT-Routing" für das LAN
  • Netfilter/iptables (Forts. / Überlegungen zu Filterregeln / nachhaltige Konfiguration nach Reboots)
    Grundeinstellung der NAT-Routing Lösung diskutiert und erläutert (siehe Do)
    Bereitstellung der Konfiguration für Maschine bu-router mittels
    a) Firewall Skript (kann später automatisch beim Systemstart ausgeführt werden - chmod +x nicht vergessen!) oder aber mittels
    b) iptables-persistent (bzw. netfilter-persisten) Paket/Software für die iptables
    Die persistent-Lösung arbeitet mit Befehlen iptables-save und iptables-restore  und Dateien /etc/iptables/rules.v4.
    Wir haben im Netz unterschiedliche praktische Umsetzungen recherchiert und begutachtet.
    Theorie/Darstellung im Web zum Thema SNAT/Masquerading
  • DHCP Server (isc-dhcp-server)
    Vorbereitung: Konfiguration des Servers auf statische IP: 10.0.0.100/8 inkl. Kontrolle/Anpassung von StdGW/DNS
    Bitte checken: /etc/default/isc-dhcp-server   (Konfiguration des NIC für DHCP)
    Paket: isc-dhcp-server
    systemctl restart isc-dhcp-server.service   # re-startet den DHCP-Server
    Die eigentliche Konfiguration liegt natürlich wieder in /etc: /etc/dhcp/dhcp.conf
    Beispieleinträge / Konfigurationen
    option domain-name "firma.bulocal";
    option domain-name-servers 10.0.0.100;
    ...
    subnet 10.0.0.0 netmask 255.0.0.0 {
      range 10.0.0.200 10.0.0.250;
      option routers 10.0.0.1;
    }
    Kurzanleitungen im Web (Link) für Debian und den ISC DHCP Server
    Nach DHCP-Server Implementierung Tests der Clients und Renew der IP-Konfigurationen
  • Anmerkung zu Namen und Adressen
    manche Maschine hätte man im "Nachhinein" andere Hostnames verpassen können, aber das wird natürlich über eine Vorplanung der Netzstruktur und Syntax für die beteiligten Maschinen im Netz vorher festgelegt!
    Wir haben das im Seminar einfach während der verschiedenen technischen Umsetzungen eingeführt und/oder so gelassen!
  • DNS (Teil 1 - Caching / Forwarding)
    Einrichtung DNS als Caching DNS und Forwarder
    Installation und Einrichtung gemäß Anleitung
    Achtung: da wir jetzt einen DNS-Server (host: bu-debian-17 -  10.0.0.100 / 8) haben - und auch nur diesen als DNS-Ansprechpartner haben wollen - müssen wir natürlich den DHCP Server anpassen (option domain-name-servers 10.0.0.100  statt vorher 192.168.3.1)
    Ausschnitt der Konfiguration für den DNS-Server (hier: /etc/bind/named.conf.options )
    Als forwarders wurde der Google-DNS 8.8.8.8 eingetragen
    acl goodclients {
            10.0.0.0/8;
            localhost;
            localnets;
    };
    options {
            directory "/var/cache/bind";
            recursion yes;
            allow-query { goodclients; };
            forwarders {
                    8.8.8.8;
            };
            forward only;
            dnssec-validation auto;
            auth-nxdomain no;    # conform to RFC1035
            listen-on-v6 { any; };
    };
    Anm.: nur Auszug aus der Konfiguration
    Ausführliche Tests der Konfiguraiton im Netzwerk auf Client und Server
    Vor dem Neustarten des DNS-Servers ( service bind9 restart ) bitte gerne vorher named-checkconf  durchführen! Grund: die Konfigurationen sind sehr empfindlich und man kann sich schnell mal vertippen oder ein ";" vergessen!
  • DNS (Teil 2 - lokale Forward Zone firma.bulocal)
    Beim DNS-Server bu-debian-17 (10.0.0.100) wichtig:
    für den DNS-Server selber bitte nicht die /etc/resolv.conf  vergessen und dort den nameserver 10.0.0.100 Eintrag vornehmen und testen!
    Anm.: das gilt generell für alle statisch konfigurierten Maschinen (Server)
    Testbefehle: nslookup , dig   (Nachinstallation Paket dnsutils)
    Zweiteilige Anleitung (Jack Brennan . com)
    Part 1 - englisch - Grundkonfiguration - Testing
    Part 2 - englisch - Master DNS Zone mit Bind9
    die Vorgehensweise (2 Konfigurationsdateien) in Kürze:
    in /etc/bind/named.conf.local
    eine neue Zone festlegen
    zone "firma.bulocal" {
            type master;
            file "/etc/bind/db.firma.bulocal";
    };
    mit einer Kopie von db.local  in /etc/bind/db.firma.bulocal 
    die neue Master Zone firma.bulocal definieren
    ;
    ; BIND data file for bu.local.
    ;
    $TTL    604800
    @       IN      SOA     firma.bulocal. root.firma.bulocal. (
                                  2         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    ;
    @       IN      NS      ns1.firma.bulocal.
    @       IN      A       10.0.0.100
    @       IN      AAAA    ::1
    ns1     IN      A       10.0.0.100
    www     IN      A       10.0.0.100
    bu-router   IN      A       10.0.0.1
    bu-debian-13        IN      A       10.0.0.200
    bu-debian-02 IN      A       10.0.0.205
    Einträge für die "Übungsfirma" eingerichtet und mit Tools (nslookup, dig) getestet
    Anm.: (noch) keine Revers-Lookup-Zone eingerichtet! Das wäre für alle Installationen "Mail Exchanger" aber notwendig!
  • DNS (Teil 3 - lokale Reverse Zone 10.in-addr.arpa)
    Jetzt also noch für unsere lokale Firma "firma.bulocal" im Netz 10.0.0.0/8 eine Reverse Lookup Zone
    in /etc/bind/named.conf.local
    eine neue Zone unterhalb der Forward Lookup Zone "firma.bulocal" festlegen:
    zone "10.in-addr.arpa" {
            type master;
            notify no;
            file "/etc/bind/db.10";
    };
    Und jetzt noch die Reverse Lookup Zonen Datei /etc/bind/db.10  (Tipp: Kopie aus db.127 erstellen)
    ; BIND reverse data file for LAN-Subnet
    ;
    $TTL    604800
    @       IN      SOA     firma.bulocal. root.firma.bulocal. (
                          060520139         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
    ;
    @       IN      NS      bu-debian-17.test.local.
    100.0.0 IN      PTR     pc.test.local.
    1.0.0   IN      PTR     bu-router.firma.bulocal.
    200.0.0 IN      PTR     bu-debian-13.bufirma.bulocal.
    205.0.0 IN      PTR     bu-debian-02.bufirma.bulocal.
    Alles natürlich wieder mit nslookup und dig testen!
  • Hinweis auf Screenshots zum Seminar
    Vorgriff auf Morgen: Freigaben im Linux-Netz mit NFS

 

  • Firewall SkriptFirewall Skript
  • /etc/default/isc-dhcp-server/etc/default/isc-dhcp-server
  • /etc/bind/etc/bind
  • /var/lib/dhcp/dhcpd.leases/var/lib/dhcp/dhcpd.leases
  • Zone firma.bulocalZone firma.bulocal
  • dig - Reverse Lookupdig - Reverse Lookup

 

Fr., 11.11.16

Freitag, 11.11.16, 08.30 - 16.00 Uhr

  • Rekapitulation, TN-Fragen (hier: Virtualisierungen)
    Plan/To-Do-List:
    Nachtrag Netfiter/iptables, Bibliothek Linux (aktuelle Serverliteratur), NFS, Backup (tar, dd), LAMP-Systeme auf TN-PCs, ...
    Wichtig: Raum 2.03 "umswitchen" (Netzwerkkabel, Wechsel-HDDs)
  • Netfilter/iptables (Rekapitulation zu Do/Tag 04 und Fortsetzung)
    Beispielhafte iptables Aufrufe in einem Skript und Nutzung der iptables-persistent Technik (hier nur v4)
    #!/bin/bash

    ### SSH Verbindungen erlauben
    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    iptables -I INPUT -i lo -j ACCEPT
    ### Alle nicht erlaubten eingehenden Verbindungen verbieten
    iptables -P INPUT DROP
    ### Webserverbindungen erlauben
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    ### Etablierte Verbindungen erlauben
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # FERTIG - Nicht vergessen die Regeln zu persistieren wenn diese funktionieren.
    echo "iptables-save > /etc/iptables/rules.v4"
    echo "ip6tables-save > /etc/iptables/rules.v6"
    Hinweis: bei Rechnern im "Netz" bitte iptables-Tests direkt auf den Maschinen und nicht per ssh, sonst kann man sich sehr schnell "aussperren"!
  • Bibliothek "Linux - Server" (Link PCSYS-Portal)
    Hinweise auf Rheinwerk-Verlag "Linux Server - Das umfassende Handbuch" (Diverse Autoren)
    und "Linux-Server" (Eric Amberg; Ausgabe zu Debian 8 Erscheinungstermin 31.12.16)
    Zeitschriften: Linux-Magazin, LinuxUser
  • DNS (Teil 4 - Rekapitulation)
    eine wiederholende Zusammenfassung mittels der dargestellten Zonen von gestern
    Einträge von neuen Werten in Forward- und Reverse-Lookup-Zonen;
    Erhöhen der "serial"-Werte und Reload des DNS-Dienstes mit systemctl reload bind9  und
    Anzeige der der genutzten serial bei systemctl status bind9 
    Übungen mit nslookup und dig Tools
  • Virtualisierungen (kurze Darstellung; z.B. auch für Testumgebungen Linux Services)
    eine kurze Übersicht:
    Hyper-V: Microsoft Windows Server und ab Windows Pro Client-Lizenzen
    VirtualBox: heute Oracle; für diverse Gastgeber (Host) Betriebssysteme verfügbar; kostenlos
    KVM / qemu: Kernel-based Virtual Machine, also eine Infrastruktur ab Linux-Kernels 2.6.20+; QEMU (Quick Emulator) für die "virtuelle HW"; Canonical (Ubuntu), Red Hat und Suse haben von Xen ("veraltet") auf KVM gewechselt (siehe YaST-Modul für Virtualisierung/Hypervisor Konfiguration); siehe hierzu OVA Open Virtualization Alliance
    VMware: kommerzielle Virtualisierung mit kostenlosen Tools (z.B. VMware Player); VMware Sphere Profivirtualisierung für Rechenzentren
    OpenVZ / Virtuozzo: auf Linux Systeme spezialisiert; OpenVZ seit 2005 auf Basis von Virtuozzo als Open Source
    Docker: Anwendungen mit OS-Virtualisierung in Containern bereitstellen; sehr schlank und schnell; bei Linux kann man sofort ein Virtuelles Betriebssystem (Virtuelle Anwendungen) als Container bereitstellen; bei Windows (oder auch MacOS) benötigt man hierfür noch einen Virtualisierer, also z.B. VirtualBox

    Praxis mit VirtualBox 5.x
    auf einem Windows 10 Pro Rechner gezeigt:
    Installation mit Hilfe eines Debian-9-ISO (Tipp: CDBurnerXP für ISO-Erstellung aus CD/DVD)
    Netzwerkkonfigurationen: NAT, NAT-Netzwerk, Bridged, Internes Netz (intnet), Host-Only (nur Netz zwischen Host und Gast)
  • NFS - Network File System
    Kurzanleitung vom Wiki-Ubuntuusers zur einfachen Installation und Nutzung (ro - read only) von NFS-Freigaben (exports) praktisch in kleinen Gruppen durchgeführt
    bei Debian/Ubuntu: Pakete nfs-kernel-server  und nfs-common  (Tools und NFS-Client) installieren;
    die Datei /etc/exports 
    enthält die Konfigurationen für die Freigaben:
    # Freigabe gilt für alle IPs in 10.0.0.0/8, mit Leserechten:
    /pfad/zur/freigabe       10.0.0.0/255.0.0.0(ro,async,no_subtree_check)
    Nicht vergessen den NFS-Server neu zu starten oder die mit exportfs -ra   diese neu einzulesen
    Anzeige der NFS-Freigaben auf einem entfernten NFS-Server: showmount -e <Name-oder-IP-Adresse> 
    Auf der Client-Seite dann entweder manuell mit:
    mount 10.0.0.100:/nfsfreigabe /mnt/nfszeug
    oder durch Eintrag in die /etc/fstab 
    die Freigabe ins System mounten
    # Beispiel für den Eintrag in die /etc/fstab:
    10.0.0.100:/nfsfreigabe /mnt/nfszeug nfs rw 0 0
    Alles natürlich sauber testen. Spätestens mit Wünschen nach RW (read write) wird es komplizierter.
  • LAMP System (1-2-3-Anleitung)
    Linux, Apache (Webserver), MariaDB (MySQL - Datenbank), PHP (Serverseitige Skriptsprache)

    Kurzanleitung gemäß diverser Anleitungen im Netz; hier Vorgabe: PHP 7 als Version gewünscht
    Webserver Apache installieren:
    apt-get install apache2 
    und testen: Webclient (Browser) auf Adresse/Name der Install-Maschine - also: http://10.0.0.100    
    Datenbank-Server MariaDB installieren:
    apt-get install mariadb-server mariadb-client  
    und mit Aufruf des Tools
    mysql_secure_installation  
    mit DB-root-Zugangskennwort und diversen anderen Eigenschaften versehen. Trainer hat den beispielhaften Zugriff über die Client-Konsole mysql kurz gezeigt und dargestellt:
    mysql -u root -h localhost - p     # mit mysql-Client Verbindung zu Server aufnehmen 
    > show databases;
    > use mysql;
    > quit;
    PHP 7.0.x mit einigen Zusatztools/Paketen installieren:
    apt-get install php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-mcrypt php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-soap curl php-gettext php-pear
    Anm.: die wichtigsten PHP-Install-Pakete wurden hervorgehoben; diese Basisinstallation richtet sich an den empfohlenen Installationsumgebungen eines späteren TYPO3-Webservers aus.
    Alternativ würden die PHP 5.6 Installationen (aktuell mit Jessie - Debian 8)
    apt-get install php5 php5-mysql libapache2-mod-php5
    lauten. Das "recommended Setup" für eine TYPO3-Umgebung verlang auch noch nach folgenden Apache2-Modulen: mod_rewrite und mod_expires 
    Die Installationen erfolgen mit:
    a2enmod expires
    und nachfolgendem Apache2-restart z.B. mit:
    service apache2 restart
    Die Install-Umgebung von Apache2 und PHP lässt sich mit einem kleinen PHP-Skript analysieren, das wir im WWW-Root-Ordner des Servers ( /var/www/html )
    erstellen:
    cd /var/www/html
    touch info.php
    und mit folgendem PHP-Skript füllen:
    View source
    1. <?php
    2.     phpinfo();
    3. ?>
    Nach Aufruf des phpinfo-Skripts über seine URL <Name-IP-Adresse>/info.php kann man die Umgebung von Apache2 / PHP analysieren.
    Die zuständige PHP-Konfigurationsdatei ist /etc/php/7.0/apache2/php.ini 
    Wir nehmen ein paar abschließende PHP-Konfigurationen vor:
    memory_limit = 256M   # statt vorher 128M
    max_execution_time = 300   # statt vorher 30 Sekunden
    Jetzt müssten noch ein paar Tools installiert werden (z.B. imagemagick bzw. graphicsmagick) und wir könnten uns mit der VirtualHost Konfiguration für einen Apache2-Webserver beschäftigen.
  • TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen

 

  • Zonen serial erhöhtZonen serial erhöht
  • /etc/exports/etc/exports
  • Apache2Apache2
  • mysql - Clientmysql - Client
  • Apache2 ModuleApache2 Module
  • /etc/php/7.0/apache2/php.ini/etc/php/7.0/apache2/php.ini

 

 

Vielen Dank für Ihre überaus freundlichen und positiven Feedbackbögen und die "Stimmung" in der Seminarwoche.
Ihr Trainer Joe Brandes

 

  Privates

... zu Joe Brandes

Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.
Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...

joe brandes 600px

Private Visitenkarte / Technik: HTML & CSS /
  joe-brandes.de

  Jobs

... IT-Trainer & Dozent

Ich erarbeite und konzipiere seit über 20 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!

becss 600px

BECSS Visitenkarte / Technik: HTML & CSS /
  becss.de

  Hobby

... Snooker & more

Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.

bsb 2011 600px

Billard Sport BS / Joomla 3.x /
  billard-bs.de

PC Systembetreuer ist J. Brandes - IT seit über 35 Jahren - Technik: Joomla 3.4+, Bootstrap 3.3.4 und "Knowledge"

© 2018 - Websitedesign und Layout seit 07/2015 - Impressum - Datenschutzerklärung
Nach oben