Kurs
Beschreibung des Kurses:
Titel: "Linux für Fortgeschrittene" Theorie und Praxis: 80 Einheiten a 45min Zeit: von Mo 11.10.2010 bis Fr 22.10.2010 täglich acht Einheiten Auftraggeber/Träger: D.U.T. Wirtschaftsfachschule GmbH & Co. Berliner Ausbildungs- und Beratungs- KG Hardenbergplatz 2, 10623 Berlin Telefon: +49 30 882 22 00/11 Telefax: +49 30 881 57 76 E-Mail: info@dut.de Internet: www.dut.de Technik: Herr Bernhard Schulungsort: Charlotte-Salomon-Grundschule Großbeerenstraße 40 10965 Berlin-Kreuzberg Teilnehmer: 10 Teilnahme für alle Bezirke
Übersicht
- Softwareauswahl
- Benutzereinrichtung und Verwaltung
- Zugriffsrechte im Dateisystem
- Netzwerkeinrichtung
Dozenten
Kürzel |
Name |
Homepage |
Emailadresse |
Bereich |
fho |
Frank Hofmann |
IT |
||
sgu |
Sven Guckes |
IT |
||
csc |
Christian Schubert |
IT |
||
tos |
Thomas Osterried |
IT |
||
mal |
Martin Alfke |
IT |
Ablauf
Woche #1
Zeit |
8:00-9:30 |
10:00-11:30 |
12:15-13:30 |
13:45-15:00 |
11.10. Montag |
Einführung, Referenten+Teilnehmer, Kursinhalte, Ablauf, Dokumentation im Wiki, Arbeitsumgebung (fho, sgu) |
Linux-Live-Systeme im Überblick, Funktionsweise, Auswahl (fho, sgu) |
Erkundung des Host-Systems (Netzwerk, Benutzer, Platten) (fho, sgu) |
Daten sichern und zurückspielen (fho, sgu) |
12.10. Dienstag |
Hilfe! Wo bekomme ich weitere Informationen: Materialien, Wiki, Arbeitsweise im Wiki (csc) |
Filesysteme: Varianten, Fehlerdiagnose, Reparatur (csc) |
Datensynchronisation, ssh und scp (csc) |
Remote Management, ssh-auto-login, Schlüsselverifizierung (csc) |
13.10. Mittwoch |
Paketmanagement: Paketformate (deb, rpm, src), Pakete analysieren (mal) |
Werkzeuge dpkg, apt, aptitude, synaptic, apt-get (mal) |
Paketquellen und Vertraulichkeit, Aufsetzen eines Debian-Mirrors (mal) |
Integration von Fremdformaten - Chancen und Risiken (mal) |
14.10. Donnerstag |
Netzwerkdiagnose: Werkzeuge im Netzwerk (ping, ifconfig, traceroute, ethtool, wireshark) (fho, tos) |
iptables (fho, tos) |
System- und Prozessinformationen - Dienste betreuen und absichern (fho, tos) |
Umgang mit Prozessen (fho, tos) |
15.10. Freitag |
Benutzerverwaltung - Nutzer anlegen, löschen, ändern, Quotierung (fho, sgu) |
Benutzer- und Zugriffsrechte (fho, sgu) |
Sichere Passwörter (fho, sgu) |
Daten und Partitionen absichern (fho, sgu) |
Woche #2
Zeit |
8:00-9:30 |
10:00-11:30 |
12:15-13:30 |
13:45-15:00 |
18.10. Montag |
Virtualisierung: Überblick und Grundlagen (csc) |
Image beziehen, Verwaltung von Snapshots (csc) |
Anpassung und Kommunikation im Netzwerk (csc) |
Erstellung und Test eigener VMs (csc) |
19.10. Dienstag |
Systeme pflegen - Distributionsauswahl (stabil vs. brandneu) (mal) |
Einrichtung einer Testumgebung und Distributionsaktualisierung (mal) |
FAI / Versions- und Konfigurationsmanagement (Teil 1) (mal) |
(Teil 2) (mal) |
20.10. Mittwoch |
Netzwerk-Filesysteme - Überblick (NFS, AFS, SMB) (tos) |
NFS (tos) |
SAMBA (tos) |
Agieren in gemischten Umgebungen (tos) |
21.10. Donnerstag |
Webservices - Apache und weitere Dienste (fho) |
Proxy, Filterung (fho) |
Konfiguration und Absicherung der Freigaben (fho) |
Rechte und Pflichten des Admins (fho) |
22.10. Freitag |
Dokumentation und Service - Rechner und Dienste korrekt benennen (fho) |
Benutzerdokumentation, Ticketsysteme, Wartungszyklen (fho) |
Wie trage ich zu Freier Software bei? (fho) |
Weiterbildung, Kursabschluß (fho) |
Inhalte
Basissystem (unter Vorbehalt der technischen Machbarkeit)
- Knoppix 6.3 DVD
- Debian GNU/Linux 5 / grml 2010.04 als Live-System auf USB-Stick
Dokumentation
1. Tag
2. Tag
3. Tag
4. Tag
5. Tag
6. Tag
SSH
Schlüssel erzeugen |
ssh-keygen -t rsa -b 2048 -C "Ein Kommentar" |
Fingerprint anzeigen |
ssh-keygen -lf /Verzeichnis/zum/Lagerort/der/Keys |
Schlüssel übertragen |
ssh-copy-id -i /Verzeichnis/zum/Lagerort/des/PublicKeys user@host |
Passphrase merken |
ssh-add /Verzeichnis/zum/Lagerort/des/PrivateKeys |
SSH sicher machen durch Einstellung in /etc/ssh/sshd_config:
wenn möglich, den Port ändern |
PermitRootLogin no |
PubkeyAuthentication yes |
PasswordAuthentication no |
UsePAM no |
AllowUsers user user@host |
... und nach der Änderung der Konfigurationsdatei noch ein beherztes
sudo /etc/init.d/ssh reload
zum Abschluss und die Änderungen werden wirksam.
Wer von einem Windows-System auf ein *nix-System zugreifen muss, kann das mit PuTTy machen.
Wer von oder zu einem Windows-System Dateien kopieren möchte, der kann das mit WinSCP machen.
7. Tag
TOS
Netzwerk-Filesysteme - Überblick (NFS, AFS, SMB)
Wozu Network-Filesysteme?
- Unterschied zu "Entfernten Bildschirm übertragen" rdesktop / vnc / x2go / kvm
- Bildübertragung macht viel Traffic
- Terminalserver braucht viel Rechenkapazität für vergleichsweise wenige Nutzer
- File kopieren mit ftp, scp, rsync, http-download (upload über wedav)
- Inter-User, Inter-Server: unterschiedliche Absicherung / Autorisierung
- Tripple-A: Authentication, Authorization and Accounting
- quota: Speicherplatz pro Nutzer limitieren
Frage beantwortet: was wenn Nutzer den kompletten Speicherplatz "zumüllen"? -> Mit Partitionen arbeiten, damit der sonstige Serverbetrieb, z.B. E-Mail, nicht beeinträchtigt wird.
Einschub: Filesysteme generell
- Überblick über Filesysteme (ext2, ext3, ext4, zfs, btrfs) und Konnzepte zur Erhöhung der Datensicherheit (Mirror, md5-sum über die geschrieben Blöcke um Mediendefekte zu erkennen), snapshots (schnelles Backup), etc..
NAS / SAN
- Network-attached-Storage (NFS, Samba, ..)
- Storage-Area-Network (iSCSI, ... - Blockbasiert, vergleichbar mit Festplatten (sda, ..))
- In einem SAN erfolgen Datenzugriffe wie bei DAS blockbasierend, das Dateisystem wird also durch den zugreifenden Rechner verwaltet. Bei NAS fordert der Server dagegen bei einem dateibasierten Datenaustausch über SMB/CIFS oder NFS ganze Dateien (beispielsweise: „Datei /home/user/readme.txt“) oder Ausschnitte aus Dateien von einem entfernten Speicherort an, das Dateisystem wird in diesem Fall im Server verwaltet. In SANs wird meist ein SCSI-Kommunikationsprotokoll verwendet, das auf Fibre Channel oder iSCSI als Transport-Protokoll aufsetzt. Seltener und praktisch nur im SOHO-Bereich vertreten, sind Implementierungen auf AoE Basis.
NFS
- Unix Standard. Ende der 80'er
- NFSv4 bringt Verschlüsselung und kerberos-Integration (zur Authentication) mit
- Nachteile
- teils Komplex
- Verklemmungen möglich
- Einrichtung ist sehr einfach und funktionierte im Test völlig schmerzfrei.
- /etc/exports (s. man page exports(5))
- /srv/export 192.168.100.0/24(rw,no_subtree_check)
- Voraussetzung: Paket nfs-kernel-server installiert.
Startup-Scripte prüfen Existents von /etc/exports. Da sie bisher nicht existierte, mußten wir /etc/init.d/nfs-kernel-server start und /etc/init.d/portmap start ausführen; ein "Reboot" hätte auch genügt - aber wir können es ja besser
- Klappts? showmount --exports
- Neue Eintraege in /etc/exports: exportfs -a (bei neuen Einträgen); exportfs -r (bei geänderten Einträgen, z.B. aus rw ro gemacht).
- Von remote: showmount --exports 192.168.100.100 (IP des Servers)
- Mounten: mount -t nfs 192.168.100.100:/srv/export /mnt
- Auf Knoppix mußte zunächst [etc/init.d/portmap gestartet werden
- Auf meiner Ubuntu hatte ich keinen rpc.statd, der für das File-Locking (welches konkurrierende schreibende Zugriffe regelt) zuständig ist, installiert war. Ich mußte noch die Option -o nolock angeben.
- Im Gegensatz zu Samba (s.u.): keine Broadcasts. D.h. Computer im Netz "lernen" diese Freigabe nicht automatisch.
- NFS ist transparent für spezielle Dateien die es unter Windows nicht gibt (block- und character-devices, socket-files, usw)
- Sicherheit (Nutzerautorisierung): erst mit Konfiguration von kerberos. Das ist komplex und sprengt unser Zeitlimit. Warum zeigen wir sowas? 1. Damit genau diese Sicherheitsfrage kommt. Danke! 2. ro-Freigabe für Programme oder Dokumente (z.B. Unterrichtsmaterialien) sind auch mit diesem Sicherheitsstandard machbar. 3. Komplettes Root-Filesystem exportierbar und damit sind linux-Clients komplett übers Netzwerk bootbar, ohne eigene Platte [Einschub: "RAM"-Filesystem ramfs z.B. für /tmp als flüchtiger nicht-reboot-fester Speicher]
- Sicherheitskonzept aus der Historie begründet: damals gab es keine tragbaren Computer - ja und oft nicht einmal zugängliche Netzwerkdosen. Nutzer haben keine Boot-CD mit Linux sondern sitzen in ihren User-Rechten gefangen vor seriellen Terminals..
- Vergleich der uid/gid, und mapping von root (uid 0) nach 2^16-1 (anonymous). Filesysteme speichern immer nur numerische Werte für uid/gid. Die eigentliche Zuordnung zum Namen macht die Workstation bei der Anzeige z.B. der Ausgabe von "ls -l". "ls -ln" zeigt die numerischen Werte statt den Namen.
- Test: Freigabe /srv/existiertnicht in /etc/exports eingetragen. /srv/existiertnicht existiert nicht. exportfs -a. WS sagt "permission denied". Auf Server mkdir /srv/existiertnicht. Geht immernoch nicht. exportfs -r gemacht. Jetzt erst sieht das System dieses Verzeichnis als gültig an und ein Mount klappt.
SAMBA
- Vorteile
- Bringt Verschlüsselung von Hause aus mit (frühe Windows-Versionen kannten noch keine Verschlüsselung. Mußte in heterogenen Netzen mit registry Key vereinheitlicht werden).
- shared Freigaben extrem leicht einzurichten
- Einschränkung bei unix
- Da unix-Rechte nicht konplett abgebildet werden (Owner und Permissions, special files (char, block, sockets), nur bedingt für Workstations einsetzbar
- proprietär / reverse engineering. Microsoft Monopol. Gerichtliche Klärung führte zu Offenlegung der De-facto-Standards. Vergleich Liberalisierung Strommarkt.
- netbios: Frühe Versionen zu Zeiten zu Win3.1 haben direkt auf ethernet, ohne IP, gearbeitet. Vergleiche dazu: ipx. Btw, Win3.1 konnte von Hause aus noch kein IP. Microsoft wollte ein eigenes Netzwerk aufbauen; das Internet entwickelte sich aber schneller und verbreitete sich rasant.
- Linux Samba bringt ebenfalls Kerberos und LDAP Integration mit.
Warum unter Linux? a) Linux-Server sind leichter wartbar b) Linux als WS: ich möchte trotzdem auf Windows-Freigaben zugreifen können.
"Active Directory" - Windowsbezeichnung für ldap, samba und kerberos
- Kerberos ist ein sehr altes Protokoll, das mit Windows 2000 wieder ausgegraben wurde. Kerberos arbeitet mit signierten "Tickets". Vergleich: Ausweis zeigen kann jeder (sofern das Bild ähnelt) - frage ich nach dem Geburtstag und vergleiche ihn mit dem Ausweis, fällt eine Täuschung ggf. auf. Kerberos ermöglicht "Single-Sign-On" (Ticket vorzeigen)
- ldap: Lightweight Directory Access Protocol. Von der IETF entwickelt. "Verzeichnisdienst", hierarchische Datenbank (Baumstruktur). Kann z.B. Nutzer-Namen und Passworte speichern (oder statt Passworten den Querverweis auf Kerberos geben). Nutzer können in bei Linux-System auch über ldap konfiguriert sein (statt passwd, shadow, group).
Programme
smbfs, smbclient
- smbfs: Mit Mount-Options kann man z.B. Zugriffsrechte feiner granulieren, und angeben wie und ob Umlaute konvertiert werden oder wie die unterschiedlichen EOL-Konventionen (\r\n, \n) behandelt werden.
Funktionsweise
Die Freigaben wie Drucker und Speicherorte konnte man mit smbclient -L 192.168.100.114 einsehen.
Mounten: smbclient '\\192.168.100.114\lk' hier get / put / cd Befehle möglich wie bei anderen ftp-Programmen. Ins Filesystem einmounten: mount -t smbfs //192.168.100.114/lk /mnt [vgl. Befehl f. nfs vom Vormittag] Nutzer für Samba anlegen: smbpasswd -c nutzername (c = create). Warum: Samba benötigt Passworte die in einem anderen Verfahren gespeichert werden als in unix shadow. Password-Backend war tbdsam. Tests unter Nutzernamen ("lk") haben nicht funktioniert; abgebrochen. Hier wären auch andere Verfahren wie ldap möglich. Dank "guest ok = yes" war anonyme Anmeldung möglich. "read only = no" erlaubt allen Nutzern zu schreiben; "read only = no" ergibt eine read-only-Freigabe, "interfaces = eth0": war nötig, damit samba nicht nur auf localhost "hört" (Sicherheitsfeintunung). Der Speicherort "/lk" ist nicht weise gewählt gewesen - ich wollte die Pfade bei den Tests nur kurz halten. Ich präferiere sonst, linux FHS konform, /srv/. Wichtiges zu Samba: 2 Dienste: nmbd (Windows-Namensauflösung; Broadcasts), Port udp 137. smbd (Samba), Port tcp 139. Samba vereint Drucker- und Dateifreigaben unter einem Protokoll. Angesprochen: os level = ...: Prioritätsstufe damit Server "Browse Elections" gegenüber Workstations gewinnen. Wie besprochenhier die angepasste /etc/samba/smb.conf; eine der best-dokumentierten Konfigurationsdateien ;)
Samba Test-Konfiguration
$ grep -v \# /etc/samba/smb.conf|grep -v ^\;|grep -v ^$ [global] workgroup = "linuxkurs" server string = %h server (Samba, Ubuntu) dns proxy = no interfaces = eth0 bind interfaces only = yes log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes [lk] path = /lk comment = Samba Freigabe Thomas' Notebook browseable = yes read only = no guest ok = yes [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printershttp://apache.org/ browseable = yes read only = yes guest ok = no
sshfs
- ssh haben wir kennengelernt. Einloggen auf Server und dort arbeiten.
- sftp: vorgeführt. Bedient sich ähnlich wie ftp (ls, cd, put, get). Nur mit Verschlüsselung. Teil von openssh. Arbeitet mit dem selben Protokoll wie ssh (selber Port, TCP 22). Beispiel: Kopieren der Daten von remote nach lokal. lokal geändert. wieder auf Server übertragen.
sshfs user01@192.168.100.100: /mnt
- als Nutzer ausführbar. Wenn user in Gruppe fuse. fuse helper: /bin/fusermount; suid bit root (läuft damit unter root Rechten). Prüft ob user in Gruppe fuse, und wenn ja wird Mount erlaubt.
- Mit Mount-Options kann man z.B. Zugriffsrechte feiner granulieren.
webdavfs
- Vorbereitet. Wir kamen leider nicht dazu. Speichern von Daten auf einem Webserver, z.B. zum Aktualisieren von Homepages. Wird von Linux, MACOSX, Windows unterstützt. Auch mit Verschlüsselung (webdavs statt webdav) verfügbar. Moderne Windows-WS versuchen teils auch im LAN webdavfs statt samba.
gnomevfs abstraction layer
- Wir testen mit einem Gnome Dateimanager und verbinden uns dort per sshfs auf den Server.
- Interessant: Mount taucht nicht bei "df" bzw. "mount" auf. Wird intern von der gnomefs-Library abgewickelt. Führt damit auch nicht zu Verklemmungen, wenn ich mein Notebook zuklappe und gehe.
- Applikationen (z.B. gedit) die eine Datei über den Dateimanager öffnen erhalten den sshfs-file-handle. Sie bauen keine neue Verbindung auf sondern nutzen die bestehende. Nur Applikationen die gnomevfs implementieren können so funktionieren, da es, wie gesagt, keinen realen mountpoint im Filesystem gibt.
AFS: ein Exot
AFS is a distributed filesystem allowing cross-platform sharing of files among multiple computers. Facilities are provided for access control, authentication, backup and administrative management.
- Nicht angesprochen. Stand auf der Liste.
Blockorientierte Freigaben von Geräten (SAN)
- AOE - ATA over Ethernet. Also von Server z.B. /dev/sdb übers Netzwerk freigegeben und auf der WS sichtbar gemacht. Dort kann gemounted werden. WS verwaltet Dateisystem. Achtung: keine Mehrfachzugriffe möglich, sonst entstehen gehexelte Daten -- ausser wenn Cluster-Filesysteme wie ocfs2 genutzt werden.
- drbd - RAID 1 over tcp/ip. Also Spiegeln einer lokalen Platte auf einem remote Server. Mit ocfs2 kann man auf beiden Seiten schreibend zugreifen.
- iSCSI - Authentication. SCSI Befehle über tcp. Wird idR. in teuren externen Festplattenarrays genutzt; diese arbeiten oft nur mit teuren Festplattentypen zusammen.
- nbd (network block device - wollte ich nur erwähnt haben)
- Cluster-Filesysteme gfs, ocfs2
Zentrale Rechteverwaltung auf einem Server; Workstations und andere Server fragen nur ab.
- ldap
- kerberos
Tellerrand
- Novell Netware / ipx. Sehr altes Protokoll von Novell. Überlebte in großen Firmen / Banken (die sehr konservativ sind) viele Jahrzehte. Sehr einfaches Protokoll (wenig fehleranfällig). Brachte gute und sichere Nutzerverwaltung mit. Novell hat übrigens SuSE Linux aufgekauft.
- apple afp (apple filing protocol - aka "appletalk"); unter Linux heißt das Programm "netatalk". Mit MACOSX ausgestorben (macosx kann nfs und samba (und webdav, iscsi, usw..)).
- proprietäre Verfahren, SAN. Es gibt z.B. auch kleine Fesptplattengehäuse mit Ethernetanschluß zu kaufen; auf dem Windows-PC installiert man eine Software. Diese regelt den Zugriff auf die Platte. Blockorientiert. Deshalb SAN.
Es muß nicht immer nfs sein
- ftp
- scp / sftp
rsync. Haben wir leider gar nicht angesprochen. rsync Teil des Apache Projektes (eines der aktivsten OpenSource Projekte). Zum Spiegeln von Daten gedacht. Arbeitet blockorientiert mit Prüfsummen, und überträgt nur veränderte Daten. Komprimierung möglich. Kann mit allen unix Datentypen umgehen. -> Schnell und wenig Traffic. Das Errechnen der Prüfsummen benötigt nach Programmstart etwas zeit. rsync funktioniert auch über ssh. rsync liegt mittlerweile vielen Backup-Lösungen unter Linux zu Grunde.
8. Tag
9. Tag
Webserver (Auswahl)
Apache http://apache.org/ Konfiguration: http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf03.htm
xitami http://www.xitami.com/
lighttpd http://www.lighttpd.net/
Webserver-Pakete (Auswahl)
XAMMP http://www.apachefriends.org/en/xampp.html besteht u.a. aus Apache, MySQL, PHP/PEAR, Perl, ProFTPD, phpMyAdmin, OpenSSL
- LAMP - Linux, Apache MySQL, PHP
httpd.conf