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
[email protected] 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