Workshop: Netflow-Reporting mit Google Analytics

Verkehrsanalyse

Viele Webmaster setzen zur Nutzungsanalyse ihrer Webseiten das kostenlose Google Analytics ein. Mit geringen Modifikationen kann der Dienst auch für einfache Auswertungen von beliebigen Verkehrsdaten im Unternehmensnetz verwendet werden. Unser Workshop zeigt, wie sich Google Analytics zum Speichern und Auswerten von NetFlow-Daten einsetzen lässt.
Das Monitoring der IT-Umgebung steht im März auf der Agenda des IT-Administrator. So lesen Sie in der Ausgabe, wie sich Open-Source-Tools wie Logstash, ... (mehr)

Eine wertvolle Informationsquelle für Systemadministratoren zur tiefen Einsicht in Netzwerkaktivitäten ist NetFlow [1]. Bei NetFlow sammeln Router und Layer 3-Switche die Verbindungsinformationen der Clients und senden diese in unregelmäßigen Abständen an einen zentralen Server. Seit der Einführung von NetFlow durch Cisco haben die anderen großen Hersteller von Netzwerkhardware nachgezogen und ihre eigene oder die RFC-basierte Version implementiert. Das Grundprinzip ist weitgehend dasselbe.

Beim professionellen Einsatz vom NetFlow steht der Administrator vor der Wahl zwischen einem kommerziellen NetFlow-Analyser mit vielen Features oder einer Open Source-Implementierung zum Nullkostenpreis. Dieser Artikel beschreibt eine neue, dritte Variante: Die Analyse von Verkehrsdaten "aus der Cloud". Dabei sammelt ein firmenlokaler NetFlow-Collector alle Informationen und sendet sie (oder nur einzelne Stichproben) an Google Analytics (GA) zur weiteren Speicherung und Auswertung.

Google Analytics bietet mit Dashboards und "Benutzerdefinierten Berichten" viele Möglichkeiten, die Informationsflut übersichtlich anzu- zeigen. Neben den üblichen Hitlisten der meistfrequentierten Server lassen sich unerwünschte Protokolle (etwa SIP, OpenVPN oder POP3) aufzeigen oder ermitteln, welcher Client die meisten Internetzugriffe erzeugt. Auch Fragen wie "Welche Windows-Fileserver werden verwendet und welche Maschinen stellen unerwartet Freigaben bereit?" oder "Welcher Client greift auf die Managementoberfläche der Firewall zu?" lassen sich mit den verfügbaren Reports beantworten.

Informationen bereitstellen

Die Informationen über IP-Verbindungen erhalten Sie von Routern, Multi-Layer-Switchen, Firewalls oder virtuellen Umgebungen (Hypervisor, vSwitch). Alle namhaften Hersteller bieten eine Möglichkeit an, diese Informationen zu exportieren. Dazu stehen Protokolle wie NetFlow (Cisco), JFlow (Juniper) oder die standardisierten Varianten sFlow und IPFIX zur Verfügung. Aufgrund seiner Popularität ist dieser Workshop auf NetFlow ausgerichtet.

Die vorhandenen Router stellen die NetFlow-Funktionalität meist ohne Mehrkosten bereit und die Konfiguration ist denkbar einfach. Bevorzugt werden Router mit NetFlow beglückt, die nahe beim Collector wohnen und noch ausreichend Kapazitäten haben. Bei der Auswahl der Interfaces muss sichergestellt werden, dass Netzwerkverkehr nicht doppelt gezählt wird (eingehend bei Router A und ausgehend bei Router B). Die Konfiguration der Geräte lässt meistens schon einen ersten Filter zu, sodass uninteressante oder sicherheitskritische Verkehrsdaten nicht berücksichtigt werden.

Im SOHO-Bereich ist das NetFlow-Angebot dünn gesät, aber mit etwas Glück besitzen Sie einen Router mit DD-WRT oder pfSense. Leider bieten die verbreiteten DSL-Router von AVM keine Unterstützung für NetFlow.

Google Analytics

Google Analytics ist ein Webanalyseprogramm, das mit NetFlow nur wenig gemeinsam hat. Es werden Informationen über das Verhalten von Besuchern auf Webseiten gesammelt und ausgewertet. Der Fokus von Google Analytics liegt auf Effektivitätsmessung, Verkaufszahlen, Webseitenoptimierung und Erfolgskontrolle von Marketingaktionen. Schätzungsweise 50 bis 60 Prozent aller Webseiten verwenden Google Analytics.

Aber was passiert, wenn die eigenen Router keinen Flow-Export anbieten? Hier können Sie mit einem Workaround arbeiten, bei dem ein Linux-Rechner über einen Mirror-Port eine Kopie aller Netzwerkpakete erhält und daraus einen NetFlow-Export erstellt. Passende Open Source-Software dafür sind beispielsweise das iptables-Modul "ipt_netflow" oder die Programme "pmacct" und "softflowd".

Verkehrsdaten sammeln

Sobald der erste Router als NetFlow-Exporter konfiguriert ist, sendet dieser in unregelmäßigen Abständen Informationen über beendete (oder ausgetimte) Verbindungen an die angegebene IP-Adresse, hinter der sich unser NetFlow-Collector befindet. Dieser Collector ist ein Linux-Dienst und lauscht auf UDP-Port 2055. Aus den empfangenen NetFlow-Samples werden die Verbindungsinformationen (siehe Kasten "NetFlow") herausgelöst und auf der lokalen Festplatte kurz zwischengespeichert.

Die Open Source-Software "nfdump" [2] erledigt diesen Job auf einem bestehenden Linux-Server oder einer schlanken virtuellen Maschine. Für die VM sind ein CPU-Kern, 256 MByte RAM und eine 2 GByte-Festplatte ausreichend. Die Installation erfolgt auf CentOS-, Fedora- oder Red Hat-Systemen über den Paketmanager yum. Das Paket "nfdump" ist im EPEL-Repository verfügbar:

$ yum install nfdump

Vor dem Start erweitern Sie die lokale Firewall noch um eine Regel für eingehende Pakete auf Port 2055 (SELinux benötigt keine Anpassung):

$ iptables -I INPUT -p udp -m state --state NEW -m udp --dport 2055 -j ACCEPT
$ ipt6ables -I INPUT -p udp -m state --state NEW -m udp --dport 2055 -j ACCEPT

Zum Testen der Installation wird der Collector mit

$ nfcapd -E -T all -p 2055 -l /tmp -I any

gestartet. Nach kurzer Zeit sollten die ersten NetFlow-Daten in der Linux-Konsole sichtbar sein.

NetFlow-Konfiguration



Beispielkonfiguration eines Cisco Router 1921 mit IOS 15.2:
interface GigabitEthernet0/1
ip flow ingress
ip flow-export version 5
ip flow-export destination 10.10.1.1 2055
Beispielkonfiguration HP 9300 Serie:
interface ethernet 1/1
ip route-cache flow
ip flow-export enable
ip flow-export version 5
ip flow-export destination 10.10.1.1 2055 1
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023