Technische Praxis der Computersysteme

Transcription

Technische Praxis der Computersysteme
Wiederholung
Tools:
Technische Praxis der Computersysteme
Technische Praxis der Computersysteme
Wiederholung
Wiederholung
Letztes Mal:
• IPv6
• TCP & UDP als Protokolle zur Datenübertragung
• Sockets als Endpunkte von Verbindungen
• DNS & hosts-File zum Auflösen von Namen in IP-Adressen
Technische Praxis der Computersysteme
Tools:
Wiederholung
Wiederholung
Basiskonnektivität:
Wichtigste Bestandteile um grundlegende Konnektivität zu
erreichen:
• Aktives Interface mit IPv4- oder IPv6-Adressen
• Default-Route
• Ein Nameserver in /etc/resolv.conf
Technische Praxis der Computersysteme
Tools:
Wiederholung
Wiederholung
Wichtige Werkzeuge:
• ip: Statische Adresskonfiguration, Routen,...
• dhclient: Automatische Adresskonfiguration via DHCP
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Basic Networking Tools:
traceroute:
traceroute - print the route packets trace to network host
traceroute und traceroute6 können genutzt werden um die
Route von Paketen zwischen zwei Hosts nachzuvollziehen. Der
Zielhost muss (als Name oder IP) als Parameter angegeben werden.
Technische Praxis der Computersysteme
Wiederholung
Tools:
Basic Networking Tools:
traceroute:
traceroute - print the route packets trace to network host
traceroute und traceroute6 können genutzt werden um die
Route von Paketen zwischen zwei Hosts nachzuvollziehen. Der
Zielhost muss (als Name oder IP) als Parameter angegeben werden.
Wichtige Parameter:
Viele! (siehe manpage)
• -N num: Anzahl der Probes (Testpakete), die simultan
verschickt werden.
• -I: Nutze ICMP echo für traces
• -T: Nutze TCP SYN für traces
• -U: Nutze UDP für traces
Technische Praxis der Computersysteme
Wiederholung
Basic Networking Tools:
Funktionsweise:
traceroute nutzt die TTL (Time to Live, IPv4) bzw. das
Hop-Limit im IP-Header, um die Lebenszeit des Pakets zu
kontrollieren. Da jeder Zwischenhost (”Hop”) im Pfad zwischen
zwei Rechnern die TTL bzw. das Hop-Limit um mindestens eines
reduziert und - falls die TTL/das Hop-Limit 0 ergibt - meistens
einen ICMP Time-Exceeded zurückliefert, kann die Route
rekonstrukiert werden indem man die TTL von 1 beginnend
erhöht, bis das Paket beim Host angekommen ist.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
Bemerkung:
Es ist häeufig der Fall, dass Hops keine ICMP Time-Exceeded
Nachricht generieren. Dies erscheint dann in traceroute in Form
von *-Einträgen.
Viele Firewalls und Paketfilter filtern auch Pakete mit einer
verdächtig niedrigen TTL oder modifizieren diese auf einen
Standardwert um traceroutes zu verhindern (e.g. OpenBSDs pf
mit Traffic Normalization).
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
arping:
arping - send ARP REQUEST to a neighbour host
arping funktioniert augenscheinlich wie ping - allerdings nur im
lokalen Ethernet-Netzwerk und nur für IPv4. Die Erreichbarkeit
eines Zielhosts (der als Parameter angegeben werden muss) wird
dabei über ARP-Requests ermittelt.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
arping:
arping - send ARP REQUEST to a neighbour host
arping funktioniert augenscheinlich wie ping - allerdings nur im
lokalen Ethernet-Netzwerk und nur für IPv4. Die Erreichbarkeit
eines Zielhosts (der als Parameter angegeben werden muss) wird
dabei über ARP-Requests ermittelt.
Wichtige Parameter:
-c count: Anzahl der “pings”.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
Funktionsweise:
arping sendet ARP-Requests für die angegebene IP heraus.
Antwortet der Host mit einem ARP-Reply gilt das als “Antwort”
auf den “ping” - der Host ist also erreichbar.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
Funktionsweise:
arping sendet ARP-Requests für die angegebene IP heraus.
Antwortet der Host mit einem ARP-Reply gilt das als “Antwort”
auf den “ping” - der Host ist also erreichbar.
Vor- & Nachteile gegenüber ping:
arping operiert eine Schicht unter ICMP - und funktioniert daher
auch bei Hosts, die ICMP echo requests z.B. über einen Paketfilter
verwerfen (“schlechte” Firewall).
Nachdem arping das ARP-Protokoll nutzt, funktioniert es anders als ping - nur im lokalen Netz.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
nmap:
nmap - Network exploration tool
nmap ist - essentiell - ein Portscanner und kann genutzt werden um
festzustellen, welche Services auf einem System von außen
erreichbar sind. Der Zielhost bzw. das Zielnetzwerk wird dabei als
Parameter übergeben.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
nmap:
nmap - Network exploration tool
nmap ist - essentiell - ein Portscanner und kann genutzt werden um
festzustellen, welche Services auf einem System von außen
erreichbar sind. Der Zielhost bzw. das Zielnetzwerk wird dabei als
Parameter übergeben.
Bemerkung:
nmap ist mehr als nur ein Portscanner. nmap kann z.B. auch zur
Host-Discovery (welche Hosts gibt es im Netzwerk?) oder zur
Service-Discovery (welcher Service läeuft genau auf einem offenen
Port?) genutzt werden.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
Scan Modes:
nmap unterstützt eine Vielzahl von port-scanning Techniken. Einige
wichtige Scans:
• -sS: TCP SYN Scan
• -sT: TCP Connect Scan
• -sU: UDP Scan
• -sn: Kein Scan
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
SYN vs Connect Scan:
Essentiell nutzen der SYN und Connect Scan die selbe Methode
zur Entdeckung von offenen Ports: Es wird versucht eine
TCP-Verbindung zu einem Port herzustellen
(SYN/ACK,SYN/ACK-Handshake). Anders als der TCP-Connect
scan bricht aber der SYN Scan nach dem ersten ACK ab
(effizienter!). Er braucht dafür aber raw Sockets, also insbesondere
root-Rechte!
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
“Kein Scan”:
Die “no scan” option -sn ist keineswegs nutzlos! Da nmap vor
einen Scan immer mit ping prüft, ob ein Host überhaupt existiert,
erhält man mit -sn zumindest diese Information.
Verbindet man dies mit einem Netzwerk als Ziel kann man so
leicht ermitteln, welche Hosts in einem Netzwerk existieren, z.B.:
nmap -sn 192.168.0.0/24
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Basic Networking Tools:
Weitere Parameter:
• -6: IPv6 Scanning
• -O: OS Detection - nmap versucht das Betriebssystem zu
erraten.
• -v: “verbose” - mehr Informationen beim Scan
• -p ranges: Portranges, eine kommaseparierte Liste von Ports
und Portranges, z.B.: -p 1-25,80
Technische Praxis der Computersysteme
Wiederholung
Basic Networking Tools:
nmap und Firewalls:
Firewalls versuchen oftmals Portscans zu erkennen und zu
blockieren, es kann also sinnvoll sein, verschiedene Scantechniken
zu testen (-sX, -sF, -sN), um Firewalls zu testen.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
nmap und Firewalls:
Firewalls versuchen oftmals Portscans zu erkennen und zu
blockieren, es kann also sinnvoll sein, verschiedene Scantechniken
zu testen (-sX, -sF, -sN), um Firewalls zu testen.
Bemerkung:
Viele Firewalls “verwerfen” Pakete an gesperrte TCP-Ports oder
beantworten diese mit einer ICMP Port-Unrechable Nachricht.
Beides wird von nmap als Indikator für gefilterte Ports genommen,
da ein geschlossener Port eigentlich mit TCP-Reset beantwortet
werden müsste.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
tcpdump:
tcpdump - dump traffic on a network
tcpdump kann genutzt werden um alle Daten, die über von einer
Netzwerkkarte empfangen oder gesendet werden, mitzuschneiden.
Ein Interface und eine Filterregel können an tcpdump übergeben
werden.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Basic Networking Tools:
tcpdump:
tcpdump - dump traffic on a network
tcpdump kann genutzt werden um alle Daten, die über von einer
Netzwerkkarte empfangen oder gesendet werden, mitzuschneiden.
Ein Interface und eine Filterregel können an tcpdump übergeben
werden.
Wichtige Parameter:
• -i if: gibt das Interface an, z.B. -i eth0
• -n: Numerische Ausgabe, IP-Adressen werden nicht in Namen
aufgelöst.
• -w file: Schreibt Pakete in file
• -r file: Liest Pakete aus file
Technische Praxis der Computersysteme
Wiederholung
Basic Networking Tools:
Filter:
Per default zeigt tcpdump alle Pakete an, die ein Interface
überträgt. Um dies einzuschränken können Filter definiert werden.
Diese sind in der pcap-filter(7) Manpage dokumentiert.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Basic Networking Tools:
Filter:
Per default zeigt tcpdump alle Pakete an, die ein Interface
überträgt. Um dies einzuschränken können Filter definiert werden.
Diese sind in der pcap-filter(7) Manpage dokumentiert.
Beispiele für Filter:
• host X: Pakete an/von Host X (auch: src host X oder
dst host X)
• port X: Pakete an/von Port X (auch: src port X oder
dst port X)
• ether proto \proto: Pakete mit Layer 3 Protokoll proto,
z.B. ip (IPv4), ip6 (IPv6) oder arp.
Technische Praxis der Computersysteme
Wiederholung
Basic Networking Tools:
Bemerkung:
Filter können auch bei tcpdump mit and und or Verknüpft, mit
not verneint und mit (...) gruppiert werden.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Basic Networking Tools:
Bemerkung:
Filter können auch bei tcpdump mit and und or Verknüpft, mit
not verneint und mit (...) gruppiert werden.
Zusätzliche Parameter:
• -v, -vv, -vvv: Mehr Informationen in der Ausgabe.
• -XX: Gibt nicht nur Header sondern auch Daten des Pakets
aus, in Hex und ASCII.
Technische Praxis der Computersysteme
Wiederholung
Basic Networking Tools:
Bemerkung:
Um Pakete von einem Interface mitschneiden zu können, muss das
Interface in einen speziellen Modus, dem sog. Promiscuous mode,
versetzt werden. Ansonsten gibt ein Interface nicht jedes Paket an
den Kernel weiter (spart Rechenzeit). Diese Operation benötigt
spezielle Rechte, die normalerweise nur root besitzt.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
wireshark:
wireshark - Interactively analyze network traffic
Wireshark ist essentiell die grafische Luxusvariante von tcpdump
und beitet eine Vielzahl von Möglichkeiten Pakete zu analysieren.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
wireshark:
wireshark - Interactively analyze network traffic
Wireshark ist essentiell die grafische Luxusvariante von tcpdump
und beitet eine Vielzahl von Möglichkeiten Pakete zu analysieren.
Bemerkung:
wireshark sollte nicht als root ausgeführt werden, da es schon
öfter Sicherheitslücken in wireshark gegeben hat. Stattdessen
sollte dumpcap mit entsprechenden Rechten versehen werden und
die Ausführung auf eine spezielle Gruppe eingeschränkt werden,
z.B.:
chown : wireshark / usr / bin / dumpcap
chmod 750 / usr / bin / dumpcap
setcap ’ CAP_NET_RAW + eip CAP_NET_ADMIN + eip ’ / usr / bin / dumpcap
Unter BSD: setuid statt setcap.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
telnet:
telnet user interface to the TELNET protocol
telnet ist ein Client für das Telnet Protokoll - manchmal
jedenfalls. Der Zielserver muss als Parameter übergeben werden.
Ein Zielport kann danach übergeben werden.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
telnet:
telnet user interface to the TELNET protocol
telnet ist ein Client für das Telnet Protokoll - manchmal
jedenfalls. Der Zielserver muss als Parameter übergeben werden.
Ein Zielport kann danach übergeben werden.
telnet heute:
Historisch war telnet das, was ssh heute ist: Eine Möglichkeit
ein Programm auf einen entfernten Rechner zu steuern. telnet ist
dabei textbasiert. Heute wird der telnet Befehl meistens nur
genutzt, um gewisse textbasierte Protokolle “von Hand” zu
sprechen. Viele “moderne” Protokolle wie HTTP, FTP oder
SMTP sind textbasiert - man kann also mit einem Server “in
Worten” kommunizieren.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
Beispiel:
21:35 k a r a su@ phos pho rus ! ~ % telnet www . google . com 80
Trying 1 7 3.1 94. 66.1 05. ..
Connected to www . google . com .
Escape character is ’^] ’.
GET / index . html HTTP /1.1
HOST www . google . com
HTTP /1.1 302 Found
Cache - Control : private
Content - Type : text / html ; charset = UTF -8
Location : http :// www . google . at / index . html ? gfe_rd = cr & ei = p Q 3 A V O i c G p D _ 4 w b k n Y H Q C g
Content - Length : 268
Date : Wed , 21 Jan 2015 20:35:49 GMT
Server : GFE /2.0
Alternate - Protocol : 80: quic , p =0.02
< HTML > < HEAD > < meta http - equiv = " content - type " content = " text / html ; charset = utf -8 " >
< TITLE >302 Moved </ TITLE > </ HEAD > < BODY >
<H1 >302 Moved </ H1 >
The document has moved
<A
HREF = " http :// www . google . at / index . html ? gfe_rd = cr & amp ; ei = p Q 3 A V O i c G p D _ 4 w b k n Y H Q C g " >
here </ A >.
</ BODY > </ HTML >
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
Bemerkung:
telnet übermittelt Daten unverschlüsselt und sollte damit nicht
für sensible Informationen genutzt werden. Man kann eine ähnliche
Funktionalität auch oft verschlüsselt mit
openssl s_client -crlf -connect IP:Port erreichen.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
telnet klassisch:
Ein paar traditionelle Anwendungen für Telnet lassen sich immer
noch im Internet finden, z.B.:
• telnet nethack.alt.org
• telnet towel.blinkenlights.nl
Auch OpenWRT nutzt zum ersten Login auf einen neuen Router
telnet, danach ssh.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Basic Networking Tools:
netcat:
nc arbitrary TCP and UDP connections and listens
“The nc (or netcat) utility is used for just about anything under
the sun involving TCP or UDP.”
Ein Hostname und ein Port muss übergeben werden (außer bei -l)
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Basic Networking Tools:
netcat:
nc arbitrary TCP and UDP connections and listens
“The nc (or netcat) utility is used for just about anything under
the sun involving TCP or UDP.”
Ein Hostname und ein Port muss übergeben werden (außer bei -l)
Wichtige Parameter:
• -l: “Listen”: Netcat öffnet einen Port und wartet auf
eingehende Verbindungen.
• -4, -6: Nutzt IPv4 oder IPv6 für die Verbindung
• -u: UDP statt TCP
Technische Praxis der Computersysteme
Wiederholung
Tools:
Basic Networking Tools:
Beispiel:
• nc -l 3333: Netcat öffnet einen Listen Socket auf Port 3333
des Loopback Interface
• nc 127.0.0.1 3333: Netcat verbindet sich mit Port 3333
der Loopback-Adresse
Technische Praxis der Computersysteme
Wiederholung
Basic Networking Tools:
Bemerkung:
Man kann auch nc auch wie telnet zum Testen von
Plaintext-Protokollen wie HTTP, SMTP usw.
Beispiel: nc www.google.com 80
Input-Redirection kann in Verbindung mit nc zum Übertragen von
Dateien zwischen Hosts genutzt werden:
Host A : nc -l 3333 > kopie . txt
Host B : nc IP - von - A 3333 < datei . txt
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Debugging:
Debugging:
Viele der oben genannten Tools sind essentielle Werkzeuge beim
Debuggen von Netzwerkproblemen. Mit Ihnen lassen sich Fragen
beantworten wie
• ”Ist Host X erreichbar?” (ping, arping)
• ”Ist Service Y verfügbar?” (telnet, nc, nmap)
• ”Funktioniert Service Y grundlegend richtig?” (telnet, nc,
wireshark, tcpdump)
Technische Praxis der Computersysteme
Wiederholung
Debugging:
Testen der Basiskonnektivität:
Probleme mit der Basiskonnektivität entdeckt man oft durch
Probleme der Form ”Ich kann Seite X nicht mehr öffenen” oder
”Mein Internet ist weg”. Grundlegend gilt es dann festzustellen,
auf welcher Ebene das Problem auftaucht.
Technische Praxis der Computersysteme
Tools:
Wiederholung
Tools:
Debugging:
Grundlegende Fragen:
• Sind andere Systeme (z.B. www.google.com) via Namen
erreichbar? (ping). Falls ja, ist das Problem vermutlich nicht
die Basiskonnektivität. Vermutlich. (tcpdump und wireshark
können hier hilfreich sein)
• Habe ich eine IP-Adresse am Interface? Ist eine default route
eingetragen? (ip addr list, ip route show)
• Ist mein default gateway erreichbar? (ping, arping,
ip neigh show)
• Kann ich externe Systeme per IP erreichen? (ping). Falls ja
kann der Fehler in der /etc/resolv.conf liegen. Sind die
nameserver dort erreichbar? (ping, dig) Funktionieren andere
Nameserver (z.B. 8.8.8.8)?
• Finden sich verdächtige Meldungen in /var/log?
Technische Praxis der Computersysteme
Wiederholung
Debugging:
Bemerkung:
Manche Netze sind mehr oder minder Restriktiv was die Nutzung
externer DNS Server betrifft. Auch offene WLANs, die eine
Webmaske zur Authentifizierung der Nutzer verwenden, haben
damit oft Probleme.
Technische Praxis der Computersysteme
Tools: