Dieser Workshop richtet sich an interessierte Teilnehmer, die tiefer in das Betriebssystem Linux eintauchen möchten.

Das Seminar soll die Informationen zum Thema "Linux" (siehe Modul des FITSN) vertiefen und fortführen: Linux also als Serversystem und Diensteanbieter in Netzwerken. Hierzu werden wir uns alle notwendigen Themen für diese Einsatzzwecke vornehmen und dann die Serverdienste implementieren und nutzen.

VMs linux aufbau sem 20181026 800px

Für den Einsatz in unserem (virtuellen) Firmennetzwerk und für die nötigen Infrastrukturen werden wir verschiedene Standard-Distributionen einsetzen:

  • openSUSE (Leap 15 - als: VirtualBox Host und Client mit KDE)
  • Debian (Stretch 10 - als: NAT-Router, Server, Client)
  • centOS (7 - als: Server, Client)
  • Windows 10 (1903 - nur als Client ;-)

Mögliche Inhalte::

  • Infrastruktur (DNS- / DHCP-Server / NAT-Routing)
  • Linux als File-, Print- oder LDAP-Verzeichnis-Server
  • Web-Applikationen (Apache2 / FTP-Server, LAMP)
  • Sicherheit / Firewalling (Netfilter/iptables)
  • Systemüberwachung und Network Monitoring

Hier die Rahmendaten unseres Seminars:

Ort: VHS Braunschweig, Raum 2.11
Zeiten: Mo, 11.11. bis Fr, 15.11.2019; jeweils mit TN koordiniert

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

 

Mo., 11.11.19

Montag, 11.11.19, 08.30 - 16.00 Uhr

Orientierungsphase, TN-Themen

Distributionen und Virtualisierungen

... stellen die gesamte Software angefangen vom Kernel, einer intelligenten Installationsroutine bis hin zu kompletten Softwareausstattungen inklusive Desktopmanagern (graphische Oberflächen - GUIs) bereit. Hier ein paar maßgebliche Vertreter:

  • Debian - Nummer 1 bei den Server-Betriebssystemen für Web-Services und Co
    Ableger: Ubuntu, Ubuntu-Varianten (Kubuntu, Edubuntu, Mythbuntu, ...)
  • Red Hat - Firma mit Serverlizenzen Red Hat Enterprise Linux
    Ableger: Fedora mit den offenen/freien SW-Paketen als Entwicklungsplattform für Red Hat, CentOS als freie Community Variante
  • Suse/openSUSE (Novell) - SLES Suse Linux Enterprise Server
    Ableger: openSUSE - freie Community-Variante (siehe de.opensuse.org) - mit Version 42.1 hat Novell die Entwicklungspfade von SLES und openSUSE zusammengelegt
    Versionen: ... 10.x → 11.x → 12.x → 13.1 - 13.2 → Leap 42.1 - 42.2 - 42.3 → 15.0 - 15.1

Eine tabellarische Übersicht:

DistroAbleger der DistroPaketmanagement
Red Hat
(Link)
Fedora (Desktop) bzw.
CentOS (Red Hat Server)
Kaufversion: RHEL
RPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yum
Novell (Suse)
(Link)
openSUSE (Link)
Kaufversion: SLES
bzw. SLED
RPM
mit YaST2-SW-Verwaltung, zypper, yum
Debian
(Link)
Ubuntu(s),
Linux Mint
DEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt, (klassisch: apt-get, apt-cache,
aptitude, ...

VirtualBox Host

... Entscheidung für openSUSE-Distro als Host - recht gute Einbindung in Paketverwaltung und einfache Funktionalität "out-of-box"

Entscheidung zum "Virtualisieren":

  • Jeder TN bekommt sein eigenes Netz / seine eigene Infrastruktur
  • Einfache Bereitstellung von Installmedien als Downloads/ISOs
  • TN können ihr gesamtes "BU-Firmen-Netz" am Ende des Seminars mit nach Hause nehmen!

Und los geht es...

Installation von VirtualBox-Host: openSUSE Leap 15.1 (64-Bit)

Install-Medien: (TN bekommen aktuelle Install-DVD)

  • CD (Netzwerk-Install; aktuell ca. 100 MB; bei Installation werden alle Pakete aktuell nachgeladen: ca. 3-4 GB)
  • DVD (auch als Live-DVD)
  • Netzwerk-Quellen (FTP, HTTP, NFS, SMB/CIFS, PXE/TFTP)

Quellen in64-Bit auch für andere Hardware (also nicht nur Intel x86 bzw. x86_64)
Anm.: 32-Bit Unterstützung stirbt aus.

Hinweis: Bereitstellung von Checksums (sha256) zur Verifizierung der Unversehrtheit und Originalität der Downloadarchive (ISOs)

Spezialität von openSUSE: YaST - Yet another Setup Tool (Installations- und Setup/Konfigurationswerkzeug)

Links zu openSUSE

Hier mal eine Auswahl:

Spezialversion:
Tumbleweed (Rolling Realeses / Rolling Upgrades) https://software.opensuse.org/distributions/tumbleweed      

Anm.: Rolling Releases benötigen keine turnus-mäßigen Upgrades (z.B. Ende Nov 2020 Upgrade Leap 15.1 auf 15.2), sondern werden ständig weiter mit Aktualisierungen versorgt. Diese Systematik klingt erst einmal gut, hat aber eigene Probleme, die oft nur mit Expertenwissen gelöst werden können!

Installation VirtualBox (hier: 6.0.12)

... aus den Standard-Quellen (Repositories) über YaST-Softwareverwaltung

Standardbenuzterkonto openSUSE (hier: Nutzer/User joeb) in Gruppe vboxusers aufnehmen: ~# usermod -aG vboxusers joeb   

Nach der Installation bitte Neustart des Systems durchführen. Bei Änderungen von Benutzern/Gruppen ist immer mindestens eine Neuanmeldung des Benutzers nötig.

Partitionen

Gerätenamen /dev/sda (für den ersten Datenträger - dann /dev/sdb, ...)
eingerichtete Partitionen mit Nummern: /dev/sda1, /dev/sda2, ...

Anm. bei MBR dann /dev/sda5 als erste logische Partition (log. LW) in einer erweiterten Partition
früher bei EIDE-Geräten: /dev/hda; die sda-Bezeichner dann für SCSI, SATA und heute auch USB-Medien

Alternativ: Verwendung von Geräten-ID-Bezeichnern (siehe später GRUB oder auch /etc/fstab )
Aktuelle Distributionen: UUID als eindeutige Bezeichner für die Partitionen/Datenträgerbereiche
Vorteil: dann werden die Datenträgerbereich auch sauber gemountet, wenn diese mal statt auf /dev/sda2  auf /dev/sdb1 liegen sollten!
Heutige Installation soll mit folgenden Partitionen erfolgen: (ein Screenshot für eine beispielhafte Installation ist unten angefügt)

Abweichung von openSUSE-Install-Vorschlag für den VirtualBox-Host:

openSUSE würde gerne BtrFs als Dateisystem für das System ( Ordner /  bzw. auch  /boot)  und xfs für die Daten (siehe /home ) vorschlagen, aber wir wollen hier die "klassischen" Ext-Dateisysteme Ext4 in sehr einfacher Partitionierung zur optimalen Nutzung unserer 120 GB Wechsel-SSDs nutzen.

btrfs partitionierung os 150

Kurze Erinnerung an Dateisysteme:

  • ext2, ext3 (ist ext2 mit journaling FS)
  • ext4(klassisches Linux-Standard-FS)
  • XFS
  • BtrFS
  • ReiserFS
  • Fat16, Fat32 (VFat), NTFS

Grobe Einteilung/Partitionierung; hier im Seminar: GPT Verwaltung der SSD mit UEFI
(Anm./Erinnerung: bei MBR gibt es die 4 klassischen primären/erweiterten Partitionen)

Anleitung für Systempartitionen in diesem Seminar:
os leap vbox host partitions 800px
Bereitgestellte Wechsel-SSD: SanDisk 240 GB (per UEFI/GPT)

MountNutzungEigenschaften
/boot/efi EFI-Partition Größe: 500 MiB  (siehe ggf. Meldung YaST)
eig. min. 100 - 250 MiB (nach UEFI-Norm empfohlen)
Filesystem: FAT32  (auch als VFat bezeichnet)
Gerät: /dev/sda1  (ESP - EFI System Partition)
Bootflag und möglichst Anfang der Partitionen
Anm.: Windows EFI kann mitgenutzt werden!
/ Root-Partition Größe: ca. 215 GiB
Gerät: /dev/sda2 (Root Partition)
Filesystem: ext4
swap Auslagerungspartition,
VMM Virtual Memory Management
Größe: ca. 7 GiB
Gerät: /dev/sda3 (Swap Partition)
Filesystem: swap

Erste Analyse und Tools rund um unsere Partitionen:
lsblkfdisk -l /dev/sda , gdisk (siehe GPT) , cfdisk 
möglicherweise Problem bei Darstellungen mit Konsolentools *disk:
Tipp: falls Umlaute und Sonderzeichen falsch dargestellt werden: env LANG=C cfdisk  
Erklärung: in Umgebung (env) wird als Sprache C eingestellt, was der Sprache/Kodierung des Programms entspricht (hier "englisch")

openSUSE System aktualisieren... in Leap 15.1 bereits in Installation integriert...
(Anm.: im Seminar: DVD von August 2018 -> ca. 100 Pakete zu aktualisieren plus neuer/aktualisierter Kernel ...)

Aktualisierungs-Gadget" (Package-Kit) aus der Kontrollleiste - Anm.: Kollision mit Shell-Tools möglich, da dieselbe Bibliothek (libzypp) genutzt wird!
Vorgriff auf Befehlszeile: Aktualisierung mit Tool zypper (siehe libzypp Unterstützung; zypper update )

Anm.: "stabile" Desktop-Umgebungen (KDE5 Plasma) manchmal erst nach Neustarts (siehe auch Installation Nvidia-Treiber Dozent-PC 17 statt Nouveau-Treiber)

Screenshots: Alternative "Spactacles" in openSUSE KDE installiert (Anm.: KSnapshot für Bildschirmfotos mit Druck-Taste wurde in 42.1 in Rente geschickt - removed)
Grundkonfiguration: automatische Bildschirmfoto-Dateien mit Umschalten + Druck

Netzwerk-Analyse

Erste Netzwerkanalyse mit Linux:

IP-KonfigurationShellaufrufe
IPv4-/IPv6-Adresse
Subnetmask
ip address show   (zeigt immer alle NICs)
ip a s   (kurze Variante)
Tool ifconfig nicht mehr standardmäßig installiert:
/sbin/ifconfig
Standardgateway
(bzw. Router)
/sbin/route -n  
hier: in Spalte Flags das G suchen - dann Spalte Router
ip route show
ip r s   (kurze Variante
DNS-Server cat /etc/resolv.conf
hier: Zeile mit nameserver analysieren
aber: Datei wird von den Netzwerkkonfigurations-Diensten
Wicked (bzw. NetworkManager) manipuliert
keine manuelle Änderung gewünscht!

Natürlich gibt es auch diverse Tools/Skripte, die diese Aufgaben/Aufrufe zusammenlegen, aber wir wollen auch immer die Basics bemühen und "Linux" verstehen.

Topologien und Firmennetz planen

Enwurf mit TN skizziert (siehe LibreOffice Draw Entwurf)
Wichtig: Suffix/Prefix für Techniken mit Hilfe der PC-Platznummern (siehe Dozentenarbeitsplatz: 17)

Beispiel: (Dozentenplatz PC #17)

  • geplante Domain (FQDN): firma17.local 
  • beispielhafte Rechnernamen: router17 , server17 
  • Firmennetz (IPv4): 192.168.17.0 / 24  

Das kann dann so aussehen:
plan topologie dom 2019 800pxAnm.: wird im Laufe des Seminars erarbeitet und aktualisiert.

Netzwerkkonfigurationen

... der Versuch Übersicht über die wichtigsten Ordner/Dateien:

  • /etc/networks  (Netzwerke konfigurieren)
  • /etc/hosts   (statische Namensauflösungen)
  • /etc/resolv.conf   (DNS; Inhalt gibt Aufschluss über Konfigurationstechnik)

und Technischen Umsetzungen in Linux:

  • Manuelle Netzwerkkonfigurationen - z.B. Debian "Rohinstallation"
    Erklärung über Debian Wiki zur Netzwerkkonfiguration (Link)
    /etc/network/interfaces  (Konfiguration der Netzwerkadapter /dev/eth0, eth1 bzw. enp0s3, ... mit statischen oder DHCP Konfigurationen)
  • NetworkManager - Debian "Komplettinstallation" (also inkl. Desktop Gnome) nutzt NetworkManager
    hier übernimmt die Konfiguration ein (Gnome-)Tool als Grafisches Frontend für den Daemon NetworkManager
    /etc/NetworkManager  (Hauptverzeichnis für Konfigurationen)
    /etc/NetworkManager/system-connections/verbindungsdatei   (Datei mit Konfiguration z.B. Wired Connection 1)
  • Wicked: Speziell bei openSUSE:
    Neu seit openSUSE 13.2: Wicked Service als Standardinstallation auf Desktop-Systemen
    Anm.: bei Notebooks weiterhin NetworkManager als Standard
  • netconfig  (bei RHEL 5.5 oder eben auch ab openSUSE 42.1 Serverminimalinstallation)
    Konfigurationen in /etc/sysconfig/network-scripts  in Dateien wie ifcfg-eth0ifcfg-eth1, ...  (beispielhafte Installation)
    entweder manuell bearbeiten, oder entsprechende Tools der Linux-OS nutzen - hier also natürlich gerne auch wieder YaST bei Suse nutzen

VM-Installationen

Nach Download des entsprechenden Debian-Install-ISOs wurden

  • vm-router
    Debian 10 (Buster) Server-Minimalinstallation (ca. 110 Pakete) mit zwei Netzwerkadaptern
    WAN-Seite mit Netzwerkbrücke (mit physikalischem Adapter und Netzwerk vom Vbox-Host) - manuell konfiguriert
    LAN-Seite mit Internem Netzwerk "intnet" (eigener Virtueller Switch) verbunden - manuell Konfiguration folgt
  • debian-gnome
    Debian 10 (Buster) Vollinstallation inkl. Gnome-Desktop (ca. 1500 Pakete)

installiert und in Betrieb genommen.

 

  • screenshot.01
  • screenshot.02
  • screenshot.03
  • screenshot.04
  • screenshot.05
  • screenshot.06

 

Di, 12.11.19

Dienstag, 12.11.19, 08.30 - 16.00 Uhr

Rekapitulation, TN-Themen

Übungen: Netzwerktechnik manuell konfigurieren

Konfiguration der Debian-Systeme auf klassische, manuelle Konfigurationen mit Hilfe der
Konfigurationsdatei /etc/network/interfaces
hier Auszug aus der Konfiguration: (Anm.: die Zeile auto ... ist heute oft verschwunden)

...
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.17.10
netmask 255.255.255.0
gateway 192.168.17.1
...

Für die Konfiguration mittels DHCP ist es:

...
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet dhcp
...

Für diese Netze bitte auch Tools kennen: ifup, ifdown 
Beachten: bei Verwendung von NetworkManager (z.B. unter Gnome-Desktop) oder netconfig dann bitte abweichende Konfigurationsdateien beachten!
Über die /etc/resolv.conf  Kommentare kann man recht schnell die genutzte Technik erkennen.

Planung Netz-Infrastruktur: DHCP, NAT-Routing

Gemeinsam mit TN nachgearbeitete und geplante Struktur:

plan topologie dhcp nat-routing 800px

Installation von DHCP-Server (ISC) und Konfiguration von Netfilter/iptables...

Für die Umsetzungen wurden den TN kurze Anleitungs-PDFs über ein Cloud-Drive zur Verfügung gestellt.

DHCP

... Paket: isc-dhcp-server

Installation auf vm-router-17  - wichtig: an richtigem Adapter (LAN-Seite) zur Verfügung stellen!

Vorbereitungen (s.o.) - Konfiguration des Routers auf statische LAN-IP: 192.168.17.1 / 24  

Installation mittels apt install isc-dhcp-server  - die Installation quittiert am Ende Fehler, da saubere Konfigurationen des DHCP-Servers noch fehlen.
Wir beginnen mit der Konfiguration des NIC-Adapters für DHCP:
/etc/default/isc-dhcp-server   (hier: lanseitiger enp0s8 von vm-router-17)

Die eigentliche Konfiguration liegt in Standardverzeichnis:
/etc/dhcp/dhcpd.conf
Beispieleinträge / Konfigurationen (wurden vorher sauber bei Entwurf geplant)

option domain-name "firma17.local";
option domain-name-servers 8.8.8.8, 10.100.200.1;
...
subnet 192.168.17.0 netmask 255.255.255.0 {
  range 192.168.17.100 192.168.17.149;
  option routers 192.168.17.1;
}

Kurzanleitungen im Web (Link) für Debian und den ISC DHCP Server...

Der DHCP-Daemon lässt sich mit den üblichen Target/Runlevel Tools analysieren:
systemctl status|restart|stop|enable|disable isc-dhcp-server   (Target/Dienst status|...)
journalctl -u isc-dhcp-server   (Journal / Logging auslesen - Anm.: nicht persistent!)

Übersicht zu Releases des DHCP-Servers:
/var/lib/dhcp/dhcpd.releases   (alle Infos inkl. MACs oder Lease-Times)

Übung: nach DHCP-Server Implementierung Test mit bereits installierten VM-Client-Rechnern (z.B. debian-gnome) und Analyse der IP-Konfigurationen.

NAT-Routing mit Netfilter / iptables

Eigentliche Technik ist Netfilter: eine im Kernel implementierte Softwareschicht

Mit iptables kann man Regelsätze / Konfigurationen für verschiedene Tabellen erzeugen:

  • filter
  • nat
  • mangle
  • raw

Die Tabellen können mit Richtlinien (Policies) zum Behandeln von Paketen versehen werden und haben Ketten (chains) für die Paketvermittlungen.

Wir interessieren uns beim NAT-Routing für die

  • Tabelle filter (chain FORWARD) und die
  • Tabelle nat (chain POSTROUTING)

Wichtig: die folgenden Strukturen finden sich immer an einem einzelnen Netzwerkadapter!
netfilter iptables 20181031 800px
Wir arbeiten erst einmal mit einfachen manuellen Inbetriebnahmen der nötigen NAT-Routing-Regeln.

Für die folgenden Befehle bitte die richtigen Router-NICs beachten:
(Beachten: hier allgemeine Konfigurationsdaten - nicht die aus dem Seminar!)
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/sysctl.conf  einstellen - Zeile: 
net.ipv4.ip_forward = 1  auskommentieren
(Anm.: Logik/Reihenfolge wie in /proc/sys/... hier mit Punkten getrennt)
und Rechner neustarten!

2) Forwarding von Paketen in "table filter" für beide Richtungen (LAN -> WAN und WAN -> LAN):
Anm.: Angabe von -t filter kann als Standardtabelle auch 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 gewünschte Anbindung eines LAN mit mehreren Hosts müssen wir jetzt noch das NAT-Routing (Masquerading - Kohnle - Masquerading - 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)

Löschen von Tabellen: iptables -F  bzw. iptables -F -t nat 

Übung: Umsetzung der Regeln gerne als Skript: (touch nat-routing.sh und chmod u+x nat-routing.sh )

#!/bin/bash
IPTABLES="$(which iptables)"
WANNIC="enp0s3"
LANNIC="enp0s8"
$IPTABLES -t filter -A FORWARD -i $WANNIC -o $LANNIC -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -t filter -A FORWARD -i $LANNIC -o $WANNIC -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $WANNIC -j MASQUERADE

Tipp: iptables Regelsätze auch nach Neustarts und ohne Skriptverwaltungen mit Hilfe von iptables-persistent Paket!

Nach der Installation:  apt install iptables-persistent 
kann man mittels: iptables-save > /etc/iptables/rules.v4 
die Regeln nachhaltig machen (persistieren)!

Diverse Übungen über den Tag

  • Einfaches Skripting
  • Installationsübungen
  • Bash konfigurieren mit ~/.bashrc (z.B. für root Farbe in Konsole)
  • ...

 

  • screenshot.01
  • screenshot.02
  • screenshot.03
  • screenshot.04
  • screenshot.05
  • screenshot.06

 

Mi, 14.11.19

Mittwoch, 14.11.19, 08.30 - 16.00 Uhr

To-Do-List:

  • Weitere Server-Installation: Debian 10 Buster (wird DNS-Server)
  • Weitere Client-Installation: CentOS 7 (Red Hat Familie), openSUSE Leap 15.1 (ISO aus DVD)
  • DHCP: IP-Reservierung anhand MAC-Adresse
  • DNS-Server (Bind9) installieren und konfigurieren
  • ...

Rekapitulation

Ausführliche Rekapitulation für das "NAT-Routing" und die Virtuellen Installationen und Vernetzungen

Rekapitulation Tag 03 NAT-Routing VMs 800px

Installation Debian Server

... Maschine: debian-server-17  

Standard-/Minimalinstallation, Korrektur von /etc/apt/sources.list , Tricks zur Auflösung (s.u.), ...

Nachinstallation Paket openssh-server und Tests mit SSH

Debian - Grub und Terminalauflösungen

in /etc/default/grub  eintragen:

...
GRUB_GFXMODE=1024x768
GRUB_GFXPAYLOAD_LINUX=keep
...

dann mit update-grub  die Grubkonfiguration erneuern und reboot  .

Auf (Trainer-)VMs kann für die bessere Lesbarkeit am Beamer noch mit dpkg-reconfigure console-setup  noch eine massigere Schrift für die Konsole definiert werden. 

Port-Forwarding

Übung:
SSH-Server auf dem debian-server-17 auch von der openSUSE-Host-Maschine aus über den Router ereichbar!
(Link SysTutorials)

Beispielhafter iptables Aufruf:

iptables -A PREROUTING -t nat -i enp0s3 -p tcp --dport 2222 -j DNAT --to 192.168.17.50:22  

Die beteiligten Maschinen in einer Übersicht:

Rechnername: os-host-17   vm-router-17   debian-server-17   
Netz: VHS BS VHS BS
VM intnet

VM intnet
IP: 10.100.211.117 10.100.211.217
192.168.17.1

192.168.17.50
User:   joerouter joeserver

Nutzung von SSH-Weiterleitung in einer openSUSE-Host Konsole auf os-host-17 :

ssh joeserver @ 10.100.211.217 -p 2222   

Für die Nachhaltigkeit des Port-Forwardings müssen die neuen Regelsätze persistiert werden:

iptables-save > /etc/iptables/rules.v4  

Anm.: die alten Regeln gerne vorher mal sichern (cp Befehl für rules-v4-bak-20191113)

DNS mit dem BIND9

... Berkeley Internet Name Daemon - Link

Umsetzung hier auf einem Debian System mit Standardeinstellungen nach diversen Anleitungen (z.B. Debian Wiki oder Debian Handbook - DNS )

Installation auf Debian mit apt install bind9 bind9-doc  ; diverse Utilities/Tools mit Paket dnsutils 

Die Konfigurationen des BIND befinden sich in:

/etc/default/bind9   (allgemeine Konfigurationsdatei - bei systemd Nutzung bitte hinterfragen ob aktiv)

/etc/bind/  - Haupt-Konfigurationsordner mit zentraler Datei /etc/bind/named.conf  

named.conf inkludiert drei weitere conf-Dateien, die ihrerseits die Konfigurationen enthalten:

  • include  named.conf.options
    Einstellungen/Optionen für den DNS-Server
  • include  named.conf.local
    hier werden Zonen erstellt, deren Definitionen dann in db.* Dateien (Aufruf mittels file) ausgelagert werden
    (siehe db.firma17.local und 17.168.192.in-addr.arpa für unsere Übungsumgebung)
  • include  named.conf.default-zones
    Standard-Zonen: localhost (db.local) oder 127.in-addr.arpa (db.127)

Die Inbetriebnahme / Konfigurationen erfolgen in drei Phasen:

  1. Caching / Forwarding
  2. Forward Lookup Zone
  3. Reverse Lookup Zone

Während der Umsetzungen sollte der "Firmenplan" (die Doku) genau beachtet und aktualisiert werden.

DNS (Caching / Forwarding)

Analyse der Konfigurationen in /etc/bind  - Organisationsstruktur studieren (includes) und Vorlagen

Hier: Einrichtung DNS als Caching DNS und DNS-Forwarder
Installation und Einrichtung z.B. gemäß Anleitung
Achtung: da wir jetzt einen DNS-Server (host: server17 -  192.168.17.10 / 24) haben - und auch nur diesen als DNS-Ansprechpartner haben wollen - müssen wir natürlich die Konfiguration für den DHCP Server anpassen (option domain-name-servers 192.168.17.10, 8.8.8.8)
Ausschnitt der Konfiguration für den DNS-Server (hier: /etc/bind/named.conf.options )
Als DNS-forwarder wurde der Google-DNS 8.8.8.8 eingetragen; (alternativ) auch der Firmen/VHS DNS denkbar:

acl goodclients {
        192.168.17.0/24;
        localhost;
        localnets;
};
options {
        directory "/var/cache/bind";
        recursion yes;
        allow-query { goodclients; };
        forwarders {
                8.8.8.8;
        };
        forward only; # ggf. später auskommentieren!
        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 vorher named-checkconf  durchführen!
Grund: die Konfigurationen sind sehr empfindlich und man kann sich schnell mal vertippen oder ein ";" vergessen!

 

  • screenshot.01
  • screenshot.02
  • screenshot.03
  • screenshot.04
  • screenshot.05
  • screenshot.06

 

Do, 14.11.19

Donnerstag, 14.11.19, 08.30 - 16.00 Uhr

Rekapitulation, TN-Themen

Fortsetzung To-Do-List:

  • Weitere Client-Installationen:
    CentOS 7 als Minimal-Installation / Server (Red Hat Familie)
    openSUSE Leap 15.1 (ISO aus DVD)
  • DHCP: IP-Reservierung anhand MAC-Adresse für CentOS Server
  • DNS-Server (Bind9) mit lokalen Zonen (Forward und Reverse) konfigurieren
  • LAMP: auf Debian Server installieren
  • ...

Wir starten heute - nach einer kurzen Wiederholung - mit letzten Installationen und ein paar "Fingerübungen" im Netz bevor wir dann DNS komplettieren ...

CentOS 7- ISO per SMB

... als Minimal-Installation / Server (Red Hat Familie)

Die Installationen können unter centos.org heruntergeladen werden. Wir nutzen aber ein ISO, welches bereits auf einem "Windows-PC" heruntergeladen wurde und über eine (Windows-) Freigabe zur Verfügung gestellt wird.

Wir greifen mittels SMB-Protokoll auf die Freigabe zu. Man kann hier natürlich wieder über die Konsole arbeiten, aber mittels Dateimanager Dolphin (KDE-Tool auf dem openSUSE Host-System) geht die Arbeit einfacher von der Hand:
(in Dolphin-Teilfenster Adresszeile eingeben und Authentifizierung mit Username/Password)

smb: // 10.100.211.115 

Nach Kopie des Install-ISO folgt die Installation...

Installation bei Red Hat Systemen mit Install-Tool Anaconda - etwas gewöhnungsbedürftig (siehe Netzwerk-Aktivierung nötig), weil auf professionelles Deployment im Firmenumfeld optimiert.
Anm.: das kann YaST (siehe Suse / openSUSE) auch.

DHCP  - Reservierungen

VM centos-server-17 auf reservierte IP 192.168.17.60 / 24  konfigurieren
mittels DHCP-Konfigurationsdatei: /etc/dhcp/dhcpd.conf 

...
host centos-server-17 {
hardware ethernet 08:00:20:A4:89:C1;
fixed-address 192.168.17.60;
}
...

Und natürlich wieder das Testen nicht vergessen!
Tipp: Bei Nutzung von VirtualBox kann man die MAC-Adresse in den Eigenschaften der Maschine nachrecherchieren.

DNS (lokale Forward Zone firma17.local)

Beim DNS-Server debian-server-17 (192.168.17.50) wichtig:
für den DNS-Server selber bitte nicht die /etc/resolv.conf  vergessen und dort manuell den "nameserver 192.168.17.10" Eintrag vornehmen und testen!
Anm.: das gilt generell für alle statisch konfigurierten Maschinen (Server)!

Testbefehle: nslookup , dig  , host  (Nachinstallation Paket dnsutils/Debian, bind-utils/CentOS)

die Vorgehensweise für die beteiligten Konfigurationsdateien in Kürze:
in /etc/bind/named.conf.local  eine neue Zone festlegen:

zone "firma17.local" {
        type master;
        file "/etc/bind/db.firma17.local";
};

mit einer Kopie von /etc/bind/db.local in /etc/bind/db.firma17.local 
die neue Master Zone firma17.local definieren:

;
; BIND data file for firma17.local
;
$TTL    604800
@       IN      SOA     firma17.local. root.firma17.local. (
                     2018103100         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      debian-server-17.firma17.local.
@       IN      A       192.168.17.50

vm-router- 17      IN      A       192.168.17.1
debian-server-17     IN      A       192.168.17.50
centos-server-17    IN      A       192.168.17.60
debian-gnome-17      IN      A       192.168.17.100

ns1 IN      CNAME   debian-server-17
www IN CNAME debian-server-17

Forward Lookup Zone firma17.local

Erinnerung:
ggf. noch in den BIND-Optionen (/etc/bind/named.conf.options) den Eintrag "forward only;" auskommentieren!

Einträge für die "Übungsfirma" eingerichtet und mit Tools (nslookup, host, dig) getestet.
Anm.: (noch) keine Revers-Lookup-Zone eingerichtet! Das wäre für alle Installationen "Mail Exchanger" aber notwendig!

DNS (lokale Reverse Zone 17.168.192.in-addr.arpa)

Jetzt also noch für unsere lokale Firma "firma17.local" im Netz 192.168.17.0 / 24 eine Reverse Lookup Zone definieren!
In /etc/bind/named.conf.local  eine neue Zone unterhalb der Forward Lookup Zone "firma17.local" festlegen:

zone "17.168.192.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.192.168.17";
};

Und die Reverse Lookup Zonen Datei /etc/bind/db.192.168.17  (Tipp: Kopie aus /etc/bind/db.127 erstellen)

; BIND reverse data file for LAN-Subnet
;
$TTL    604800
@       IN      SOA     firma17.local. root.firma17.local. (
                     2018103100         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      debian-server-17.firma17.local.
1 IN      PTR     vm-router-17.firma17.local.
50    IN      PTR     debian-server-17.firma17.local.
60 IN      PTR     centos-server-17.firma17.local.
100 IN      PTR     debian-gnome-17.firma17.local.

Reverse Lookup Zone 17.168.192.in-addr.arpa

Alles natürlich wieder mit Tools nslookup , host und dig testen!

Aufrufe: (Anm.: hier nur Standardaufrufe - gerne Manpages nutzen)
nslookup (hier auch interaktive Konsole möglich),
host debian-server-17 bzw. host -a 192.168.17.50 und
dig vm-router-17 bzw. dig -x 192.168.17.1 

Hinweis zu Reverse Lookup Zonen und den richtigen Einträgen der Reverse-IPs:
bei Subnetz 10.0.0.0 / 8 haben wir Rechner von 10.0.0.1 ... 10.18.19.20 ... 10.255.255.254 (ca. 16 Mio Hosts)
die passenden (drei) Einträge in der Reverse-Zone 10.in-addr.arpa müssten lauten:

1.0.0          IN      PTR     router17.firma17.local.
20.19.18    IN      PTR     server17.firma17.local.
254.255.255 IN      PTR     centos17.firma17.local.

Reverse halt ;-)

Hinweis zu DNS-Client-/Server-Technik: manche Distributionen hat in der /etc/nsswitch.conf  eine ungünstige Auflösungsreihenfolge für die "hosts" eingestellt:
(Anm.: man kann nicht an Namen debian-server-17 und debian-server-17.firma17.local erfolgreich pingen)

hosts:    files  mdns_minimal [NOTFOUND=return]  dns

ändern in:

hosts:    files  dns  mdns_minimal [NOTFOUND=return]  

dann stimmt die Reihenfolge bei der Auflösung von Hosts mit FQDN wie server17.firma17.local

Anm.: mdns geht in Richtung ZeroConf  (Avahi / Bonjour / APIPA) und hilft bei der Auflösung von Namen "ohne echtes DNS" (IPs: 169.254.x.y / 16)

PHP / Apache

Zum Abschluss einer paar vorbereitende Installationen zum LAMP:

  • PHP 7.3 für die Befehlzeile (CLI) und
  • Apache2 (Webserver httpd)

auf dem Debian Server (debian-server-17).

apt install php7.3-cli apache2

Diverse Tests:

  • php --version
  • Analyse des Webservice mit systemctl status apache2.service 
    zeigt Fehlermeldung zu Hostname; eine mögliche Lösung:
    Eintrag von Zeile "ServerName www.firma17.local" in /etc/apache2/apache2.conf Datei
  • Aufruf der Website www.firma17.local auf der debian-gnome-17 VM im Firefox Browser

Anm.: Analyse der Python-Installationen - Python 2 vs. Python 3

Zugriffe auf Server im privaten LAN

Fragestellung:
Könnte man auch aus dem VHS BS Netz (Rechner: os-host-17 mit 10.100.211.117)
den Webserver (debian-server-17 mit 192.168.17.50:80) aufrufen?

Lösungen:

  • Port-Forwarding: s. Lösung für SSH-Forwarding mit iptables auf vm-router-17 :
    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.17.50:80  
    Anm.: beliebige Anfrage an Port 8080 am vm-router-17 öffnet die Website auf debian-server-17 (192.168.17.50)
  • SSH-Tunnel: Anleitung s. u.
    mit SSH-Zugriff auf den vm-router-17 kombinierte Konfiguration eines lokalen Ports für den Webservice auf 192.168.17.50
    Anm.: hier SSH-Zugriff auf vm-router-17 nötig! Das öffnet dann auch alle anderen Zugriffe (Dienste) auf die Rechner im Privaten VM-Netz!

An dieser Stelle eine Kurzanleitung zum ...

SSH Tunnel

Die beteiligten Maschinen in einer Übersicht:

Rechnername: os-host-17   vm-router-17   debian-server-17   
Netz: VHS BS VHS BS
VM intnet

VM intnet
IP: 10.100.211.117 10.100.211.217
192.168.17.1

192.168.17.50
User:   joerouter joeserver

Nutzung von SSH-Tunnel in einer openSUSE-Host Konsole auf os-host-17 :

ssh joerouter @ 10.100.211.217 -L 8080:192.168.17.50:80   

Jetzt kann man auf os-host-17 einen Browser mit URL localhost:8080 öffnen und sieht die Apache2-Testsite des debian-server-17!

 

  • screenshot.01
  • screenshot.02
  • screenshot.03
  • screenshot.04
  • screenshot.05
  • screenshot.06

 

Fr, 15.11.19

Freitag, 15.11.19, 08.30 - 16.00 Uhr

Rekapitulation, TN-Themen

To-Do:

Letzte Install-Übungen

  • Client-VM openSUSE Leap 15.1
  • Windows 10 Pro (19H2 - Version 1909)

installiert und "gecheckt".

Immer wieder...

  • hostname
  • Netzwerkkonfiguration
  • Aktualisierungen OS
  • Infrastrukturdienste aktualisieren: DNS (Anm.: schön wäre DDNS - Dynamic DNS)

Forts. zu Web- und Datenbankservices...

LAMP

Linux - Apache - MySQL/MariaDB - PHP; hier: PHP 7.3

Die am meisten verbreitete Technik-Kombo für Web-/DB-Services im Internet/Intranet.

Installation: Debian Buster (10.1) mit aktuellen Apache2, MariaDB und PHP 7.3
Für die PHP Version 7.3 benötigen wir nur die Standard-Repos von Debian 10.

Die Installation des Apache:

apt install apache2

Jetzt stellen wir die MariaDB Server- und Client-Technik

apt install mariadb-server mariadb-client
mysql_secure_installation

Und testen den Zugang zum MariaDB-Server mit einem mariadb/mysql-Client:

mysql -u root -h localhost -p  

Im Seminar wurden einige kleine Tests im MySQL-Client durchgeführt!

DB Konfiguration für Benutzer root nach mysql_secure_installation Skript:
der Zugang zur MariaDB-Datenbank für den (DB-) User root ist mittel plugin unix_socket konfiguriert.
Das verhindert das Login aus der Standard-Benutzer Konsole!
Mögliche Reparatur in mysql/mariadb-Konsole: (als DB-root - andere User funzen ja noch nicht ;-)

> use mysql;
> UPDATE user SET plugin='' WHERE user='root';
> flush privileges;

Vervollständigung der PHP 7.3 Installation (Übung durch TN):

apt install php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-soap curl php-gettext php-pear

Und beispielhafte Erweiterung der Apache2 Umgebung: Module aktivieren (z.B. für CMS wie TYPO3):

a2enmod expires
a2enmod rewrite

Diese Apache2-Modifikationen benötigen ein Restart / Reload: systemctl restart apache2 
Anm.: Rückmeldungen/Vorgaben von a2enmod für nötige Apache2 Aktualisierung beachten

Jetzt noch ein paar Konfigurationen für die PHP-Umgebung:  /etc/php/7.3/apache2/php.ini  

Übung: max_execution_time = 240   (statt 30 Sekunden Standard) und bitte Apache2 reloaden/restarten

Testing der Apache2-PHP-Konfiguration mit einem kleinen PHP-Skript phpinfo.php in /var/www/html 

<?php
    echo "Hallo Welt!";
    phpinfo();
?>

Aufruf des Skripts im Browser mittels URL: www.firma17.local/phpinfo.php 

 

Digitale Unterlagen (Screenshots) - bereitgestellt über SMB-Server auf PC 10.100.211.115
Sicherungsmöglichkeit des gesamten VirtualBox-VM-Netz auf eigenem USB-Medium.

TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen

 

  • screenshot.01
  • screenshot.02
  • screenshot.03
  • screenshot.04
  • screenshot.05
  • screenshot.06

 

Vielen Dank für Ihre tollen Feedbacks - bis zum nächsten Mal...
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 25 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"

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