5. Veranstaltung Rechnerbetriebsgruppe Technische Fakultät Universität Bielefeld 02. Juni 2014 1/24
Übersicht Themen für heute 2/24
Laborumgebung auf dem Host vorbereiten Aufbau der Laborumgebung aufbauen Netzwerk prüfen 3/24
Virtuelle Maschinen vorbereiten Wir nutzen die Server- und Client-VMs vom letzten Mal: mit graphischem Login mit Netzwerk im VLAN Gleiches Interface (eth0) mit mehreren getrennten VLANs Host 2 Host 1 10.0.0.2 10.0.0.1 eth0 Host-Netzwerk 10.0.0/24 via eth0 eth0 VM-Netzwerk 192.168.0/24... Bridge br0 via vlan100 Bridge br0 tap0 eth0.100 eth0.100 tap0 tap1 u.s.w. VM1 192.168.0.30 VM1 VM2 u.s.w. 192.168.0.20 192.168.0.21 4/24
Konfiguration der Startscripte überprüfen Die Startskripte sollten wie folgt aufgebaut sein: $EMU -smp 1 \ -drive if=ide,file=/local/images/server.img \ -boot c \ -m 1024 \ -vga std \ -net tap,ifname=tap1,script=no,downscript=no \ -net nic,macaddr=00:16:3e:00:03:02 \ -name ${NAME} 5/24
Konfiguration der Startscripte überprüfen In der /etc/network/interfaces wird benötigt: auto br0 iface br0 inet manual bridge_ports eth0.100 bridge_fd 0 bridge_maxwait 0 bridge_stp 0 post-up tunctl -u linux -g kvm -t tap0 post-up ip link set tap0 up post-up brctl addif br0 tap0 pre-down brctl delif br0 tap0 pre-down ip link set tap0 down pre-down tunctl -d tap0...und die letzten 6 Zeilen nochmal für tap1 6/24
Neues Adreßschema auf dem DHCP-Server Rechnernummer n (wie bisher) MAC Client 00:16:3e:00:0n:01 (wie bisher) MAC Server 00:16:3e:00:0n:02 (wie bisher) IP Client 192.168.n.10 (neu) IP Server 192.168.n.11 (neu) DNS Client clientn.netzn.localdomain (neu) DNS Server servern.netzn.localdomain (neu) 7/24
Neues Schema auf den VMs aktualisieren IP-Adresse: schon per DHCP gesetzt : > sudo -i # hostname clientn # echo clientn >/etc/hostname #/etc/init.d/hostname.sh einmal neu in der graphischen Oberfläche anmelden Änderungen analog für die Server-VM vornehmen 8/24
: Daten auf einem bestimmten Port senden oder empfangen Anwendung: Netzwerkanwendungen testen / debuggen (insbesondere die textbasierten wie SMTP, IMAP, HTTP) Prototypen für kleine Netzwerkdienste per Shellskript bauen 9/24
- Einfaches Beispiel Lauschenden Prozeß auf dem Server starten: server n > -l -p 34567 Vom Client aus eine Nachricht senden: client n > server n 34567 hallo Und auf dem Server beantworten:... hallo antwort 10/24
- Datei übertragen Eine Testdatei vorbereiten: dd if=/dev/urandom of=/tmp/datei bs=1m count=16 Empfangenden Prozeß auf dem Server starten: server n > -l -p 34567 >/tmp/kopie Datei vom Client senden: client n > -q 1 server n 34567 </tmp/datei Inhalt der Dateien vergleichen: client n > sha256sum /tmp/datei server n > sha256sum /tmp/kopie 11/24
- regelmäßig sendende Netzwerkscripte Auf dem Server permanent lauschen: (Aufruf in eine Zeile schreiben) while! test -f /tmp/stop; do -l -p 34567; done Der Client schickt jede Sekunde seine Uhrzeit: while /bin/true; do date -q 0 server n 34567; sleep 1; done 12/24
tcpdump tcpdump Netzwerkverkehr mitschneiden Geeignete Stellen zum Mitschneiden: eth0 - sieht kompletten Verkehr des Hosts mirror port auf einem Switch - sieht kompletten Verkehr im (V)LAN br0 - sieht kompletten Verkehr zwischen VMs Beispiel: host> sudo tcpdump -A -v -i br0 zeigt Datenverkehr der eben gestarteten Skripte 13/24
Skripte von eben abbrechen Strg-C auf das Server-Skript funktioniert nicht. Daher haben wir den folgenden Mechanismus vorgesehen: server n > touch /tmp/stop 14/24
Werkzeug Netzwerkdurchsatz testen auf beiden VMs: apt-get install server n > -s -p 34567 client n > -c server n -p 34567 innerhalb des Hosts sind die Werte langweilig macht den Test auf dem Server Eures Nachbarn! 15/24
Werkzeug mit UDP server n > -u -s -p 34567 client n > -u -b100m -c server n -p 34567 packet loss ist interessant! 16/24
Werkzeug - Interpretation der Werte Im Enterprise-LAN liegt die Ursache für langsame Services so gut wie nie im Durchsatz! wird so gut wie immer vollen Durchsatz / minimalen Packet loss zeigen. Tatsächliche Ursachen finden: ausgelasteter (=langsamer Dateiserver) gestörte Hilfsdienste wie DNS, LDAP, RADIUS,... 17/24
Postfix einrichten auf der Server-VM: > sudo apt-get install postfix mailutils Im Konfiguration-Dialog folgende Einstellungen wählen: Internet-Site System-EMail-name: server n.netz n.localdomain Wichtig: Nie unbeaufsichtigt ohne weitere Tests laufen lassen! 18/24
Postfix testen client n > sudo apt-get install swaks client n > swaks --to linux@server n.netz n.localdomain --server server n Die mail muß auf dem Server ankommen: server n > mail p d q (print) (delete) (quit) 19/24
Postfix testen: Open relay? Keine Mails für fremde Domains annehmen und weiterleiten! client3> swaks --to linux@techfak.uni-bielefeld.de --server server3 === Trying server3:25... === Connected to server3. <- 220 server3.netz3.localdomain ESMTP Postfix (Debian/GNU) -> EHLO client3.netz3.localdomain <- 250-server3.netz3.localdomain <- 250-PIPELINING <- 250-SIZE 10240000 <- 250-VRFY <- 250-ETRN <- 250-STARTTLS <- 250-ENHANCEDSTATUSCODES <- 250-8BITMIME <- 250 DSN -> MAIL FROM:<linux@client3.netz3.localdomain> <- 250 2.1.0 Ok -> RCPT TO:<linux@techfak.uni-bielefeld.de> <** 554 5.7.1 <linux@techfak.uni-bielefeld.de>: Relay access denied -> QUIT <- 221 2.0.0 Bye === Connection closed with remote host. 20/24
Mailversand sniffen host> sudo tcpdump -A -v i br0 client n > swaks --to linux@server n.netz n.localdomain --server server n Auszug aus dem tcpdump: 09:25:57.870237 IP (tos 0x0, ttl 64, id 39277, offset 0, flags [DF], proto TCP (6), length 303) client3.netz3.localdomain.36558 > server3.netz3.localdomain.smtp: Flags [P.], [...] E../.m@.@...1...<.....sj..z.Date: Mon, 02 Jun 2014 09:25:56 +0000 To: linux@server3.netz3.localdomain From: linux@client3.netz3.localdomain Subject: test Mon, 02 Jun 2014 09:25:56 +0000 X-Mailer: swaks v20120320.0 jetmore.org/john/code/swaks/ This is a test mailing. 21/24
Mailversand mit TLS verschlüsseln client n > swaks --to linux@server n.netz n.localdomain --server server n --tls Vorteil gegenüber Clientseitiger Verschlüsselung mit gpg: Header werden mit verschlüsselt transparent für Benutzer Nachteile: Stiller Rückfall auf Klartext wenn Mailserver kein TLS unterstützt keine Authentifizierung des Absenders durch Krypto-Unterschrift 22/24
defekte Kondensatoren Schleichende Effekte Maschine bootet nur manchmal einige USB-Sticks gehen noch / andere nicht Maschine bootet nicht mehr wenn sie kalt ist 23/24
Ende der heutigen Vorlesung Vielen Dank fürs Mitmachen! Bis nächste Woche! 24/24