# Einführung in Linux
YALC - Yet Another Linux Course
Author: Daniel Schubert

# LINUX

### Das universelle Betriebssystem

Eine Einführung - Teil 12

Deutsche Angestellten Akademie

Frage: Fragen zur letzten Stunde?

### screen

Ein Terminal Multiplexer

- erzeugt mehrere virtuelle Konsolen
- nützlich bei ssh Sitzungen
- abgebrochene Sitzungen können fortgesetzt werden

-     ~$ sudo apt install screen && screen

Gängige screen-Kommandos
Strg-A a | Strg-A senden (Cursor am Zeilenanfang positionieren)
Strg-A c | neues Fenster öffnen
Strg-A n | zum nächsten Fenster wechseln
Strg-A p | zum vorigen Fenster wechseln
Strg-A w | Titel aller Fenster anzeigen
Strg-A “ | Fenster-Menü einblenden
Strg-A ? | Hilfe einblenden
Strg-A x | Terminal sperren
Strg-A k | aktuelles Fenster schließen („kill“)
Strg-A 0 | zum Fenster 0 ...
Strg-A 9 | ... bis 9 wechseln
Strg-A d | screen in den Hintergrund schicken („detach“)
Strg-A [ | in den Kopier/Scroll-Modus wechseln

^a d

Eine Sitzung wieder aufnehmen:

    ~$ screen -ls
    There are screens on:
    	10104.pts-0.laptopdan	(05.02.2019 11:11:36)	(Detached)
    	9108.pts-0.laptopdan	(05.02.2019 11:06:29)	(Detached)
    2 Sockets in /run/screen/S-dany.

    ~$ screen -r 10104.pts-0.laptopdan

Aufgabe:

- meldet euch per ssh auf lk.schubertdaniel.de an
- startet screen
- öffnet mit einem Editor ~/html/index.html
- detached die screen Sitzung mit „CTL-a d“
- meldet euch vom server ab
- meldet euch wieder beim server an
- re-attached euch mit der screen Sitzung mit
  `screen -r`

https://wiki.ubuntuusers.de/Screen/

Alternativen zu screen:

- tmux
- byobu -> screen in hübsch

Sonstige Helferlein

- terminator -> kann befehle an mehrere Server zugleich senden

Verbindung mit Nautilus

### sshd - der SSH-Server-Daemon

    ~$ sudo apt-get install openssh-server

    ~$ ssh localhost

#### ssh Server absichern

`/etc/ssh/sshd_config`

    # https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports
    # cat /etc/services
    Port 64322

    # root login verbieten
    PermitRootLogin no
    # oder nur mit ssh key erlauben
    PermitRootLogin without-password

    # anmeldung nur mit ssh-key erlauben
    PasswordAuthentication no

#### fail2ban

https://www.thomas-krenn.com/de/wiki/SSH_Login_unter_Debian_mit_fail2ban_absichern
Fingerübung:

- baut ein Script welches die fail2ban Filterregel auslöst
- durch viele Anmeldeversuche in kurzer Zeit

-     for i in {1..5}; do ssh ...... ; done

- seht euch die entsprechenden Log-Files an

#### Firewall

- iptables
- nftables
- shorewall
- GUI : gufw

### Programme zur Netzwerk Analyse

    #zeige tcp verbindungen
    ~$ ss -tp
    # zeige offene ports
    ~$ ss -tl
    ~$ ss -tulpe
    ~$ ss -s

    ~$ watch -n 1 "ss -t state syn-sent"

    # netstat liefert im Prinzip dasselbe, gilt als veraltet
    ~$ netstat -tulpe
    ~$ netstat -s

    ~$ traceroute omikron.net

    ~$ traceroute6 omikron.net

    ~$ ping -a -c3 omikron.net

    ~$ ping6 -c3 omikron.net

nslookup, dig, whois

    # eine ip Adresse bei Quad9 nachfragen:
    # dig tut dasselbe..
    ~$ nslookup -query=AAAA schubertdaniel.de  2620:fe::fe

    # gab vor Einführung der DSGVO Name und
    # Adresse des domain Inhabers aus...
    ~$ whois schubertdaniel.de

in USA geht das noch über die ICANN : https://whois.icann.org/en/lookup?name=google.com

nmap -> Portscanning

    ~$  nmap -A -T4 schubertdaniel.de

https://nmap.org/man/de/

#### GUI Programme

wireshark -> Netzwerkpakete mitschneiden und analysieren

zenmap -> nmap GUI

etherape -> Netzwerkumgebung untersuchen

    ~$ sudo apt install etherape

etherape installieren lassen
Eine Liste von Netzwerk Monitoring Programmen: https://wiki.ubuntuusers.de/Netzwerk-Monitoring/

cURL / wget

    # Datei runterladen
    ~$ wget http://gute-datei.wow
    ~$ curl http://{one,two}.example.com -o "file_#1.txt"

    ~$ # pipe curl to bash
    ~$ curl https://www.schubertdaniel.de/linuxkurs/supi | bash

BAD IDEA !!

Komplette Webseite herunterladen

    ~$ wget \
         --recursive \
         --no-clobber \
         --page-requisites \
         --html-extension \
         --convert-links \
         --domains website.org \
         --no-parent \
             omikron.net

Gegenüberstellung cUrl vs. wget

lynx

- samba
- mysql
- apache
- kernelmodule
- kernel kompilieren

Übungen C 11.11 [3] Besorgen Sie sich eine geeignete Datei (etwa ein größeres tar -Ar- chiv mit Quellcode, vielleicht für den Linux-Kernel) und komprimieren Sie sie jeweils mit gzip , bzip2 und xz . Messen Sie dabei die Ausführungszeit durch ein vorgesetztes time . Wie verhalten die Laufzeiten und die Kompri- mierungsraten sich zueinander? C 11.12 [2] Experimentieren Sie mit der Datei aus der vorigen Aufgabe und vergleichen Sie die Laufzeit und die Größe des Resultats für xz mit verschie- denen Effizienz-Optionen. Was ist der Unterschied zwischen -1 und -6 und zwischen -6 und -9 ?