karibu linuxkurs wintersemester 09/10 sib09kasparick.com/download/linuxkurs_kasparick_sib09.pdfvimrc...

Post on 20-Apr-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

KaribuLinuxkurs Wintersemester 09/10

SIB09

Hannes Kasparickhannes @ kasparick . com

2

3

Über mich

■ 2003 bis 2006: Computer- und Mediensicherheit■ 2006 bis 2008: Sichere Informationssysteme■ Diplomarbeit: Data Leakage Prevention (DLP)

■ Seit September 2008: Leiter IT-Services Abteilung Firma Count IT Group / WURM und Partner

■ Leidenschaft:

4

Agenda

■ Geschichtliches■ Basics■ Installation von Debian Linux■ Remotemangement - SSH ■ Grundlagen Paketmanagement ■ Umgang mit der Konsole – Bash■ Grundlegende Rechteverwaltung■ vi – ein Editor■ Wichtige Tools■ Netzwerkkonfiguration

5

Buchempfehlung

■ Michael Kofler: Ubuntu Server

■ O'Reilly - LPI Linux Certification in a Nutshell 2nd Edition

■ O'Reilly – Linux System Administration

■ http://www.galileocomputing.de/openbook/linux/ OpenBook frei verfügbar

6

Was ist Linux?

■ Linux ist nur der Kernel = Betriebssystem■ Außen herum GNU Tools

Viele kleine Tools die wenige Aufgaben beherrschen „eierlegende Wollmilchsau“ eher selten

■ Distributionen traditionell:

➔ RedHat➔ SUSE (Novell)➔ Slackware➔ Debian – mit diesem System werden wir arbeiten

jünger:➔ Gentoo➔ Ubuntu

7

Distributionen – Was ist das?

■ GNU / Linux kann komplett frei aus dem Internet bezogen werden mühsames kompilieren der Programme „Linux from Scratch“

■ Distributionen stellen lauffähiges System zur Verfügung reduzieren Aufwand stellen Konfigurationstools bereit (z.B. YAST) bringen große Menge Programme mit

8

Warum Linux?

■ Weite Verbreitung – große Community■ Bester Hardwaresupport der freien Systeme■ Frei im Sinne von Freiheit – nicht von Freibier

Quelltexte verfügbar Support kostet natürlich auch hier (Enterprise

Distributionen)■ Benutzerfreundlich im Vergleich zu traditionellen

Unixen■ Stabil, performant■ Kostengünstig■ Keine Virenproblematik

9

Warum Linux nicht?

■ Linux ist nicht besser als...■ TCO nicht unbedingt geringer als bei...■ Linux ist nicht sicherer als...■ Linux hat nicht das „coolste“ Maskottchen ;-)

■ es gibt einige Gründe gegen Linux, aber das soll nicht Thema dieser Lehrveranstaltung sein

10

Geschichte von Linux

■ 1983: GNU Projekt Richard Stallmanmit Ziel eines Unix ähnlichem PosixKompatiblen OS

■ Anfang 1990er noch nicht vollständig■ 1991: Linus Torvalds beginnt mit

Entwicklung von Linux■ 1993: Linux wird von Torvalds unter

GPL Lizenz gestellt■ 1994: Version 1.0 frei gegeben■ 1996: Pinguin als Maskottchen■ 2001: 2.4er Kernel■ 2003: 2.6er Kernel

Heute: 2.6.30 (www.kernel.org) ■ http://nixedblog.thenixedreport.com/__oneclick_uploads/2007/11/gldt76.png

Richard Stallman

Linus Torwalds

11

Weitere freie Unix Systeme

■ BSD Derivate FreeBSD OpenBSD NetBSD Dragonfly, PC BSD usw.

■ BSD Lizenz freier als GPL

■ GNU / Hurd Kernel des GNU-Projekts Wird zusammen mit „Duke-Nukem forever“ erscheinen

■ Open Solaris Mit starkem Einfluss von

Sun Microsystems

12

Fragen

13

Basics / Grundlegendes

14

Dateiorganisation

■ Hierarchisch (wie jedes Moderne OS)■ keine Laufwerksbuchstaben■ „everything is a file“

Dateien & Ordner Hardware-Geräte (/dev/...)

■ gemeinsames Wurzelverzeichnis / engl: „Rootverzeichnis“

■ Groß- / Kleinschreibung ist relevant!■ Character Set wichtig, da nicht durchgehend UTF-

8 verwendet wird (Gegensatz zu Windows)

15

Demo „Everything is a file“

■ Festplatten lassen sich z.B. direkt mit einem Hexeditor öffnen und bearbeiten:

16

Verzeichnisse/ Wurzelverzeichnis, Root

/bin Systemprogramme/boot zum Booten Benötigtes (z.B. Kernel)/dev Gerätedateien/etc Konfigurationsdateien/home Daten der Benutzer/lib System- / Programmbibliotheken/proc Informationen von / für Kernel/root Daten des Superusers root/sbin Programme/tmp temporäre Daten/usr Unified System Ressources

/share/doc Anleitungen, Hilfedateien/src Ablage für Quellcode

/var veränderliche Daten /log Logfiles/spool Druckaufträge, Mails...

17

Dateinamen

■ Länge von Dateinamen: 255 Zeichen■ Erlaubte Zeichen: alle außer „/“

Vermeide Sonderzeichen!

■ Unterschied zwischen Groß/Kleinschreibung

■ Bedeutung eines Punkt im Namen: am Anfang: „versteckte“ Datei

➔ .htaccess Teil des Namens für bessere Lesbarkeit

➔ praesentation.asict.2009 zeigt Dateityp an, Dateiendung wie in Windows

➔ .txt .pdf usw.

18

Dateinamen

■ Programme enden nicht auf .exe■ Endungen prinzipiell nebensächlich

Verknüpfung zu Anwendung wird anhand der ersten Bytes bestimmt (magic number)

z.B: jgp-Bilder: 0xFFD8FF

19

Das /proc Pseudodateisystem

■ Informationen über laufende Prozesse /proc/PID/cmdline - Kommandozeile

■ Informationen über den Kernel /proc/version - Versionsnummer

■ Informationen über das System /proc/cpuinfo /proc/meminfo

■ Einstellungen für den Kernel /proc/sys/net/ipv4/tcp_syncookies - Syncookies

■ Vergleich Anzahl Prozesse aus /proc mit „ps“ ls -d /proc/* | grep [0-9] | wc -l; ps ax | wc -l

20

mounten

■ Einhängen von Devices in den Dateibaum■ mount /quelle /ziel

mount /dev/sda1 /mnt/sda1 ■ Mounten eines Verzeichnisses an mehreren

Stellen mount --bind /mnt/ftp_public /home/ftp/public

■ Windows Freigabe mounten mount -t cifs -o username=abc,password=abc

//ip.adresse/freigabe /ziel/pfad■ unmounten

umount /mountpoint umount -l /mountpoint (für in Verwendung

befindliche MPs)

21

Linux ist ein Mehrbenutzersystem

■ Mehrere Benutzer können gleichzeitig angemeldet sein

■ Rechteverwaltung Strenge Trennung zwischen Benutzern und Gruppen Ein Superuser

➔ root➔ Hat alle Rechte (wie „system“ unter Windows)

■ Unterstützt Access Control Lists(ACLs)

22

Wissenswertes

■ Linux / Unix ursprünglich für Entwickler gedacht, Endbenutzer erst seit kurzem Ziel

■ Keine Rückmeldung ist meist positiv■ Fehlermeldungen lesen – oft ergeben sie Sinn

Wenn nicht, Suchmaschinen helfen weiter■ Kaum „Selbstschutz“ des Betriebssystem vor

falscher Bedienung■ Programme fragen selten

erwarten Parameter■ Extreme Konfigurierbarkeit

„Gefrickel“

23

Wissenswertes

■ Keine Registry Konfiguration in Textdateien (oft /etc) Dadurch diverse Vor- und Nachteile

■ GUI nicht bestandteil des OS GUIs sind normale Programme Windows 2008 Core Server am ehesten vergleichbar,

aber auch hier mehr grafische Elemente

24

Wissensquellen

■ http://www.debiananwenderhandbuch.de■ http://wiki.debian.org ■ http://wiki.debianforum.de

■ http://www.tldp.org

25

Abkürzungen

■ ~/ Homeverzeichnis■ [optional] Optionale Parameter■ * beliebig viele Zeichen■ | oder■ & und■ ^ Strg-Taste

In diesen Folien grün = Konsolenbefehl z.B. date

26

Fragen

27

Kurzeinfühung VMware

VMware Bedienung zeigen

28

Installation

■ Freies System seit 15 Jahren■ Gute Dokumentation■ Wird in kritischen Infrastrukturen verwendet

Große Verbreitung, große Community■ Lange Historie■ Keine Firma im Hintergrund■ Textbasierte & grafische Installation■ Warum genau Debian?

Paketmanagement Ich habe die meiste Erfahrung mit Debian

http://www.debian.org

29

Installation Debian

installation_debian.pdf

30

Fragen

31

Debian Grundlagen

32

Neue Programme installieren

Paketverwaltung■ aptitude – wichtigstes Tool■ dpkg – antik, aber unverzichtbar■ apt-get – ähnlich wie aptitude, keine gui

veraltet, Einstatz nicht mehr empfohlen!

■ http://www.debiananwenderhandbuch.de/paketmanagement.html

33

Aptitude

■ Grafische Oberfläche: einfach aptitude in der Konsole eingeben

■ Bedienung praktisch selbsterklärend, auf Hinweise im oberen Bildschimbereich achten

■ aptitude install packetname■ aptitude remove packetname■ aptitude reinstall packetname

Spezialbefehl zum reinstall inkl. Configs:

■ aptitude -oDPkg::Options::="--force-confmiss" reinstall PAKETNAME

■ Paketübersicht: http://packages.debian.org

34

Aptitude Oberfläche

35

Verwendung des Paketmanagers

■ Konfiguration passiert in /etc/apt/sources.list■ Beispiel:

deb http://ftp.debian.de/debian/ etch main contrib non-freedeb http://security.debian.org/ etch/updates main contrib non-free

■ Paketliste aktualisieren: aptitude update

■ Pakete updaten (wenn updates vorhanden) aptitude safe-upgrade veraltet: aptitude upgrade

36

Remotelogin

■ Arbeiten in VMware Konsole unkomfortabel Langsam Kein Copy & Paste Mausbewegungen eingeschränkt

■ Lösung: Remotezugriff per SSH

(Secure Shell)■ Womit unter Windows?

Putty Alternativen: gibt’s

sicher auch...

37

Putty

■ Putty original http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

■ Portaputty http://socialistsushi.com/2005/11/17/portaputty

38

Putty

39

Fragen

40

Übung 2

putty.pdf

41

Crashkurs Konsole – Die Bash

■ Die wichtigsten Kürzel Befehl / Pfad vervollständigen: Tab letzte Befehle: Pfeiltasten (auf / ab) „hängende“ Konsole wieder holen: STRG+c An den Anfang springen: Pos1 oder STRG+a An das Ende springen: ENDE oder STRG+e

■ Erweiterte Features Befehlshistory durchsuchen: STRG+r <befehl> !$ : nimmt Parameter des letzen Befehls

➔ ls -al /etc/network/interfaces➔ vi !$

- öffnet /etc/network/interfaces Programm in den Hintergrund schicken: Strg+z

➔ Mit fg wieder in den Vordergrund holen

42

Wichtige Befehle

■ ls zeigt Verzeichnisinhalt an (wie „dir“ in Windows) nützliche Optionen

➔ -l detaillierte Ausgabe➔ -a auch versteckte Dateien anzeigen➔ -h human readable, Größen in Mbyte usw.

■ cd – Verzeichnis Wechseln cd .. Überverzeichnis cd /home/thorben absoluter Pfad cd thorben relativer Pfad cd - zurück zum letzen Verz. cd ins Homeverzeichnis cd ../../var/log zwei Ebenen hoch...

43

Wichtige Befehle■ pwd gegenwärtiges Verzeichnis■ mkdir Verzeichnis erstellen■ rmdir (leeres) Verzeichnis löschen■ cp kopieren■ mv verschieben / umbenennen■ rm löschen (es gibt keinen Papierkorb!)

rm -rf bei Verzeichnissen■ cat Datei ausgeben■ ln -s symbolischen Link erstellen■ whoami wer bin ich?■ df -h freien Speicherplatz anzeigen■ who wer ist gerade eingeloggt■ passwd - Passwort setzen■ exit verlassen / logout (STRG+d)■ touch Datei anlegen / Zeitstempel setzen

44

Befehls- und Ausgabeumleitung

■ manchmal will man die Ausgabe eines Befehls in eine Datei oder wo anders hin umleiten

■ manchmal will man die Eingabeeines Befehls aus einer Dateilesen

■ manchmal will man die Ausgabeeines Befehls an einen Anderenfüttern

■ Mit Linux geht das ganz leicht... (mehr oder weniger auch in Windows...)

45

Ein paar Unix-Internals

■ 3 Standard-Filedescriptoren Standardeingabe: stdin

➔ meist Tastatur Standardausgabe: stdout

➔ meist Bildschirm Standardfehlerausgabe: stderr

➔ meist ebenfalls Bildschirm➔ Trennung im Hinblick auf Umleitung sinnvoll

■ sind durchnummeriert STDIN 0 STDOUT 1 STDERR 2

46

Standardfiledescriptoren

■ sind automatisch offen / vorhanden■ viele Funktionen greifen automatisch auf

diese zu■ Filedescriptoren können fast beliebig

umgeleitet werden in Dateien an andere Programme Vorteil:

➔ Kommandos potentiell einfacher, da sie nur von stdin lesen können müssen und nur an stdout ausgeben müssen

47

Ausgabeumleitung

■ Ergebnis wird in Datei geschrieben, nicht auf Terminal

■ Umleitung erfolgt durch „>“ bzw. „>>“ „>“ fängt neue Datei an „>>“ hängt an Bestehendes an

■ kommando > dateiname cat /etc/fstab > /tmp/fstab.kopie

48

Eingabeumleitung

■ Programm liest aus Datei, nicht von der Tastatur■ Umleitung erfolgt durch „<“■ kommando < dateiname

more < /etc/fstab

49

Umleitung der Fehlerausgabe

■ Fehlermeldungen in Datei schreiben■ Umleitung erfolgt durch „2>“■ kommando 2> dateiname

■ Kombinationen kommando < eingabedatei > ausgabedatei 2>

fehlerdatei kommando > datei 2>&1

➔ Standard- und Standardfehlerausgabe in datei

50

Spezialziele

■ Wiederholung: Everything is a File■ Spezialziele:

/dev/null - schwarzes Lochfür arme Bits

/dev/zero - lauter Null-Bytes (0x00) /dev/random - Zufallsbytes /dev/urandom - weniger zufällig

■ diverse andere Gerätedateien Umleitung direkt auf Geräte möglich

➔ cat /dev/zero > /dev/sdb1

51

Pipes

■ Pipes verbinden Ausgabe eines Programms mit Eingabe eines anderen Programms über temporären Puffer

■ mehrere Befehle können so hintereinander geschaltet werden

■ befehl | befehl2 | befehl3 ls -la /etc/ | more

52

Beispiel echo kitten > meow echo "feline" >> meow cat >> meow

tomcat^D (bedeutet STRG+D)

cat < meowkittenfelinetomcat

grep cat < meow > cats cat cats

tomcat cat < meow |grep feline >> cats grep kitten meow >> cats < meow cat

kittenfelinetomcat

quelle nostromo: http://nostromo.joeh.org/content/fhs/kwm06/cor3/cor3_linux_003__flowcontrol_and_redirects.pdf

53

Manpages■ Dokumentation zu Programmen

Linux Programme im Vergleich zu *BSD Programmen oft schlecht dokumentiert

■ Aufruf: man begriff■ Unterteilt in Sektionen

man man man sektion begriff (z.B. man 7 man)

■ Meist sinnvoller im Internet zu suchen als Manpage zu lesen

54

Programme ausführen

■ Einfach Programmnamen eintippen Dazu muss Verzeichnis, in dem das Programm liegt in

$PATH sein➔ Spezielle Umgebungsvariable➔ Analog zu Windows➔ lässt sich mit mit „echo $PATH“ anzeigen

Gegensatz Windows: es werden keine Programme im aktuellen Pfad einfach ausgeführt (Security Feature!)

■ Programm mit vollständiger Pfadangabe starten /usr/bin/less – absoluter Pfad bin/less – relativer Pfad (man muss sich in /usr

befinden) ./programmname - Programm im aktuellen Pfad

ausführen

55

Fragen

56

Übung 3

navigieren.pdf

57

vi / vim

■ Texteditor aus den 70ern■ ist überall vorhanden■ Nach wie vor populär – emacs vs. vi vs. nano■ Gewöhnungsbedürftig (Problemsituationen...)■ Zwei Hauptmodi

Kommandomodus Editiermodus

■ Wichtigste Befehle: ESC (in den Kommandomodus wechseln) :q! (ohne Änderungen verlassen) i (in den Eingabemodus wechseln) :w (Datei speichern) :wq (speichern und verlassen) – alternativ :x

58

vi – nützliche Kommandos

■ x yy – x zeilen kopieren■ x dd – x zeilen ausschneiden■ p – unter aktueller Zeile einfügen■ /begriff – nach begriff suchen

n – zum nächsten Ergebnis springen■ u – rückgängig (undo)■ STRG+r – letzen undo rückgängig (redo)■ SHIFT+g - ans Ende der Datei springen■ :x,y s/suchmuster/ersetze/g – ab Zeile x bis

Zeile y suchmuster durch ersetzen (%-Zeichen anstelle x,y = ganze Datei)

■ http://linuxwiki.de/Vim

59

vimrc

■ nette Parameter für /etc/vimrc bzw. ~/.vimrc(auch direkt im vim anwendbar)

set ignore case nützlich bei Suche➔ im vi mit :set ic

set backup erstellt Backupdatei mit Tilde (~) am Ende

syntax on Syntax Highlighting

colorscheme evening gut lesbares Syntax Highlighting für Putty

set number Zeilennummern anzeigen

60

Fragen

61

Übung 3

vi.pdf

62

Zugriffsrechte

■ Schutz privater Dateien vor Zugriff anderer Systembenutzer

■ Durchsetzung der Rechte wird vom Betriebssystem garantiert

■ sind wirkungslos, wenn von extern (z.B. Live-CD) zugegriffen wird (hier würde Verschlüsselung helfen)

■ Standardmäßig sehr einfach, aber auch ACLs (vergleichbar mit denen bei NTFS) möglich

63

Benutzer – Gruppenzuordnung

■ Jeder Benutzer gehört mindestens einer Gruppe an

■ Kann mehreren Nebengruppenzugeordnet werden

■ Eigentümer kann Rechte für eineGruppe oder für andere vergeben

■ „id“ – zeigt Gruppenzugehörigkeit id benutzer1 id

■ „Benutzerdatenbank“ aus: /etc/passwd /etc/shadow /etc/groups

64

Granularität der Rechte

■ Granularität der Rechte Eigentümer (user) Benutzergruppe (group) Andere (others)

■ Reihenfolge Auswertung der Rechte1. Prüfen der Eigentümerschaft2. Prüfen der Gruppenzugehörigkeit3. sonst Zugehörigkeit zu anderen Anwendern

65

Benutzerrestriktionen / Limits

■ /etc/security/limits.conf Datei ist selbsterklärend Zuordnung einer Ressource zu

Benutzer

■ Einschränkung von: max. geöffnete Dateien max. CPU Zeit max. Anzahl an Prozessen max. gleichzeitige Logins standard Priorität mit der Prozesse ausgeführt werden ...

■ anzeigen mit „ulimit -a“ in der bash zsh und tcsh bieten intern den „limit“

66

nice

■ Priorität für CPU Zeit■ -20 bis 19■ je weniger "nice" desto höher die priorität■ Anzeige mit „top“■ nice --10 vi /etc/apt/sources.list■ nice -n -10 vi /etc/apt/sources.list

■ htop: grafisches einstellen des nice-Wert

67

Fragen

68

Übung 4

benutzer.pdf

69

Rechteübersicht

Recht Datei Verzeichnis

r (read)

w (write)

x (execute)

Datei kanngelesen werden

Verzeichnisinhaltkann angezeigtwerden

Datei kanngeschrieben werden

Verzeichniseintragkann erstellt und gelöscht werden

Datei kannausgeführt werden

In Verzeichnis kanngewechselt werden

70

Rechte anzeigen

■ ls -la

71

Dateirechte

Quelle: http://nostromo.joeh.org/content/fhs/kwm06/cor3/cor3_linux_003__flowcontrol_and_redirects.pdf

72

Rechtevergabe symbolisch

■ chmod [Bereich] Operand Berechtigung datei

r Readw Writex eXecute

Berechtigung

+ Recht hinzufügen- Recht wegnehmen= Recht absolut setzen

Operand

u Eigentümer (user)g Gruppe (group)o Übrige Benutzer (others)Keine Angabe = ugo

Bereich

73

Rechtevergabe symbolisch

Schreib- und Leserecht für Benutzerchmod u=rw d

Benutzer Schreibrecht entziehen und Gruppe Execute-Recht zuweisen

chmod u-r,g+x d

Alle Rechte für alle entziehenchmod ugo-rwx d

Alle Rechte für die Gruppechmod g+rwx d

Gruppe und Anderen Schreibrecht entziehenchmod go-w datei

Execute-Recht für Benutzer, Gruppe, Anderechmod +x datei

74

Rechtevergabe direkt

■ chmod Modus Dateiname■ Modus sind 3 Oktalzahlen

jede steht für Bereich1. User2. Group3. Others

● zugeteiltes Recht ergibt sich aus Summe der Einzelrechte● rwx = read + write + execute => 4+2+1=7

● chmod 750 dateiname

1execute2write4read

ZahlRecht

75

Rechtevergabe direkt

■ Zugriffstabelle 0 = 0+0+0 = --- 1 = 0+0+1 = --x 2 = 0+2+0 = -w- 3 = 0+2+1 = -wx 4 = 4+0+0 = r-- 5 = 4+0+1 = r-x 6 = 4+2+0 = rw- 7 = 4+2+1 = rwx

■ chmod 742 file1 ; chmod a=rw,u+x,g-w,o-rx file2■ ls -la file*

-rwxr---w- 1 thorben thorben 0 Nov 11 10:18 file1 -rwxr---w- 1 thorben thorben 0 Nov 11 10:18 file2

76

Besitzrechte

■ Eigentümer Benutzer wird neuer Eigentümer, alter Eigentümer

verliert Rechte an Datei chown username Datei Befehl kann nur von root

ausgeführt werden

■ Gruppenzugehörigkeit chgrp gruppenname Datei Befehl kann nur von root

oder vom Eigentümer ausgeführt werden, sofern dieser auch Mitglied der neuen Gruppe ist

77

Erweitertes Rechtemanagement■ umask

default Rechte einer Datei sind 666 default Rechte eines Verzeichnisses sind 777 thorben@karl:~$ umask 0022 Einstellung in /etc/profile

➔ umask 022 durch Subtraktion des umask

Wertes von den default Rechten ergibt sich für Dateien 644 und Verzeichnisse 755

■ Hinweis: Änderungen an /etc/profile können mit „source /etc/profile“ übernommen werden

78

Erweiteres Rechtemanagement

■ „lsattr“ zeigt zusätzlich Attribute■ Immutable Bit

Datei wird unveränderbar (auch für root!) chattr +i datei *BSD kennen hier mehr und bessere Optionen

➔ Z.B. Datei darf nur größer werden (gut für Logfiles)➔ Änderungen mit „chattr“ auch für root nicht möglich wenn

kern.securitylevel hoch genug schützt effektiv vor übereifrigem root Benutzer ;-)

79

Erweitertes Rechtemangement■ Sticky Bit - 1

Verzeichnis: nur Besitzer einer Datei darf sie löschen➔ drwxrwxrwt 5 root root 4096 Sep 24 21:05 tmp

■ SGID Bit - 2 Verzeichnis: alle neu erstellten Dateien gehören nicht

der Gruppe des Erstellers, sondern der Gruppe, die das Verzeichnis besitzt

■ SUID Bit - 4 Dateien: Prozess läuft unter Identität der besitzenden

Gruppe➔ rwsr-xr-x 1 root root 27132 /usr/bin/passwd

■ chmod 1755 verzeichnis

80

Fragen

81

Übung 5

rechte-umgang.pdf

82

Thema Netzwerk...

83

Netzwerkkonfiguration■ ifconfig

gibt Auskunft über aktuelle Netzwerkeinstellungen ifconfig -a alle Netzwerkkarten, auch inaktive

■ ifconfig eth0 10.17.1.36 netmask 255.255.255.0 setzt IP und mit gewünschter Netzmaske

■ route add default gw 10.17.1.1 setzt Standard Gateway route Routingtabelle anzeigen

■ DNS-Server festlegen, eintragen in /etc/resolv.conf

■ Netzwerkkonfiguration auch über den Befehl „ip“ möglich

84

Netzwerkkonfiguration■ /etc/network/interfaces

auto eth1iface eth1 inet static address 10.17.1.36 netmask 255.255.255.0 network 10.17.1.0 broadcast 10.17.1.255 gateway 10.17.1.1

■ diese Datei gibt es vermutlich nur bei Debianderivaten!

■ /etc/init.d/networking restart – Netzwerk neu starten

■ dhclient ethX DHCP-Adresse an ethX beziehen

85

Fragen

86

netzwerk.pdf

87

Wichtige Tools

Kleine und große Helferlein...

88

Admintools

■ top - zeigt Auslastung / Prozesse an htop: mehr features, sehr empfehlenswert!

■ ps - zeigt Prozesse (ps aux)■ uptime - zeigt uptime und load an■ du / df - belegter Speicherplatz (df -h)■ watch Befehl - Befehl alle x Sekunden ■ lspci / lsusb - listet Hardware■ lsof - ls open files

lsof -Pni |grep LISTEN - Netzwerkprogramme■ kill PID - Prozesse beenden

killall Prozessname - beendet alle Prozesse kill -9 PID - hartnäckigen Prozess beenden

■ netstat - belegte Ports (netstat -tanup)

89

Admintools

■ passwd - Passwort setzen■ shutdown - herunterfahren / neustarten■ nc - Netcat Netzwerktool

nc -l -p 1337■ telnet - TCP Ports prüfen

telnet ip-address 1337■ ncftp - FTP Konsolenclient■ wget - Dateidownload

90

Wichtige Befehle

■ head Anfang einer Datei anzeigen■ tail -f Ende Datei anzeigen (-f = autoscroll)■ tools zum (Ent)packen

tar ➔ tar -xfvz datei.tar.gz tar.gz Archiv mit Ausgabe entpacken➔ tar -xfj datei.bzip2 bzip2 Archiv ohne Ausgabe entpacken➔ tar -jcf archiv.bzip2 datei1 datei2 erstellt bzip2 aus datei1&2

bzip2 unzip gunzip

■ file gibt Dateityp aus■ stat gibt Dateistatusinformationen aus■ grep suchen nach Begriffen in Dateien

grep -ir suchbegriff /etc/ Case-insensitive Suche in /etc

91

Suchen

■ find sucht nach Dateien / Verzeichnissen find /root -name "unterlagen.*" find /root | grep unterlagen find /root -size +500k find . ! -name '*.tex'

http://www.galileocomputing.de/openbook/linux/linux_kap05_005.htm#t2t31 ■ locate sucht in locate-Datenbank (schnell)

Indizierung des Dateisystems vorher nötig -> updatedb slocate sichere Variante von locate

■ updatedb indiziert Komplettes Dateisystem Achtung: hohe I/O-Last zu erwarten!oft cronjobs!

92

Fragen

93

SSH – Secure Shell■ verbreitetste Remote Shell■ baut Verbindung verschlüsselt auf

sehr sicher ausschließlich Version 2 verwenden!

■ SSH Suite sehr mächtig tunneling „Fenster“ eines entfernten Rechners darstellen seit SSH 4.3 vollständige VPN Funktionalität

■ ssh benutzername@zielrechner [befehl] führt Befehl auf Zielrechner aus

94

SSH – Secure Shell

■ Schlüsselbasierte Authentisierung basiert auf Public Key Verfahren (bekannt?) ist bequemer, erspart ständige Passworteingabe privater Schlüssel muss geschützt sein

■ ssh-keygen -t rsa – erzeugt RSA Schlüssel wer bequem ist, vergibt hier kein Passwort

■ Public Key muss in ~/.ssh/authorized_keys auf Zielrechner kopiert werden

95

Public Key Verschlüsselung

96

SSH – Secure Shell

■ X ist netzwerkfähig Programme auf entfernten Rechner leiten Ausgabe auf

lokalem Schirm benötigt X-Server auf Empfängerseite Verbindung ungesichert

■ SSH ermöglicht sichere Weiterleitung der GUI Ausgabe Authentisierung Verschlüsselung

■ ssh -X benutzer@zielrechner programm

97

SCP – Secure Copy

■ scp - Teil des SSH Pakets■ ermöglicht sichere Dateitransfers■ funktioniert bidirektional

■ scp [user@quelle:]/pfad [user@ziel:]/pfad

alternativ wenn Berechtigungen wichtig sind:

■ tar cpf – quellpfad/ | ssh root@rechner “(cd /zielpfad; tar xpf - )“ der „p“ Parameter ist für Berechtigungen

98

Fragen

99

Übung 6

ssh.pdf

100

Kompilieren von Programmen

■ in Binärdistributionen eher selten nötig■ Sourcecodebasierende Distributionen (Gentoo...)

meist automatisch■ vermeide Kompilierorgien

Sicherheitsupdates? Wartung? Versionskonflikte? Deinstallation?

■ hin und wieder braucht man es einfach :-(

101

Dreisatz

■ In Debian: das Paket „build-essential“ installieren■ Saubere Lösung: Paket bauen

■ Quick & Dirty: ./configure --prefix=/installations/pfad make make install make uninstall

■ INSTALL bzw. README lesen – oft wichtige Hinweise

102

Dreisatz

■ configure zur Konfiguration von Einstellungen configure --help / configure -h immer mit „--prefix“ damit Dateien nicht über

Dateisystem verstreut werden Fehler die angezeigt werden möglichst beheben

■ make eigentlicher Kompiliervorgang sollte nach fehlerlosem configure gehen

■ make install kopiert kompilierte Daten in „--prefix“ Pfad

■ make uninstall – selbsterklärend

103

Fragen

104

Übung 7

kompilieren.pdf

105

Wichtige Dienste

106

Syslog

■ /var/log messages generelles Log, erste Anlaufstelle syslog Systemlog, sollte aufgeräumt sein auth.log Authentisierung mail.log Mail kern.log Kernel apache / samba / mysql

usw. :➔ Logdateien der Dienste

■ tail -f logfile Logfile live mitlesen

■ auf Größe der Logfiles achten, sollten rotiert werden (z.B. durch „logrotate“)

107

Syslog■ Standarddienst auf meisten *nix Systemen■ syslog-ng als Nachfolger■ Alternativen bieten Verschlüsselung, SQL...:

rsyslog Modular Syslog

■ /etc/syslog.conf relativ selbsterkärend Facility.Level Action „-“ Zeichen am Anfang steht für asynchrones

Schreiben auf die Festplatte und trägt zur Performanceverbesserung bei

■ Syslog ist netzwerkfähig hört auf UDP Port 514 zentrales Logging / Logüberwachung möglich

108

Syslog

■ Facilities (Quellen) zeigt wer Log gesendet hat

■ Kategorien authpriv cron daemon kern lpr mail mark news syslog ...

109

Syslog

■ Severity (Log Level / Schweregrad): debug info notice warning (or warn) err (or error) crit alert emerg (or panic)

■ warn, error, und panic sind veraltet, können einem aber begegnen

110

Der Cron Daemon

■ Zeitgesteuertes Ausführen von Programmen■ verschiedene cron-Dienste

anacron, vixie-cron usw.■ Zeitpunkte der Ausführung

in crontabs■ /etc/crontab

crontab für das System nur für root schreibbar cron sollte Änderungen

selbsständig bemerken,manchmal muss man „crontab /etc/crontab“ ausführen (zur Not cron restarten)

■ crontabs für jeden Benutzer /var/spool/cron/crontabs crontab -e editieren der eigenen crontab

111

Der Cron Daemon

■ Aufbau relativ sebsterklärend wann soll wer etwas tun

MAILTO=user@domain.org0 4 * * * root ntpdate ntp1.fau.de ptbtime1.ptb.de*/30 * * * * root /usr/bin/webalizer

■ teilweise Leerzeile am Ende nötig■ /etc/cron*

zur besseren Übersicht sind Aufgaben in verschiedenen Verzeichnissen zu finden

■ cron.allow / cron.deny zur Einschränkung möglich

■ Beispiel:# run myprogram at 6:15am and 6:15pm on the 1st and 15th15 6,18 1,15 * * myprogram

112

ntpd■ Korrekte Uhrzeit wichtig

Nachvollziehbarkeit von Logdaten Timestamps von Dateizugriffen Netzwerkdienste verlangen teilweise synchrone Zeit Zeit darf nie rückwärts laufen „timestamp in future“ prob.

■ Zeit läuft „nie“ korrekt■ Virtuelle Maschinen weit

problemematischer■ Lösung

ntpd (ntp Daemon) ntpdate <server>

■ www.ntp.org Serverpools at.pool.ntp.org europe.pool.ntp.org de.pool.ntp.org

113

ntpd■ /etc/ntp.conf

server de.pool.ntp.org iburstserver 2.europe.pool.ntp.org iburstserver at.pool.ntp.org iburstserver de.pool.ntp.org iburst

114

Fragen

115

Der Bootloader■ sehr klein, da Bootsektor beschränkte Kapazität

hat■ läd den Kernel

kann spezielle Optionen mitgeben Auswahl verschiedener Kernel

■ muss Dateisystem verstehen■ heutzutage meist grub, lilo eher selten■ grub liest Informationen von Festplatte■ lilo speichert alles in MasterBootRecord

■ Security: setzen eines Bootloader-Passworts um booten in den single-Modus zu verhindern

116

117

Der Bootloader

■ zusätzliche Kernelparameter möglich■ kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 clock=pit

■ Beispiele für Parameter clock=pit (für Uhrzeit in VMWare) nosmp (kein Multiprozessorsupport) noapic (kein APIC) noacpi (kein ACPI Powermanagement) init=/bin/bash (alternativer INIT-Prozess) single (in den Single-Modus booten)

118

Fragen

119

boot.pdf

120

Warum nicht als root arbeiten?

■ Bedienungsfehler■ kein Logging■ Sicherheitskritisch

z.B.: bugs in tar führen dazu, dassnicht in richtigen Pfadentpackt wird, wodurch beliebige Dateien überschrieben werden können

Ausführung unbekannter Programme

121

sudo

■ führt Befehle mit root-Rechten aus ■ Ubuntu nutzt dies sehr konsequent, indem

man normal nicht als root arbeitenkann root hat kein Passwort, damit ist

keine Anmeldung als root möglich■ sudo logt alle Aktivitäten in /var/log/auth.log

bei anderen Distributionen evtl. anders■ Nachvollziehbarkeit bei mehreren Admins■ User braucht kein root-Passwort■ Definition der Rechte in /etc/sudoers

bearbeiten mit visudo (hat Syntaxcheck) normaler Editor tuts auch

122

sudo■ Ubuntu: alle Mitglieder der

Gruppe admin bekommen alle Rechte mittels sudo

■ /etc/sudoersroot ALL=(ALL) ALLthorben ALL=(ALL) ALLkarl ALL=(ALL) NOPASSWD :/etc/userscripts/create_email.sh,/bin/passwdkatrin server1=(ALL) /sbin/cfdisk

Cmnd_Alias SHUTDOWN = /sbin/shutdownskx ALL = SHUTDOWN

■ man sudoers sehr ausführliche Anleitung

■ http://www.debian-administration.org/articles/33

123

su■ su = switch user■ lässt normalen Benutzer zu root werden■ root kann als beliebiger User agieren

su thorben User muss gültige Shell haben

■ su kann jeder Benutzer ausführen■ Benutzer muss root-Passwort kennen■ mit „su -“ werden Umgebungsvariablen des Users

übernommen, in den man sich wandelt■ kein Logging der Aktivitäten

■ Befehle als anderer User ausführensu -c “id“ thorbenuid=1003(thorben) gid=1003(thorben) groups=1002(thorben1),1003(thorben)

124

Fragen

top related