|
Neben den Programmen die für die Netzwerkkonfiguration eingesetzt werden, gibt es noch weitere die vornehmlich zur Informationsbeschaffung und Diagnose vorgesehen sind. Mit ihnen lassen sich sowohl Netzwerkparameter ermitteln, als auch auf Informationsdienste zugreifen.
Da in lokalen Netzen (LANs) die MAC-Adresse und nicht die IP-Adresse zur Pfadbestimmung genutzt wird, ist es sinnvoll die Zugehörigkeit beider Adresstypen, zumindest für einen gewissen Zeitraum lokal festzuhalten, da sonst bei jeder Kommunikation diese erst ermittelt werden müsste. Das würde zu einer unnötigen Belastung des Netzwerkverkehrs führen. Die Auflösung von MAC-Adressen zu IP-Adressen erfolgt über das Address Resolution Protocol, kurz ARP. Analog hierzu nennt sich auch der Befehl zur Auswertung dieser Ergebnisse so und liefert bei seiner Ausführung die bereits ermittelten Netzwerkteilnehmer:
Address HWtype HWaddress Flags Mask Iface 192.168.1.55 ether 00:1F:D0:80:68:EA C eth0 192.168.1.1 ether 00:14:BF:0A:3B:E9 C eth0
Dies ist eine lokale ARP-Tabelle. Wenn für längere Zeit keine Kommunikation mehr zwischen dem lokalen und dem bekannten entfernten System stattfindet, wird der Eintrag automatisch wieder entfernt. Gerade in größeren Netzwerken, wo oft defekte Netzwerkgeräte ausgetauscht werden, dient dieses flexibel ausgelegte System der Funktionssicherheit.
Ist man allerdings gezwungen die Netzwerklast auf das äußerste zu minimieren, kann man sich durch Inkaufnahme einer erhöhten administrativen Verwaltungsarbeit für die statische Zuweisung eintscheiden. Dazu werden bereits bekannte Adressen aus einer Textdatei bezogen:
Der einfachste Aufbau dieser Textdatei beinhaltet pro Zeile die IP-Adresse, einem Leerzeichen und die MAC-Adresse. Dadurch würden alle ARP-Anfragen zu bekannten IP-Adressen entfallen. Bei unbekannten IP-Adressen würde nach dem alten Schema verfahren, so dass diese Methode neue Systeme und damit IP-Adressen im Netzwerk trotzdem weiterhin ermitteln kann.
Wie genau diese Strategie umgesetzt wird, ist von Fall zu Fall einzeln zu beurteilen und muss das gesamte Sicherheitskonzept des Netzwerks berücksichtigen.
Das Programm ping führt einfache Kontaktanfragen an ein Zielsystem durch. Dazu nutzt es das ICMP (Internet Comtrol Message Protocol) und wertet für die Bildschirmanzeige die erhaltenen Antworten aus:
ping -c 4 www.t-online.de
PING www.t-online.de (217.6.164.162) 56(84) bytes of data.
64 bytes from www.t-online.de (217.6.164.162): icmp_seq=1 ttl=249 time=55.7 ms
64 bytes from www.t-online.de (217.6.164.162): icmp_seq=2 ttl=249 time=54.0 ms
64 bytes from www.t-online.de (217.6.164.162): icmp_seq=3 ttl=249 time=53.2 ms
64 bytes from www.t-online.de (217.6.164.162): icmp_seq=4 ttl=249 time=54.2 ms
So einfach die Anwendung dieses Befehls ist, so qualitativ ist dennoch die Aussage einer erfolgreich durchgeführten Anfrage mit der URL (oder auch FQDN in größere LANs oder WANs) als Argument. Denn damit wird in einem Durchgang(!) die Funktionsfähigkeit des DNS-Systems, des TCP/IP-Stacks (Netzwerkstapel des Betriebssystems) und der Netzwerkkarte bestätigt. Damit lassen sich bei Netzwerkproblemen diese Punkte als Fehlerquellen ausschließen und führen in der Regel zu einer schnelleren Ursachenermittlung.
Bei einer nicht erfolgreichen Anfrage hingegen werden zwar auch diverse Meldungen ausgegeben, allerdings lässt sich damit nur schwer auf die eigentliche Ursache für ein Problem zurückschließen. Dann ist die sinnvolle Anwendung der anderen hier vorgestellten Programme zur Ermittlung von Netzwerkinformationen angebracht.
Um den Pfad den Informationen in einem Netz nehmen zu verfolgen, verwendet man das Programm traceroute. Es basiert wie das Programm ping auf dem ICMP und ist auch intern mit den Funktionen vergleichbar. Nur in der Umsetzung der Kontaktaufnahme und der Auswertung verfährt es anders.
Die gesetzte TTL (Time To Live) in der Anfrage beginnt mit dem Wert 1. Da jeder auf dem Internet Protokoll basierende Knotenpunkt (meist Router) die Anfrage bei dem Wert 1 als nicht zustellbar ausweist, sendet auch der erste Knotenpunkt diese Information via ICMP an den Absender zurück. Dieser erhält somit die IP-Adresse und die RTT (Round Trip Time) des jeweiligen Knotenpunkts. Dies führt der Absender mit jedem Knotenpunkt mehrmals (Standard 3x) durch, damit situationsbedingte Abweichungen in der RTT ausgeglichen werden können.
Im nächsten Schritt wird die TTL auf den Wert 2 gesetzt. Der erste Knotenpunkt im Pfad decrementiert den Wert um 1 und leitet die Anfrage an den nächsten Knotenpunkt im Pfad weiter. Dieser empfängt die Anfrage nun mit dem Wert 1 und verhält sich jetzt wie der erste Knotenpunkt mit dieser TTL.
Dieses Verfahren wird so lange durchgeführt, bis irgendwann das Ziel erreicht wurde oder die TTL (Standardwert 30) nicht ausreicht um das Ziel zu erreichen. Deshalb dauert eine Routenverfolgung auch ihre Zeit, bis das vollständige Ergebnis vorliegt:
traceroute www.t-online.de
traceroute to www.t-online.de (62.153.159.92), 30 hops max, 40 byte packets 1 192.168.1.1 (192.168.1.1) 3.165 ms 3.146 ms 3.150 ms 2 217.0.116.236 (217.0.116.236) 51.874 ms 60.153 ms 67.499 ms 3 217.237.156.34 (217.237.156.34) 78.377 ms 84.748 ms 94.483 ms 4 194.25.10.94 (194.25.10.94) 99.262 ms 107.228 ms 114.769 ms 5 217.6.25.154 (217.6.25.154) 123.377 ms 131.693 ms 139.778 ms 6 www.t-online.de (62.153.159.92) 146.932 ms 52.245 ms 59.740 ms
Diese Routenverfolgung war nach etwa 40s abgeschlossen. Folgt die Routenverfolgung aus einem LAN heraus, dann ist der erste Knotenpunkt immer das Gateway zum nächsten Netzwerk. In diesem Fall der Router mit der IP-Adresse 192.168.1.1.
Folgt die Routenverfolgung auf ein Ziel im Internet, dann repräsentiert die zweite IP-Adresse meist den Netzzugangspunkt Seitens des ISP's. Dieser so genannte PoP (Point of Presence) konzentriert alle Zugänge aus einer Region um die Kommunikation über das jeweilige Backbone (Hochleistungs-Netzanbindung) des ISP's zu ermöglichen. In diesem Beispiel wurde die Routenverfolgung via T-DSL aus dem Großraum Ulm durchgeführt. Daher verbirgt sich hinter der IP-Adresse 217.0.116.236 der Juniper-AC (Access Concentrator) ULMX44-erx. Weiterführender Weblink
Die dritte IP-Adresse ist nun der SLR (Second level Router) des ISPs, welcher für die Kommunikation mit anderen Routern über das Backbone verantwortlich ist. Schließlich folgen viele weitere Router auf dem Pfad, bis das Ziel irgendwann erreicht wurde oder eben auch nicht.
Manchmal kann es vorkommen, dass eine Zeile vollständig * zurückliefert. Dann wurde wahrscheinlich auf dem entsprechenden Knotenpunkt ICMP-Funktionen gesperrt, was beispielsweise für einen Router dennoch keine Einschränkung für seine eigentliche Funktion bedeutet.
Das Programm traceroute bietet zusätzlich einige interessante Optionen, mit denen sich die Routenverfolgung manipulieren lässt. Beispielsweise zur RTT-Ermittlung nicht die ICMP-Antworten zu verwenden, sondern die TCP-Synchronisation zu verwerten. Je nach Problemfall können die verschiedenen Optionen sehr nützlich sein.
Ein effizientes Tool für Netzwerkstatistiken und die Verbindungsanzeige ist netstat. Da die Ausgabe dieses Programms ohne Optionen sehr umfangreich ist, werden an dieser Stelle gezielte Anwendungsbeispiele vorgestellt. Damit die verwendeten Optionen aussagekräftiger vermittelt werden können, soll hier deren Langschreibweise Verwendung finden. Natürlcih gibt es aber für jede Option auch eine Kurzschreibweise.
Mit folgendem Kommando kann man sich den I/O-Verkehr der Pakete auf allen aktiven Schnittstellen kontinuierlich anzeigen lassen:
netstat --interfaces --continuous
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 251 0 0 0 292 0 0 0 BMRU
lo 16436 0 330 0 0 0 330 0 0 0 LRU Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 284 0 0 0 327 0 0 0 BMRU
lo 16436 0 330 0 0 0 330 0 0 0 LRU
...
Die Darstellung läuft bis zum Abbruch durch die Tastenkombination Strg+C durch. Nützlich ist diese Anzeige zur schnellen Erfassung von möglichen fehlerhaften Paketen, falls es mit dem Netzwerkzugriff Probleme gibt.
Folgend sollen alle aktiven Internetverbindungen des lokalen System aufgelistet werden, die das TCP-Protokoll nutzen und deren Status auf zuhören gesetzt ist. Zudem soll der jeweils zugehörige Dienst mit angezeigt werden:
netstat --tcp --listening --programs
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:www *:* LISTEN 27734/apache2 tcp 0 0 *:ssh *:* LISTEN 25866/sshd tcp 0 0 *:smtp *:* LISTEN 6322/ tcp 0 0 *:https *:* LISTEN 27734/apache2
Dieses Kommando ist zum einen zur Identifikation unerwünschter Netzwerkaktivitäten sinnvoll, ebenso wie zur schnellen Prüfung, ob ein gestarteter Dienst auch seine Arbeit verrichtet.
Als nächsten Anwendungsbeispiel sollen alle aktiven Internetverbindungen angezeigt werden, deren Verbindung aufgebaut ist und das TCP-Protokoll nutzen. Zudem sollen die Adressen nicht aufgelöst werden, sondern mit ihrer IP-Adresse dargestellt werden:
netstat --tcp --established --numeric
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.1.100:993 192.168.1.158:3853 ESTABLISHED tcp 0 0 192.168.1.100:143 192.168.1.160:3076 ESTABLISHED tcp 0 256 192.168.1.100:22 192.168.1.170:47258 ESTABLISHED
Diese Informationen eignen sich wieder zur Identifikation unerwünschter Netzwerkaktivitäten, wie aber auch beispielsweise zur Ermittlung der externen Zugriffe, verteilt auf die verschiedenen Dienste.
Schließlich noch die aktuelle Statistik zu den verwendeten Protokollen:
Ip:
368 total packets received
0 forwarded
0 incoming packets discarded
367 incoming packets delivered
367 requests sent out
Icmp:
3 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
timeout in transit: 3
0 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
IcmpMsg:
InType11: 3
Tcp:
165 active connections openings
0 passive connection openings
165 failed connection attempts
0 connection resets received
0 connections established
330 segments received
330 segments send out
0 segments retransmited
0 bad segments received.
165 resets sent
Udp:
34 packets received
0 packets to unknown port received.
0 packet receive errors
34 packets sent
UdpLite:
TcpExt:
0 packet headers predicted
IpExt:
InMcastPkts: 29
OutMcastPkts: 32
Mit diesen Informationen ließen sich beispielsweise Anhaltspunkte für Quality-Of-Service erfassen.
Die umfangreichen Optionen und deren qualitativen Ergebnisse bieten sehr viele Möglichkeiten zur Informationserfassung, Auswertung und für Statistiken.
Ein weiteres nützliches Programm ist die whois. Dieses nutzt das gleichnamige Protokoll um Informationen zu registrierten URLs aus öffentlich zugänglichen whois-Datenbanken abzufragen. Die Datenbanken werden von den damit betrauten Organisationen verwaltet und bieten daher einen unterschiedlichen Informationsgehalt. Gängige Angaben sind die autorisierten (zuständigen) Nameserver, der Status, sowie die zuständige Administration (i.d.R. zuständiger Webhoster).
Anmerkung: Da die Informationen nicht zwangläufig automatisiert in die Datenbanken eingepflegt werden, ist deren Aktualität (auf wenige Stunden bezogen) nicht garantiert. Gerade bei den zuständigen DNS-Servern sollten bei Bedarf Programme wie nslookup oder dig genutzt werden.
Obwohl whois auch einige Optionen anbietet, genügt für eine umfassende Anfrage der Befehl selbst, gefolgt von der Domain:
Domain: beta06.de
Domain-Ace: beta06.de
Nserver: ns1.goneo.de
Nserver: ns2.goneo.de
Status: connect
Changed: 2008-09-01T13:27:03+02:00
[Tech-C]
Type: PERSON
Name: Hostmaster
Organisation: goneo Internet GmbH
Address: Marienwall 27
Pcode: 32423
City: Minden
Country: DE
Phone: +49 1805 911522
Fax: +49 571 7834499
Email: info[at]goneo.de
Changed: 2007-02-27T17:49:31+01:00
[Zone-C]
Type: PERSON
Name: Hostmaster
Organisation: goneo Internet GmbH
Address: Marienwall 27
Pcode: 32423
City: Minden
Country: DE
Phone: +49 1805 911522
Fax: +49 571 7834499
Email: info[at]goneo.de
Changed: 2007-02-27T17:49:31+01:00
Früher waren oft noch detaillierte Angaben zum Domaininhaber zu beziehen. Aber aus datenschutzrechtlichen Gründen sind diese Angaben immer seltener anzufinden.
Um Informationen zum Domain Name System zu erhalten stellt Linux das Programm nslookup bereit. Obwohl das Programm einige Optionen und sogar einen interaktiven Modus bietet, ist das wohl am meißten genutzte Anwendungsziel die einfache Abfrage des zuständigen Nameservers für eine URL oder IP-Adresse:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: beta06.de
Address: 82.100.220.53
Der erste Abschnitt gibt den Nameserver an von dem die Antwort mitgeteilt wurde. Der zweite Abschnitt ist schließlich die Domain samt IP-Adresse. Dass die Antwort als nicht autorisiert gilt liegt schlichtweg daran, dass sie vom DNS-Server mit der Adresse 192.168.1.1 (hier DNS-Dienst auf lokalem Router) kam und die Domain beta06.de nicht seiner administrativen Verwaltung unterliegt.
Ein weiteres Programm zur Abfrage des DNS's ist dig, welcher als eine modernere Implementierung von nslookup anzusehen ist. Als Anwendungsbeispiel soll die gleiche URL abgefragt werden, diesmal aber unter direkter Einbeziehung von einem der vermeindlich autorisierten DNS-Servers (z.B. ns1.goneo.de), der zuvor mit der whois-Abfrage ermittelt wurde. Zusätzlich soll der abzufragende DNS-Server mittels dem Schlüsselwort any alle verfügbaren Informationen zu dieser Domain liefern:
dig @ns1.goneo.de any beta06.de
; <<>> DiG 9.4.2 <<>> @ns1.goneo.de any beta06.de ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45161 ;; flags: qr aa rd; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 4 ;; WARNING: recursion requested but not available
;; QUESTION SECTION: ;beta06.de. IN ANY
;; ANSWER SECTION: beta06.de. 86400 IN SOA ns1.goneo.de. hostmaster.goneo.de. 2008090104 28800 3600 1209600 3600 beta06.de. 86400 IN NS ns1.goneo.de. beta06.de. 86400 IN NS ns2.goneo.de. beta06.de. 3600 IN A 82.100.220.53 beta06.de. 3600 IN MX 10 smtp2.goneo.de. beta06.de. 3600 IN MX 10 smtp1.goneo.de.
;; ADDITIONAL SECTION: smtp1.goneo.de. 3600 IN A 82.100.220.161 smtp2.goneo.de. 3600 IN A 82.100.220.162 ns1.goneo.de. 3600 IN A 82.100.220.131 ns2.goneo.de. 3600 IN A 82.100.221.131
;; Query time: 56 msec ;; SERVER: 82.100.220.131#53(82.100.220.131) ;; WHEN: Sun Oct 11 11:35:56 2009 ;; MSG SIZE rcvd: 240
Diese Ausgabe liefert schon weitaus umfangreichere Informationen, von denen an dieser Stelle aber nur der erste Eintrag in der Answer Section betrachtet werden soll. Dies ist die SOA (Source Of Authority, autorisierte Quelle) und dieses Schlüsselwort bezeichnet immer den Nameserver unter dessen administrativer Verwaltung die Domain liegt (= autorisierter Nameserver).
Weitere Informationen:
- Der genaue Ablauf der Namensauflösung wird bei aktuellen Linux-Systemen in der Datei nsswitch.conf geregelt. Eine manuelle Bearbeitung dieser Datei ist aber im Normalfall nicht erforderlich, da sie in ihrer Standardeinstellung mit den allgemein anerkannten Verfahren zur Namensauflösung konform geht.
- Einige Anbieter stellen kostenfreie freie oder kostenpflichtige Datenbanken zum Ermitteln der geografischen Positionen von Zielen bereit. Damit lassen sich die Ziele anhand von Latitude/Longitude Koordinaten grob bestimmen. Ein Anbieter ist http://www.maxmind.com/ der auch eine kostenfreie Version seiner Datenbank inklusive APIs für die gängisten Programmiersprachen liefert.
|