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: