Netzwerk Management Server mit Raspberry Pi
Für aktive Hardware im Netzwerk Umfeld wie Switches, Router, Printserver usw. ist oft ein Management System für den Netzwerk Admin sinnvoll oder hilfreich. Es dient zur Überwachung und für ein proaktives Troubleshooting im Netz.
Das kann z.B. die Web basierte Ticket Erstellung (Einmal Passwort) und Überwachung für Gastbenutzer sein die sich in einem Hotspot bzw. Gastnetz einloggen. Ebenso die zentrale Kontrolle von Log Meldungen (Fehler) aller diese Komponenten, die sichere Benutzer Zugangskontrolle in LAN und WLAN per Radius oder auch das grafische Überwachen der Auslastung von Internet und WAN Verbindungen usw. usw. Es gibt eine Fülle von Anwendungen für den Netzwerk Admin.
In kleinen Netzen muss dafür nicht immer ein großer, teurer Serverbolide oder eine VM verwendet werden, sondern das klappt auch mit einem kleinen, sparsamen "Server" im Zigarettenschachtel Format, dem populären Raspberry Pi !
Wie so ein Server auch für Anfänger schnell und unkompliziert mit den erforderlichen Tools aufzusetzen ist, beschreibt das folgende Tutorial in einzelnen, leicht verständlichen Schritten.
Diese Anleitung ist verständlicherweise nicht gedacht für den großen Netzwerk Administrator mit 500 Ports und mehr im Netzwerk, sondern ist vielmehr entstanden aus vielen Fragen und Anforderungen in den Threads und Tutorials im Bereich Netzwerk hier im Forum bei Administrator.de.
In der Hauptsache zu den Themen: Router, Switches, Netzwerk, Hotspot und Tracking von Gästen (Security), der grafischen Überwachung von Internet Zugängen und auch der allgemeinen Kontrolle von Netzwerk Komponenten mit kleinem Budget.
Gedacht ist es für kleine LAN Umgebungen und engagierte Netzwerk Admins die etwas mehr darüber erfahren möchten was in ihrem Netzwerk so passiert ohne erstmal ein großes Budget bewegen zu müssen.
Zudem zeigt es eindrucksvoll was mit einfachen und kostenfreien Tools im Netzwerk Umfeld möglich ist und schult zu guter letzt auch noch etwas das Linux KnowHow !
Auch Liebhaber bunter Windows Konsolen müssen nicht abwinken, denn der Raspberry bringt eine komplette, mit Maus bediente, grafische X Windows Oberfläche mit.
Feedback über sinnvolle Anwendungen zur Erweiterung dieses Tutorials per Forumsmail sind immer willkommen.
Natürlich kann man alle diese Tips auch auf einem "großen" Server umsetzen.
Die Hardware Basis für den Server ist, wie oben schon erwähnt, ein "All in One" System: der Raspberry Pi.
Der Raspberry Pi ist ein ca. 35 €uro preiswertes, komplett fertiges Mainboard wenn man so will, was alles an Bord hat inkl. CPU, RAM, Grafik usw. Man benötigt für den Betrieb lediglich eine SD_Flash_Karte wie sie in jeder Digitalkamera eingesetzt wird und ein simples Standard USB-Netzteil / Ladegerät mit 2,5 A und ein passendes Gehäuse.
Bestellt werden kann er inkl. Gehäuse und diverser Peripherie bei den üblichen Online Stores, Reichelt, Amazon, Watterrot usw.
Ein sehr interessantes Starterkit inkl. Gehäuse und LCD Touchpanel findet man bei AliExpress !
Zum Start ist wie erwähnt eine 4 oder 8 Gig (oder je nach Anwendung größere) Micro SD Flash Speicher Karte quasi als SSD erforderlich. Empfohlen ist 4GB und größer.
Die einfache Stromversorgung realisiert ein Standard_USB_Steckernetzteil mit min. 2 Amp. und einem Standard USB Micro-B Steckerkabel.
Auch ein USB Akku- oder Power_Bank macht den RasPi unabhängig von fester Stromversorgung z.B. im WLAN Umfeld zur Analyse doch dazu später mehr.
Mit einem Deluxe Gehäuse wie z.B. HIER kann er mit Kühlung und externer m.2 SSD auch zu einem verlässlichen Mini Server werden z.B. für die Anwendungen dieses Tutorials und noch vieles mehr.
Das Tutorial geht nicht im Detail auf die grundlegende Installation ein sondern setzt ein lauffähiges System voraus.
Die Grundinstallation ist aber auch für Laien kinderleicht, da es ein komplett fertiges Betriebssystem Image für den Raspberry gibt, was der Raspberry online lädt und selbst lauffertig installiert (NOOBS Image = "New Out Of The Box Software")
Die Installation ist mit wenigen Handgriffen erledigt:
Wer offline ein Image auf die SD Karte schreiben will geht so vor:
Unter Windows ist nur mit einem Tool wie z.B. dem bekannten Win32_Disk_Imager das vorher runtergeladene Raspian (Wheezy) auf die o.a. SD Karte zu schreiben.
In Stichworten sind die folgenden Schritte zu tun:
Dann...
Statt SD Karte kann man auch eine weitaus performantere mSata SSD Karte oder eine SATA SSD Platte verwenden.
Nach dem allerersten Booten und Login (Default User und Passwort ist "pi" und "raspberry") landet man immer automatisch im Setup um das System einmalig auf seine Bedürfnisse anzupassen.
Greift man remote übers Netzwerk per SSH Terminal zu (z.B. Putty oder TeraTerm) muss man die Konfig manuell mit dem Kommando raspi-config starten.
Folgende wichtige Einstellungen sollte man im raspi Setup machen:
Anfänger oder Nutzer der grafischen Windows Oberfläche sollten hier besser mit "YES" antworten, da mancher sich oft besser in einer Windows ähnlichen grafischen Umgebung einfacher zurechtfindet.... wie immer Geschmackssache ?!
Nach dem Login kann man die Windows Oberfläche aber immer manuell mit dem Kommando start x aktivieren wer es will und wer sich auf einer grafischen Windows Oberfläche wohler fühlt.
Über die TAB-Taste kommt man auf die Schaltflächen "Select" und dann Finish um das Setup abzuschliessen und die Einstellungen zu sichern.
Die Frage bei "Finish" ob das System nun neu gestartet werden soll, bitte mit Yes beantworten und rebooten !
Alles findet man HIER noch einmal zum genauen Nachlesen.
Entweder bootet der Pi nun gleich in eine grafische Windows Oberfläche sofern man dies oben eingestellt hat oder tut dies nach Eingabe des Kommandos start x. Nach dem Booten kann man erste Tests mit Ping usw. machen.
Wichtig ist die DHCP IP des Raspberrys im Netz !
Diese wird mit dem Kommando ifconfig angezeigt oder auch in der Bootmessage !
Damit kann man sich ebenso mit bekannten Terminal Tools wie PuTTY oder TeraTerm und WinSCP (File Transfer) mit dem Pi bequem über das Netzwerk verbinden. Windows Nutzern sollten diese Tools installieren. Apple Mac und Linux haben das von Haus aus mit an Bord.
Auch ein remoter grafischer Login ala RDP ist mit VNC möglich, dazu später mehr. Der RasPi muss also nicht zwingend angeschlossen an Tastatur, Maus und Bildschirm werkeln.
Login dann mit Usernamen "pi" und dem oben vergebenen Password.
Jetzt ist ein guter Zeitpunkt gekommen das System auf den aktuellsten Software Stand zu bringen !
Ein funktionierender Internet Zugang ist dafür erforderlich, da die Updates online nachgeladen werden ! Der Pi holt sich seine IP und Gateway per DHCP im Netz (Default) sollte also in einem Heimrouter Netz immer gleich Online sein.
Ein Ping z.B. auf www.heise.de oder 8.8.8.8 im Terminal sollte eine Antwort bringen und zeigt an ob der Internet Zugang auch sauber funktioniert. (Stop des Ping mit<ctrl> c )
Nach dem Logon mit User "pi" und "sudo su" um Root User (Administrator) zu werden, erledigen das Update die beiden folgenden Kommandos:
apt update
und
apt dist-upgrade
Die man nun am Eingabeprompt eingibt und sich eine Tasse Kaffee holt, denn zum Update braucht der Raspberry etwas. Man kann ihm dabei zusehen.
An dieser Stelle noch einmal ein wichtiger Hinweis für alle Linux Anfänger und um Installationsfrust zu vermeiden:
Alle Installationen der Software Pakete und deren anschliessende Konfiguration führt man generell IMMER als Root User (Administrator) aus !!
Dazu ist immer ein "sudo su" vorher einzugeben ! Erst danach werden dann als Administrator die apt get... Kommandos und die Anpassungen der Konfig Dateien mit dem nano Editor ausgeführt !!
Ein weiterer Hinweis betrifft die Anpassungen der hier beschriebenen Konfigurationen. Bei Linux oder unixoiden Betriebssystemen im Allgemeinen wird das auch zunehmend über grafische Tools gemacht aber eine Vielzahl von Finetuning Parametern werden in einfachen Text Dateien, sprich Konfigurationsdateien gemacht.
Ein wenig Übung mit einem simplen Text Editor kann also nicht schaden.
Der RasPi hat z.B. den nano Editor an Bord. Ein sehr einfacher Text Editor der hier im Tutorial zum Anpassen der Konfig Dateien benutzt wird und über die Cursor (Pfeil) Tasten gesteuert wird. <ctrl> o und <ctrl> x sichert die Datei und speichert sie.
cat <dateiname> oder less <dateiname> zeigt z.B. den Inhalt dieser Dateien an. Die wichtigsten Steuerkommandos des Editor zeigt er selber unten in einer Hilfszeile.
Es ist also sinnvoll als Anfänger sich mit ein paar nano Übungen etwas sattelfest zu machen mit dem Editor, da es die Handhabung sehr erleichtert.
Sehr bequem ist auch der remote Zugang via Netzwerk auf den RasPi. Das erspart einem den Anschluss von Monitor und Tastatur und man kann den RasPi irgendwo ins Netzwerk hängen sei es per LAN oder auch WLAN. Mit einem USB Akku- oder Power Pack ist man so auch vollkommen Kabel unabhängig wer dies möchte.
Dazu nutzt man die klassischen freien SSH Terminal Programme Putty oder TeraTerm um per SSH den RasPi zu erreichen. Zum Kopieren von Dateien zu Windows Rechneren bietet sich das oben bereits erwähnte WinSCP an.
Apple Mac und Linux User nehmen hier wie immer Bordmittel z.B. ssh mit ssh username@<raspi_ip>oder z.B. das Terminal Programm ZOC.
Natürlich lässt sich auch die grafische Windows Oberfläche des RasPi mit VNC oder Windows RDP (xrdp) fernbedienen.
Wie das remote über das Netzwerk geht erklärt das Tutorial später nach dem Netzwerk Kapitel.
Fertig der grauen Theorie... !
Nun geht es endlich daran den Management Server für den Netzwerk Einsatz zu konfigurieren und fit zu machen...!
⚠️ Anmerkung vorweg:
In der aktuellen Raspberry Pi OS Version "Bookworm" ist der Network-Manager aktiv. Im Lite Image ohne GUI erledigt das Tool nmtui die IP Adressierung und WLAN Einrichtung. Mit GUI macht man es über das grafische Interface.
Die alte Option über systemd und die dhcpcd.conf Datei kann beigehalten werden wenn dies in in raspi-config entsprechend gesetzt wurde.
Das Tutorial wird schrittweise auf die neuen Konfig Optionen angepasst.
Nach dem Booten und mit angeschlossenem LAN Kabel holt der Pi sich im Default automatisch eine IP Adresse von einem im Netz vorhandenen DHCP Server, üblicherweise also vom Router oder Server DHCP.
Wer mit der DHCP Adresse leben kann oder den Pi an wechselnden Standorten betreibt, belässt es bei der Default DHCP Einstellung.
Sinnvoll und besser ist, für einen festen stationären Server, aber immer eine feste, statische IP Adresse !
Dies geschieht wie oben schon gesagt ohne GUI über das nmtui Kommando.
Die alte Version über die dhcpcd.conf Datei wird hier als Option kleingedruckt beibehalten.
Mit sudo su macht man sich zum Root User (Administrator) um die Konfig Dateien bearbeiten zu können.
Man editiert dort die Datei dhcpcd.conf im Verzeichnis /etc mit einem Editor wie z.B. nano. Man beachte hier das "c" im Dateinamen für den DHCP Client !! dhcpd konfiguriert den DHCP Server der in einem späteren Kapitel behandelt wird.
Das Kommando lautet nano dhcpcd.conf
Das dort aufgeführte eth0 Interface ist das Onboard LAN Interface.
Es bietet sich hier an das Interface im DHCP Modus zu belassen um immer dynamisch eine IP zu bekommen. Ist kein DHCP Server erreichbar, kann man eine feste statische Fallback Adresse bestimmen:
Wer kein Fallback möchte um Server like eine feste statische IP Adresse zu vergeben geht folgendermaßen vor:
Eine feste statische IP bekommt man aber auch über eine Reservierung via Mac Adresse des RasPis in einem ggf. vorhandenen DHCP Server im Netz.
Router wie die FritzBox u.a. supporten sowas im DHCP Setup. Die Mac Adresse das RasPi LAN Ports erfährt man mit dem Kommando ifconfig.
Danach rebootet man das System mit dem Kommando reboot. Nach dem Reboot gibt ein Ping auf die IP Adresse 192.168.1.222 eine positive Antwort und ebenso kann man den Pi mit Putty nun wieder über diese IP per SSH erreichen.
Damit der Pi auch mit seiner statischen IP Adresse einen DNS Nameserver erreichen kann und Namen auflösen kann, muss man zusätzlich die Datei /etc/resolv.conf wie oben editieren und hier folgende Änderung machen:
domain meinedomain.home.arpa
search home.arpa
nameserver 192.168.1.1
Die Nameserver IP Adresse wird hier also auf den lokalen Router (Beispiel) oder die des lokalen DNS Servers im Netz angepasst. (Die Domain netz.intern hier im Beispiel ist natürlich durch die eigene Domain zu ersetzen !)
Ein wiederholter Ping z.B. auf www.heise.de sollte dann das folgende Ergebnis haben:
root@raspberry:/etc# ping www.heise.de
PING www.heise.de (193.99.144.85): 56 data bytes
64 bytes from 193.99.144.85: icmp_seq=0 ttl=247 time=51.774 ms
64 bytes from 193.99.144.85: icmp_seq=1 ttl=247 time=52.305 ms ...usw.
(Stop mit ctrl-c )
Die gesamte Prozedur ist HIER noch einmal visuell zu sehen.
Auf exakt diese Weise lassen sich auch USB basierte Ethernet Adapter wie z.B. DIESER oder auch solche mit Gigabit_Ethernet als 2ten Ethernet Port (eth1) betreiben.
Weitere Adapter werden vom Betriebssystem automatisch erkannt und eth1, eth2 usw. nummeriert. WLAN Adapter ebenso. Ein ifconfig zeigt immer die erkannten Interfaces.
Jeder Adapter arbeitet per Default im DHCP Client Mode, zieht sich also automatisch eine IP Adresse.
Möchte man zusätzlichen Adaptern wie z.B. eth1 statische IP Adressen vergeben mit oder ohne Fallback verfährt man identisch zur obigen Beschreibung in der Datei /etc/dhcpcd.conf
Natürlich ist auch hier DHCP Server Mode möglich, sprich das der RasPi selber als DHCP Server für die Interfaces agiert.
Der DHCP Server Betrieb mit dem RasPi beschreibt ein eigenes Kapitel unten in diesem Tutorial.
Mit mehreren Netzwerk Adaptern kann der RasPi auch als Router arbeiten. Dazu später mehr.
Oft besteht der Wunsch den Raspberry Server statt mit umständlichem LAN Kabel einfach mobil in ein bestehendes WLAN zu hängen.
Der aktuelle RasPi 3 hat dazu gleich WLAN onboard ebenso wie Bluetooth.
Bei den älteren Modellen ist es sehr einfach und schnell erledigt mit einem kleinen WLAN_USB_Stick.
Ein guter Tip sind die USB Adapter von TP-Link die optimale Sende- und Empfangsoptionen haben (nicht nur für den RasPi) durch die externe Antenne, die auch über die SMA Buchse externe Antennen für Richtfunkstrecken supportet.
Am allereinfachsten erledigt man den WLAN Zugang mit dem Tool wpa_gui, was man über die grafische Oberfläche einfach mit Start -> Internet -> wpa_gui anklickt oder auch oben in der Taskleiste sieht mit dem typischen WLAN Symbol. WLANs werden automatisch erkannt.
Das Tool ist selbsterklärend, und speichert die angegebenen WLANs dauerhaft, so das der Raspberry sich auch nach einem Reboot wieder automatisch mit ihnen verbindet.
Wichtig hier wie immer den RasPi mit raspi-config in die richtige WiFi Regulatory Domain (DE=Deutschland, AT=Österreich, CH= Schweiz usw.) zu setzen. Ohne diesen landesspezifischen WiFi Parameter sendet der RasPi nicht !
Wer einen Headless RasPi betreibt oder einen RasPi Zero, also einen OHNE Display, Tastatur und Maus, und diesen automatisch mit einem vorhandenen WLAN verbinden möchte, kann dies auch sehr einfach tun.
Dazu erzeugt man mit einem Editor eine Text Datei mit dem Namen wpa_supplicant.conf mit folgendem Inhalt:
Und kopiert diese Datei einfach in das Verzeichnis /boot auf der Flashkarte des RasPi's.
Das /boot Verzeichnis ist FAT32 formatiert, kann also von jedem Betriebssystem per Kartenleser gelesen werden. Man kann die Datei auf einem Windows Rechner erstellen, und dann kopiert diese dann ins Zielverzeichnis /boot. Es empfiehlt sich einen modernen Editor wie [Notepad++ ] zu verwenden der NICHT die Windows üblichen CR-LFs am Zeilenende addiert !)
Dann steckt man die SD Karte in den RasPi, bootet und der RasPi bucht sich automatisch mit den o.a. Daten ins WLAN ein.
Für den Headless Mode sollte dann auch zwingend zusätzlich eine leere Datei mit dem Namen "ssh" (ohne "") ebenfalls in das Verzeichnis /boot kopiert werden, damit der SSH Server für den remoten Zugriff (PuTTY etc.) aktiviert wird.
Das WLAN Passwort ungeschützt in eine Konfigurations Datei wie der obigen zu sichern ist nicht wirklich sicher aber keine Sorge... der Pi hat gleich ein Tool an Bord um das geschützt einzugeben.
Das Kommando heisst wpa_passphrase. Man gibt also ein:
wpa_passphrase <ssid> <wlan-passwort>
Am Beispiel eines WLANs mit dem Namen (SSID) "Bitschleuder" und dem WLAN Passwort "Geheim123" sieht das dann so aus:
root@raspberry:/etc# wpa_passphrase Bitschleuder Geheim123
Der Konfig Eintrag des Passwortes in der Datei wpa_supplicant.conf ändert sich dann entsprechend:
network={
ssid="Bitschleuder"
psk=01b035e084c87e1a3e348e6fbb4783202b145950789c691687ee0a6f71584e8b
key_mgmt=WPA-PSK
}
Mit dem network {...} Parameter kann man zudem weitere WLAN Netze definieren mit denen sich der RasPi verbindet sollten diese in Reichweite sein.
Sinnvoll ist zusätzlich den Energiespar Modus am WLAN Interface abzuschalten, ansonsten verliert man bei WLAN angebundenen RasPis nach einiger Zeit die Möglichkeit von außen zuzugreifen.
In die Datei /etc/network/interfaces trägt man dazu am Ende folgendes ein:
(Bei anderen Boards wie dem Orange Pi wird das über den Network Manager Dienst gesteuert. Infos dazu HIER )
Danach rebootet man das System (shutdown -r now) und kann nun wahlfrei den LAN oder WLAN Port benutzen.
Ein ifconfig Kommando zeigt analog zu Windows ipconfig die finale Interface Konfig an, inklusive der IP Adressen.
Die IP Adress Anpassung macht man dann wieder in der Datei /etc/dhcpcd.conf.
Natürlich kann man sich mit dem RasPi auch ganz ohne ein bestehendes Access Point basiertes WLAN mit einer sog. "Ad Hoc" Punkt zu Punkt Verbindung direkt koppeln. Z.B. mit Laptop, Smartphone oder Pad.
Dazu editiert man die Datei /etc/network/interfaces dann folgendermaßen:
iface wlan0 inet static
address 192.168.222.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 5
wireless-essid RasPi
auto wlan0
Hierbei ist zu beachten das das verbindende Gerät ebenfalls auf Ad Hoc Modus eingestellt sein muß, was aber meist automatisch passiert. Eine IP Adresse muss statisch im gleichen IP Netz vergeben werden (hier 192.168.222.x).
Der Raspberry Server lässt sich mit seinem onboard WLAN oder auch externem WLAN Stick selber als sehr flexibler, eigenständiger WLAN Accesspoint betreiben auf dem sich WLAN Clients anmelden und verbinden können:
Dazu installiert man mit
apt install hostapd
die Accesspoint Software "hostapd" und editiert wieder die interfaces Datei mit einer statischen IP (AP Betrieb geht ausschliesslich mit statischer IP) auf dem wlan0 Interface (z.B. 10.0.0.1 /24) und passt dazu mit dem Editor die Konfigurationsdatei etc/default/hostapd an, indem man dort die Zeile
DAEMON_CONF="/etc/hostapd/hostapd.conf"
entkommentiert durch Entfernen des "#" am Zeilenanfang bzw. die Pfadangabe der Konfig Datei zwischen die "" einfügt.
Mit dem nano Editor legt man dann mit nano hostapd.conf im Verzeichnis /etc/hostapd/ die Konfigurations Datei "hostapd.conf" zum Einstellen der AP Parameter an, mit folgendem Inhalt den man per cut and paste übertragen kann:
Sollte es wider Erwarten Probleme mit der o.a. Konfig geben kann man auch erstmal eine absolute Minimalkonfig mit offenem AP ausprobieren:
SSID Name und WLAN Passwort (wpa_passphrase) und ggf. das Land passt man hier seinen individuellen Wünschen und Gegebenheiten an.
Danach startet man wie gewohnt unter /etc/init.d den Accesspoint mit ./hostapd restart neu.
Falls der hostapd das mit einem "[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!" quittiert, ist das meist ein Indiz dafür das dem Interface wlan0 vergessen wurde eine statische IP Adresse (siehe oben) zu geben !
Nun kann man z.B. mit einem kostenfreien WLAN_Scanner (Windows, Mac, Android) seinen "Rasberry Accesspoint" auf dem WLAN Funk Kanal 3 senden sehen und sich mit ihm verbinden wie mit einem klassischen WLAN AP oder WLAN Router.
Sehr praktisch wenn man in Verbindung z.B. mit dem unten beschrieben seriellen Terminal im lauten und kalten Rechenzentrum einen Switch oder Router über die serielle Konsole konfigurieren muss, was man nun bequem im ruhigen und warmen Vorzimmer entspannt per WLAN machen kann...
Andere Optionen sind WLANs zu routen oder IP Netze mit einem Raspberry zu verbinden ob mit VPN oder ohne. Mit dem u.a. Quagga Tool lässt sich das sogar mit dynamischen Routing Protokollen machen.
Natürlich möchte man nicht jedem WLAN Client, der sich mit dem Rasberry Accesspoint verbindet, immer eine statische IP per Hand konfigurieren.
Keine Bange, das muss auch nicht sein, denn das übernimmt für ein DHCP Server den man mit
apt install dnsmasq
installiert und dessen Konfig Datei /etc/dnsmasq.conf man editiert und seiner gewünschten IP Adressierung anpasst. Ganz am Ende der datei fügt man mit dem nano Editor die folgenden Zeilen ein:
Wie bereits gehabt, startet auch ./dnsmasq restart unter /etc/init.d den DHCP Server neu mit unserer Konfiguration und vergibt nun den WLAN Clients eine IP dynamisch beim Verbinden mit dem Raspberry Accesspoint.
(Achtung: Stadische IP am WLAN Port muss zum DHCP Bereich passen. Hier 10.0.0.x)
Möchte man einen DHCP Server fürs LAN lässt sich das nach dem selben Muster mit dnsmasq natürlich auch für weitere Netzwerk Interfaces bzw. IP Netze am Raspberry machen.
Alternativ kann man das natürlich auch mit dem unten im DHCP Kapitel beschriebenen ISC-DHCP Server realisieren. Welchen man letztlich nimmt ist wie immer Geschmackssache.
Konfigurationshinweis !:
Zu Recht kam unten in den Beitragsthreads der Hinweis eines Lesers das der LAN Port und der WLAN Port hier 2 getrennte IP Netze sind !
Man MUSS also zwangsweise ein IP Forwarding (Routing) im RasPi aktivieren, möchte man vom WLAN z.B. über einen Internet Router der am LAN angeschlossenen ins Internet.
Dazu muss im RasPi das IPv4 Forwarding mit #net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf aktiviert werden, indem man das Kommentarzeichen "#" vor dieser Zeile mit einem Editor entfernt und rebootet.
Die Trennung der Netze hat aber große Vorteile, da man mit der iptables Firewall zusätzliche Optionen hat den WLAN Traffic zu kontrollieren und zu filtern. Zusätzlich wird das WLAN nicht durch den gesamten Broad- und Multicast Traffic des LAN Ports belastet.
Wer das nicht möchte und den LAN und WLAN Port lieber zusammen in einem gemeinsamen IP Netz haben möchte, der konfiguriert eben schlicht und einfach beide Ports LAN und WLAN über eine Netzwerk Brücke (Bridging) zusammen. Das klappt mit den folgenden Kommandos:
brctl addbr bridge0
brctl addif bridge0 eth0
brctl addif bridge0 wlan0
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig bridge0 10.0.0.1
ifconfig bridge0 up
Will man hier auch den dnsmasq laufen lassen muss man dort natürlich das Interface mit interface=bridge0 entsprechend in der Konfig Datei umsetzen !
Achtung aber wer im LAN noch einen weiteren DHCP Server betreibt !!
Dadurch das LAN und WLAN Port nun per Netzwerkbrücke verbunden ist, vergibt der dsnmasq damit auch im LAN IP Adressen dynamisch so das es beim Bridging hier zum IP Adresschaos kommen kann durch 2 konkurrierende DHCP Server.
In der Regel ist im LAN ein DHCP Server vorhanden (Router, Server etc.) so das der dnsmasq in so einer Bridge Konstellation dann überflüssig ist und deaktiviert werden sollte. Ein weiterer Grund der für das Routing spricht bei dem diese Gefahr nicht besteht.
Noch ein Punkt zur Kanalwahl. Bei USB Sticks ist oft die Regulatory Domain falsch so das einzelne Funkkanäle in Europa blockiert sind oder bei Dual Radio Sticks im 5Ghz Bereich DFS deaktiviert ist.
Wer hier auf Nummer sicher gehen willt setzt beim Booten nochmal explizit die Länder Domain.
Dazu editiert man die Datei /etc/rc.local und fügt die Zeile iw reg set DE hinzu. Das setzt die Reg.Domain auf Deutschland. (AT bzw. CH für Österreich, Schweiz gem. ISO 3166: https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste )
Weitere Infos zur WLAN Integration des RasPis auch auf der Raspberry Foundation Website:
https://www.raspberrypi.org/documentation/configuration/wireless/access- ...
Wichtiger Hinweis zum Edimax Mini USB Stick "nano" und hostapd !:
Benutzer des Raspberry 1 und 2 die den bekannten, preiswerten Edimax "nano" WLAN USB Stick einsetzen wie es ihn z.B hier gibt und der in vielen RasPi WLAN Tutorials und HowTos erwähnt wird, werden sicher frustriert festgestellt haben das der hostapd damit so "out of the box" nicht zum Laufen zu bringen ist.
Es gilt wie gesagt einzig NUR in der Kombination mit hostapd. Als WLAN Client funktioniert dieser Stick problemlos mit Bordmitteln.
Die Gründe dafür würden den Rahmen dieses Tutorials sprengen. Die Lösung aber diese beiden doch noch für den hostapd Betrieb zu verheiraten ist aber kinderleicht, man muss den hostapd Quellcode nur selber übersetzen. Klingt schwer ist aber einfach und schnell erledigt:
Wie das geht beschreibt ein sehr gutes Tutorial HIER !
Wenn man es so umsetzt funktioniert der hostapd Accesspoint auch fehlerlos mit dem Edimax nano WLAN Stick !
Wer sich das nicht antun möchte wählt einen anderen USB Stick z.B. von TP-Link usw. die allesamt fehlerlos auch mit hostapd ohne Klimmzüge laufen.
Mit dem aktuellen Raspberry Pi 3 ist es eh Historie, denn der hat bekanntlich sein WLAN gleich mit an Bord.
Wer etwas hinter die Kulissen seines oder anderer Netzwerke sehen möchte kann das mit vielen freien Tools recht einfach realisieren. Als Beispiel sei hier die bekannte Aircrack-ng Suite genannt für die WLAN Analyse bzw. nmap als Klassiker.
Um das Aircrack Packet zu installieren müssen zuerst ein paar Zusatzpakete installiert werden und die Suite selber übersetzt werden, da sie nicht Teil des Raspian Repositories ist. Das ist aber schnell gemacht mit den folgenden Schritten:
apt install iw sysfsutils autoconf automake libtool pkg-config libnl-3-dev libnl-genl-3-dev libssl-dev libsqlite3-dev libpcre3-dev ethtool shtool rfkill
Installiert alle nötigen Komponenten.
Dann lädt man den aktuellen Aircrack Source Tarball hier herunter ins Verzeichnis /home/pi mit dem Kommando
und entpackt es als Root User (sudo su) mit: tar xvfz aircrack-ng-1.5.2.tar.gz
Danach wechselt man in dieses Verzeichnis:
cd aircrack-ng-1.2
und übersetzt dann das Aircrack Paket mit:
autoreconf -i
./configure --with-experimental
make
make install
Ist das sauber durchgelaufen lädt man mit (sudo) airodump-ng-oui-update noch die aktuellen OUI Dateien dazu. Fertig !
Mit iwconfig prüft man nun ob ein erkannter WLAN Adapter vorhanden ist und ob dieser Monitor fähig ist zeigt das Kommando airmon-ng check.
Hilfreich ist es hier das WLAN Interface aus der Datei /etc/network/interfaces auszukommentieren mit "#" damit nicht andere Prozesse es blockieren für das WLAN Sniffing.
Das Kommando airmon-ng start wlan0 bringt nun den WLAN Adapter in den Monitor Modus (wie oben zu sehen) und erzeugt ein Monitor Interface wlan0mon in das man weitere Kommando Tools wie z.B. Kismet einklinken kann. iwconfig verifiziert das wieder:
Achtung: Ganz wichtig ist hier das der Adapter bei der Eingabe von iwconfig "Mode:Monitor" anzeigt, ansonsten funktioniert die Datenanalyse nicht ! Der Adapter muss dafür im Monitor Modus sein.
Mit dem airmon-ng start Kommando sollte das eigentlich automatisch geschehen aber manche USB Adapter sind etwas zickig dabei.
Keine Sorge, man kann mit den iwconfig Kommandos das immer manuell in der folgenden Reihenfolge fixen.
Ggf. sind dazu mit apt install wireless-tools noch die entsprechenden WLAN Tools zu installieren und gibt die Kommandos in der folgenden Reihenfolge ein:
airodump-ng wlan0mon zeigt dann z.B. sämtliche empfangbaren WLAN Accesspoints inklusive ihrer BSSIDs und aller mit diesen APs assoziierten WLAN Clients an und zwar im gesamten WLAN Band !
airbase-ng -e "Hier freies WLAN" -c 2 wlan0mon
Gaukelt z.B. einen unverschlüsselten Accesspoint allen WLAN Clients auf Kanal 2 vor, den man mit einem der zahllosen WLAN Sniffer wie z.B. inSSIDer sehr schön sehen kann. (Die aktuelle Version ist jetzt leider kostenpflichtig !)
Eine gute freie Alternative für ein Windows WLAN Scan Tool ist WLAN-Scanner gleich onboard !
Der zusätzliche Parameter -Z 4 im o.a. Kommando macht ihn zu einem WPA-2 AP.
Ersetzt man diesen Parameter mit einem -A ,wird ein Ad Hoc Client vorgegaukelt.
aireplay-ng -0 4 -a 00:12:34:56:78:22 -c 98:76:54:32:10:11 wlan0mon ärgert den Nachbarn und schmeisst z.B. den WLAN Client mit der Mac Adresse 98:76:54:32:10:11 vom Access Point mit der Mac 00:12:34:56:78:22 runter und erzwingt eine Neuanmeldung des Clients.
Man kann diese Aircrack Funktion ebenfalls nutzen um ungeliebte Gäste aus seinem und allen anderen WLANs auszuschliessen wie z.B. HIER in einem einfachen Skript, das Google Glass Träger aus jedem WLAN verbannt !
Wenn man die Mac Adressen dort im Skript entsprechend anpasst, kann man natürlich auch andere Hersteller Endgeräte aus seinem und fremden WLAN Netzen erfolgreich fernhalten.
Eine weitere gefährliche Unart von allen WLAN Profilen in OS aller Art ist, das sie im Hintergrund immer weiter versuchen sich mit einem einmal gespeicherten WLAN Profil zu verbinden und das auch wenn dieses WLAN gar nicht mehr erreichbar ist.
Sprich: WLAN Clients suchen weiter immer aktiv nach WLAN Namen mit denen es einmal verbunden war. Siehe auch die aktuelle Problematik bei Android hier.
Anhand dieser sog. Probe Requests kann man dann schnell rausbekommen wo z.B. der Nachbar oder Kollege usw. sich mit dem WLAN Client oder dem Smartphone so alles anmeldet und angemeldet hat und damit aufgehalten hat !
Wie bekommt man das raus...? Auch hier zeigt airodump-ng wlan0mon diese Requests an:
Unten kann man unter "Probes" sehen welche Endgeräte nach vorher verbundenen WLANs suchen. (Hier im Beispiel "Biergarten_M")
Details zum airodump Kommando hier.
Wer es etwas genauer will installiert mit apt install horst ein gutes WiFi Scan Tool für die Kommandozeile:
Danach startet man horst mit horst -i wlan0mon
Das Tool ist selbsterklärend mit der Befehlszeile am unteren Ende. Wichtig hier ist die "C" Taste (Channel) den man unbedingt auf Automatically change channel Modus setzen sollte wenn man das gesamte WiFi Netz untersuchen möchte.
Natürlich geht das auch direkt mit dem GUI, wer die grafische X Windows Oberfläche auf dem Pi laufen hat oder ihn mit VNC oder XRDP fernbedient und zusätzlich den Wireshark dort mit apt install wireshark installiert hat.
Dazu geht man dann folgendermaßen vor:
airmon-ng start wlan0 startet wieder den Monitor Mode und legt das Monitor Interface wlan0mon im Monitor Mode an sofern noch nicht aktiviert.
Man startet den Wireshark im GUI und wählt das Interface wlan0mon aus und klickt Start bzw. die grüne "Rückenflosse".
Der Wireshark zeigt jetzt sämtlichen WLAN Traffic im Empfangsbereich an und deshalb ist es zwingend einen Display Filter aufzusetzen, der nur die gewünschten Probe Requests aus den mitgeschnittenen WLAN Daten rausfischt.
Man stoppt den "Kabelhai" wieder und in das obige Fenster "Filter" gibt man dann folgenden String: wlan.fc.type_subtype eq 4 ein und klickt auf Apply.
Et voila... nun werden nur noch die verräterischen Probe Requests angezeigt.
Ein etwas verbessertes Ergebnis erreicht man mit iwconfig mon0 channel 6 wenn man den Adapter auf den WLAN Mittenkanal 6 setzt.
So kann man auch sehr leicht herausfinden ob die eigenen WLAN Geräte gelernte WLAN Netze ausposaunen und so anderen Rückschlüsse auf ein eigenes Bewegungsprofil mit dem Smartphone bieten !
Die weiteren grundlegenden Kommandos zum Analysieren bzw. Sicherheitscheck des WLAN Netzes werden im Aircrack_Guide oder Wardrive_Enzyklopädie beschrieben.
Eines der klassischen Tools zum Analysieren eines LANs (und auch WLANs) ist das bekannte NMAP.
Die erforderlichen Pakete installiert man mit
apt install nmap zenmap
Wobei "zenmap" die grafische Oberfläche für nmap ist, die man auch bequem via XRDP (Windows RDP) oder VNC fernbedienen kann. (Siehe auch Tightvnc Server Installation hier im Tutorial Kapitel 3)
Startet man Zenmap und befindet sich z.B. im Netzwerk 192.168.0.0/24 tippt man das als lokales Netzwerk ein und mit einem Klick auf "Quick Scan" führt nmap einen Scan des gesamten Netzes und seiner Hosts aus.
Im linken Bereich sieht man die Hosts und auf welchen TCP/UDP Ports diese antworten.
(Real Life Scan auf administrator.de (Sorry Frank ))
Sehr aufschlussreich ist auch das eigene Netzwerk zuhause. WER also dort im eigenen Heimnetz so alles unbemerkt mit dem Internet kommuniziert, wie z.B. PCs, Smart TVs die heimlich nach Hause telefonieren und Fernsehgewohnheiten an Sender und Hersteller übermitteln, aber auch andere Dinge die man nicht wirklich in der großen weiten Welt haben will und schon gar nicht auf sozialen Netzen !
nmap -sP 192.168.1.* (IP Adresse an eigenes Netz anpassen)
liefert schnell einen Überblick welche Hosts von welcherm Hersteller im eigenen Netz gerade aktiv sind.
Jetzt bemüht man das Tool Ettercap auf dem RasPi der diese heimlichen "Spione" im Nu entlarvt.
Das Tool ist mit apt install ettercap-text-only schnell installiert. (Wer es grafisch mag installiert mit apt install ettercap-graphical die Grafik Variante).
Ettercap kann unter anderem ein ARP Spoofing ausführen und im gesamten Netzwerk z.B. allen anderen Teilnehmern den Internet Router vorgaukeln ohne diese anzufassen. Es leitet so den gesamten Traffic ins Internet über sich selber und sieht sich den Traffic dabei an.
In einem Netzwerk mit der IP Adresse 192.168.1.0 /24 wo der der DSL/Kabel Internet Router die IP Adresse 192.168.1.1 hat, erreicht man das mit dem Kommando:
ettercap -T -M arp:remote /192.168.1.1/ / /
Will man die Kommunikation von ganz bestimmten Endgeräten im Netzwerk (z.B. dem Host 192.168.1.100) mit dem Internet belauschen lautet das Kommando:
ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.100/
Man kann hier auch mehrere Endgeräte IP Adressen angeben. Die man Page "man ettercap" und diverse Tutorials im Internet haben weitere Beispiele. Meist ist man sehr erstaunt WAS alles so unverschlüsselt "nach Hause telefoniert" bzw. ins Internet geht wenn man es nicht im Router blockt.
Die einfachste Massnahme ist an solchen Geräten wie Fernseher usw. einfach keine Gateway IP einzustellen um den Spuk sicher abzustellen.
Mit apt install driftnet installiert man ein "grafisches" tcpdump. Leitet man den Netzwerktraffic mit Ettercap wie oben entsprechend um und startet driftnet -i eth0 kann man in einem X Window Fenster alle Bilder und Grafiken sehen die ein Client überträgt. Driftnet fischt diese aus dem umgelenkten Datenstrom.
ist quasi ein "Schrotschuss" der das gesamte Netz umlenkt.
apt install dsniff installiert weitere Analyse Tools um den auf den RasPi umgelenkten Datenstrom zu untersuchen. urlsnarf extrahiert z.B. alle HTTP Anfragen aus diesem umgelenkten Datenstrom.
Ein zusätzliches hilfreiches Tool ist fing das man für den RasPi hier herunterladen kann:
http://www.overlooksoft.com/getfing4arm
Ein dpkg -i overlook-fing-2.2.deb installiert es. fing --help zeigt die Kommandosyntax. Der alleinige Aufruf von fing zeigt alle aktiven Mac- und IP Adressen im Netz.
Es ist quasi ein Schweizer Taschenmesser, das alle Geräte eines Netzes inklusive ihrer Ports und Namen aufspürt.
Weitere Tools wie Wireshark, tcpdump,arpspoof usw. komplettieren das Toolset zur Netzwerkanalyse.
Eine Plug and Play Sniffer Probe zum Einschleifen ins LAN Kabel findet man z.B. HIER beschrieben.
Um den RasPi mit Wireshark als Sniffer Bridge mit 2 Ethernet Ports zu betreiben konfiguriert man auf der Konsole mit den folgenden Kommandos eine Bridge zw. den 2 Ports:
ifconfig eth0 -arp promisc 0.0.0.0 up
ifconfig eth1 -arp promisc 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 -arp promisc 0.0.0.0 up
Wer den RasPi remote über das Bridge Interface erreichen möchte z.B. wenn man via RDP oder VNC Verbindung sniffert, kann man die letzte Zeile auch in ifconfig br0 -arp promisc dhcp up ändern. Der RasPi zieht sich dann eine IP per DHCP. Eine statische IP ist hier natürlich auch möglich !
Natürlich supportet der Raspberry auch die VLAN Integration mit VLAN Tagging (802.1q) auf seinen Interfaces. Dabei ist es egal ob man das eingebaute Ethernet Interface dafür benutzt oder z.B. eins mit einem zusätzlichen USB-Ethernet Adapter.
Die Installation ist wie immer im Handumdrehen erledigt:
Mit apt install vlan installiert man den 802.1q VLAN Tagging Support.
Dann passt man wiederum die Datei /etc/network/interfaces an gemäß der auf dem VLAN Switch verwendeten VLANs die man am Raspberry Port haben möchte.
Die folgende Beispielkonfiguration zeigt das Ethernet Interface eth1 (ein USB-Ethernet Adapter) das mit den VLANs 10, 20 und 30 tagged auf einem VLAN Switch verbunden ist. Das Interface eth1 selber ist dabei untagged mit dem native VLAN (default VLAN) des Switches verbunden.
VLAN interface, IP Adressen in /etc/dhcpcd.confsetzen:
Seit Raspian Version Stretch und Jessie bzw. im katuellen buster wird die IP Adress Konfiguration, egal ob statisch oder dynamisch per DHCP, NICHT mehr in /etc/network/interfaces gemacht sondern in /etc/dhcpcd.conf.
Diese Datei sieht dann für die o.a. VLAN Definition so aus:
Eine dazu korrespondierende Cisco IOS VLAN Switchkonfiguration sähe z.B. so aus:
interface FastEthernet0/24
description VLAN Uplink zum Raspberry Pi Server
switchport mode trunk
switchport trunk native vlan 1
switchport trunk allowed vlan 1,10,20,30
Die RasPi VLAN Konfig lehnt sich dabei an das VLAN_Servertutorial hier im Forum an, das die weiteren Details beschreibt.
Die dazu korrespondierende VLAN Switchkonfiguration für gängige LAN Switchmodelle beschreibt ein entsprechendes VLAN_Switchtutorial hier im Forum.
Es behandelt auch wie das IP Routing (Forwarding) global auf dem Raspberry oder Linux/Windows allgemein aktiviert wird. (Entkommentieren der Zeile #net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf).
Der RasPi kann damit problemlos auch als externer VLAN Router eingesetzt werden der zwischen VLAN IP Netzen routet !
Wem die 100 Mbit Bandbreite des Raspberrys nicht genügen, kann natürlich auch Link Aggregation bzw. Teaming mit 2 Netzwerkadaptern machen um so die Kapazität der Bandbreite zu erhöhen. Da der Raspberry nur einen Adapter onboard hat benötigt er zusätzlich einen weiteren USB-Ethernet Adapter wie z.B. diesen. Praktisch ist auch einer mit integriettem USB Port Hub wie dieser. Alle diese USB-Ethernet Adapter werden automatisch erkannt und supportet.
Interessant ist die Link Aggregation zum Test mit managebaren LAN Switches die Teaming oder Link Aggregation, sprich also das Bündeln mehrer Ports zur Bandbreitenerhöhung supporten.
In der Regel unterstützen die meisten am Markt befindlichen managebaren LAN Switches den verbreiteten Standard 802.3ad mit LACP (Link Aggregation Control Protokoll).
Damit kann man den Switch in Bezug auf funktionierendes NIC Teaming mit 802.3ad / LACP wasserdicht testen.
(ACHTUNG: Der zusätzliche USB Adapter muss ebenfalls ein 100 Mbit/s LAN Adapter sein ! Ein Teaming mit 2 unterschiedlichen LAN Speeds supportet der 802.3ad Standard definitiv NICHT !)
Die folgenden Schritte zeigen das NIC Teaming / LAG inklusive Konfiguration an einem Cisco Catalyst LAN Switch und einem HP ProCurve Switch. Als Beispiel für einen Web Smart Switch mit Konfig über eine GUI ist hier die Konfig eines Cisco Switches der preiswerten SG-200 / SG-300 Reihe gezeigt. Bei Switches anderer Hersteller sind die Konfigs mehr oder minder identisch.
Los gehts...
apt install ifenslave ethtool bmon
Installiert wie gehabt die benötigten Komponenten dazu.
Zum Konfigurieren fasst man wieder mit dem nano Editor die bekannte Datei /etc/network/interfaces an und konfiguriert das Bonding bzw. Teaming. Hier im Beispiel ein 2er Trunk mit den Interfaces eth0 (onboard Ethernet) und eth1 (USB 100Mbit Ethernetadapter):
iface eth0 inet dhcp
iface eth1 inet dhcp
auto bond0
iface bond0 inet dhcp
bond-slaves eth0 eth1
bond-mode 802.3ad
bond-miimon 100
bond-updelay 200
bond-downdelay 200
bond-xmit_hash_policy layer2+3
Den Status des Trunks kann man mit cat /proc/net/bond0/info auf der Linux Seite checken.
Die o.a. Konfig ist fast selbsterklärend...
Mode 802.3ad schaltet das Teaming in dieses Standardmodus den alle LAN Switches verstehen.
Die Hash Policy Layer 2+3 erwirkt eine bessere Last Verteilung auf Basis von L2 und L3 Adressen.
An dieser Stelle ein warnendes Wort:
Im Host/Server Bereich, speziell Windows, gibt es diverse Teaming Arten (Bonding, Failover usw.) die aber in einer LAN Switch Infrastruktur NICHT alle supportet sind !! Ein Quell vieler Fehlerthreads hier im Forum wo Netzwerk Admins oft mit Serveradministratoren streiten über diese Funktion und was geht und nicht geht an LAN Switches.
Dieser Teil des Tutorials bezieht sich NUR auf den o.g. Standard zur Bandbreitenerhöhung (IEEE 802.3ad und LACP Standard) und KEIN Link Failover ! Link Failover ist aktive KEINE Bündelung paraleller Links. Das erreicht man ausschliesslich nur mit 802.3ad (oder .ax) und LACP was der Switch auch supporten muss. Ein managebarer Switch oder WebSmart Switch ist hier also immer minimalste Voraussetzung !
Details zu den Teaming oder Bonding Modi kann man hier nachlesen.
Da wie bereits erwähnt Link Aggregation IMMER eine 2-seitige Angelegenheit ist egal ob "Server UND Switch" oder "Switch zu Switch" folgt im 2ten Schritt nun die entsprechende LAN Switch Konfiguration zum NIC "Teaming / Bonding / Link Aggregation / Etherchannel" mit Switches verschiedener Hersteller als Beispiel:
Trunking Beispiel Cisco "Etherchannel" (Trunk, LAG) Konfiguration an den Ports 0/3 und 0/4 eines Cisco IOS Catalyst Switches.
Mitbewerber mit ähnlichem CLI machen das identisch und bei einfachen Web Smart Switches ist das ein Klick im grafischen Setup:
interface Port-channel1
description RasPi 2Port LAG
switchport mode access
spanning-tree portfast
!
interface FastEthernet0/3
description NIC 1
switchport mode access
channel-group 1 mode active
spanning-tree portfast
!
interface FastEthernet0/4
description NIC 2
switchport mode access
channel-group 1 mode active
spanning-tree portfast
Nach dem Reboot des Raspberrys sieht man das der Port Channel (LAG) auf dem LAN Switch aktiv ist:
Die "andere" Seite auf dem RasPi ebenfalls:
Hier kann man sehr schön sehen das der Host trotz zweier separater NICs nur eine einzige Mac Adresse (b8:27:eb:b9:ac:dd ) verwendet für den LAG !
Das ist essentiell wichtig für den Switch denn es dürfen KEINE 2 unterschiedlichen MAC Adresen verwendet werden, sonst würde kein Load Sharing funktionieren im Trunk / LAG !
Entsprechend zeigt das auch der LAN Switch:
Damit ist der 2mal 100 Mbit/s LAG aktiv am Switch mit einer laufenden Lastverteilung und automatischem Link Backup !
Mit dem Aufruf von "bmon" kann man sich die laufende Lastverteilung ansehen:
Diese Konfig gilt natürlich auch für "große" Server die z.B. multiple Netzwerkkarten schon gleich mit onboard haben !
LAG / Trunking Syntax auf einen HP Procurve Switch:
Generell ist eine dedizierte Trunk Konfig bei den billigen HP ProCurve Switches nicht zwindend erforderlich, denn HP hat per Default auf allen LAN Ports des Switches LACP im Passive Mode aktiviert.
Der Switch formt so von sich aus automatisch sofort einen dynamischen Trunk sofern die angeschlossenen Systeme LACP im Active Mode sprechen. Steckt man also den o.a. konfigurierten RasPi oder einen andere LAG an Switch Port 1 und 2 sieht es so aus:
Sieht man sich jetzt an ob der Trunk aktiv ist:
zeigt der Switch das entsprechend an das er die Trunk Gruppe "Dyn1" automatisch geformt hat.
Wer lieber auf Nummer sicher gehen will beim ProCurve definiert den Trunk fest und statisch.
Benutzt werden als Beispiel wieder die Ports eth 1 und eth 2 und der Trunk hat den logischen Namen trk1.
<config># trunk 1,2 trk1 LACP
<config># wr me
Alternativsyntax:
<config># trunk eth 1-2 trk1
<config># interface eth 1-2 lacp active
Fertig !
Wenn auf dem Switch z.B. das VLAN 10 auf dem Trunk (LAG) Interface untagged oder tagged übertragen werden soll:
<config>#vlan 10 untagged trk1
Tagged:
<config>#no vlan 10 untagged trunk1
<config>#vlan 10 tagged trk1
Konfig danach immer sichern mit:
<config>#wr me
Weitergehende Infos zum Trunking, Link Aggregation mit HP Switches findet man HIER.
Teaming / Trunking Beispiel Ruckus / Brocade ICX Switch:
lag "TestLAG" dynamic id 1
ports ethernet 1/1 to 1/2
primary-port 1/1
deploy
port-name Standard LACP LAG ethernet 1
!
Der Status "Ope" wie "Operational" zeigt hier das der LACP Trunk aktiv ist !
Teaming / Trunking Beispiel eines preiswerten Web-Smart Switch Cisco SG-200er Serie:
Zuerst ist der Trunk ch1 zu definieren mit den Ports (Hier Port 7 und 8)
Durch Überprüfung des Trunk Status kann man sehen ob der LACP Trunk / LAG korrekt aufgebaut wurde und aktiv ist (UP):
Optional: Wenn man den Trunk / LAG in einem spezifischen VLAN oder als Tagged Trunk gesetzt haben will muss man dieses natürlich noch entsprechend in den VLAN Settings definieren: (Entfällt natürlich wenn der Trunk im Default VLAN 1 ist !)
Die einfachste Option ist die Nutzung eines Tethering (Hotspot) fähigen Smartphones. Die Anbindung per WLAN ist identisch zu oben.
Ein Praxisbeispiel für die Anbindung per USB erklärt dieser Forenthread im Detail.
Auch wenn man den Raspberry Pi Server fernab von jedem DSL, Kabel TV oder WLAN betreiben will ist da ja immer noch UMTS, oder sogar LTE. Der Zugriff mit einem UMTS USB Stick ist schnell eingerichtet.
Das bekannte apt install ppp wvdial installiert die benötigten Software Packete. Hat man den Stick eingesteckt zeigt ein lsusb:
root@raspberry:/home/pi# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Das der UMTS Stck sauber erkannt wurde. Wer es genau wissen will checkt auch nochmal mit dmesg:
usbserial: USB Serial support registered for GSM modem (1-port)
option 1-1.2:1.0: GSM modem (1-port) converter detected
usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
Das UMTS Modem (hier ein billiger "Aldi" Stick) ist also erkannt und auf die Schnittstelle ttyUSB0 gesetzt.
Unter dem Verzeichnis /etc editiert man jetzt die Datei wvdial.conf mit dem Nano Editor und passt diese entsprechend seiner SIM Karte bzw. Providers an:
Das obige Beispiel ist angepasst auf eine T-Mobile Xtra Datenkarte.
Wichtig ist hier der sog. APN der entsprechend der SIM und des Providers angepasst werden muss ! Eine APN Übersicht der Mobilfunk Provider findet man z.B. hier.
Das war schon (fast) alles !
Man kann nun mit dem Kommando wvdial umts ( Das "umts" bezieht sich auf den frei wählbaren Namen in der [Dialer "xyz"] Definition oben ) einen ersten UMTS Mobilfunk Verbindungstest machen um zu sehen ob die UMTS Einwahl fehlerfrei funktioniert:
root@raspberry:/home/pi# wvdial umts
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet.t-mobile"
AT+CGDCONT=1,"IP","internet.t-mobile"
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Apr 22 21:46:21 2014
--> Pid of pppd: 2459
--> Using interface ppp0
--> local IP address 172.2.56.174
--> remote IP address 172.2.64.164
--> primary DNS address 172.34.10.10
--> secondary DNS address 172.34.10.11
Anhand der via PPP vom Mobilfunk Provider übermittelten IP Adressen sieht man das die UMTS Einwahl funktioniert. Wer die Verbindung so immer manuell mit wvdial aufbauen will muss nichts mehr weiter machen. CTRL C stoppt die Verbindung wieder.
Zusammen mit dem oben vorgestellten Accesspoint z.B. als "UMTS Taschenrouter" oder wenn der RasPi Server irgendwo autark ohne DSL automatisiert steht, möchte man aber die UMTS Verbindung selbstständig beim Booten aufbauen.
Dazu ist die Datei /etc/network/interfaces anzupassen und um die Schnittstelle ppp0 zu ergänzen:
Ist das so konfiguriert wird beim nächsten Reboot oder mit den Kommados ifup ppp0 oder ifdown ppp0 der UMTS Link automatisch hergestellt.
⚠️ Ein Wort zur PIN auf der SIM Karte !
Einfacher ist es die PIN Abfrage abzuschalten auf der SIM. Man muss das SIM dann nicht entsperren vor der Einwahl. Wer auf diese Sicherheit aber nicht verzichten möchte erzeugt mit dem Nano Editor ein kleines Shell Script setPIN.sh mit folgendem Inhalt:
Wobei hier "1234" durch die eigene PIN zu ersetzen ist ! Mit cp setPIN.sh /usr/local/bin kopiert man es ins Binary Verzeichnis und macht es mit chmod 711 setPIN.sh nur für den Root User sichtbar.
Nun kann man mit dem Kommado setPIN.sh manuell die Karte entsperren und zusätzlich das Kommentar "#" vor dem pre-up Kommando in der Datei etc/network/interfaces oben entfernen um das automatisiert vor der UMTS Einwahl auszuführen.
Damit ist nun der grundlegende Teil der RasPi Server Installation an sich und der Netzwerk Installation abgeschlossen.
Die jetzt folgenden Kapitel im Tutorial beschreiben die Einrichtung der einzelnen Netzwerk Management Dienste und Funktionen.
Basisdienste sind die Syslog Anpassung zum Empfang von Log Meldungen, ein Webserver mit PHP, FreeRadius für sicheres LAN und WLAN, RS-232 Terminalserver zum Fernwarten von Konsolen, TFTP Server für den Upload von Imagedateien. Alle diese Dienste liegen dank Debian Basis als fertige Pakete vor die mit einfachen Kommandos nur installiert werden müssen.
Wer viele Daten vorhalten will entscheidet sich also schon gleich am Anfang für eine größere SD Flash Karte mit 8GB oder mehr.
Man spielt nun die wichtigsten Pakete ein:
apt install apache2
installiert den Webserver Apache 2
apt install php
Installiert PHP5 dazu.
Wenn man jetzt die IP Adresse des Pi im Webbrowser eingibt, dann erscheint eine kurze Begrüssungsseite.
Die HTML Dateien für den Webserver sind unter /var/www/ zu finden.
Analog dazu installiert man mit...
apt install freeradius
...den FreeRadius Server
apt install mrtg mrtg-rrd rrdtool snmp snmpd snmp-mibs-downloader
...die grafische Performance Überwachung MRTG / RRD
apt install minicom
...ein serielles Terminal
apt install ser2net
...den Telnet zu Seriell Terminalserver (Fernwartung Cisco Konsole und ser. Konsoler anderer Hersteller etc.)
Update:
Mit dem aktuellen Raspbian und der neuen PIXEL Oberfläche wird nun ein VNC Server per Default installiert so das die unten beschriebene VNC Server Installation obsolet geworden ist. Der Default VNC Server funktioniert NICHT zusammen mit xrdp !
Bevor man also xrdp installiert muss der VNC Server mit sudo apt purge realvnc-vnc-server entfernt werden ! Erst dann ist der xrdp Server zu installieren.
Bei einem so kleinen Rechner wie dem Raspberry Pi ist es oft umständlich Tastatur, Maus und Monitor anzuschliessen um mit der grafischen Windows Oberfläche zu arbeiten.
Gerade Anfänger fühlen sich aber sicherer auf einem Windows GUI als auf der Kommando Ebene.
Einfacher und bequemer geht das natürlich mit einer grafischen Fernsteuerung ala Windows RDP über das vorhandene Netzwerk. Der Raspberry kann natürlich beides, sowohl RDP als auch VNC.
Hier die ToDos für Windows RDP (Remote Desktopverbindung):
Auch ein VNC Server ist schnell mit apt install tightvncserver installiert. Apple Macs haben wie Windows RDP einen VNC Client von sich aus gleich an Bord. Wobei Apple Macs auch die Option des kostenlosen Microsoft RDP Clients aus dem App Store haben.
Nach der Installation ruft man den Server einmal mit tightvncserver auf, worauf dieser nach einem Terminal Passwort fragt das man ihm eingibt.
Ist das erledigt startet man den Server mit vncserver, Fertig...!
Von Windows aus nimmt man einen VNC Viewer wie UltraVNC oder RealVNC und gibt als Server IP ein <ip_adresse_raspi>:5901
Apple Mac User haben es mit dem bordeigenen VNC Client noch einfacher:
Klick auf --> "Gehe zu" --> Mit Server verbinden --> vnc://<ip_adresse_raspi>:5901
Analog ist die Prozedur bei der VNC App bei iPad, iPhone und Android Smartphones.
(Screenshot einer VNC Verbindung zur Anzeige der unten beschriebenen GPS/NTP Funktion)
Einen Nachteil hat diese einfache Installation: Nach einen reboot des Raspberry muss man manuell mit der Eingabe "sudo vncserver" den VNC Server wieder neu starten. Aber keine Angst auch das lässt sich automatisieren.
Dieser_Link erklärt wie das einfach zu bewerkstelligen ist.
Einfacher ist da dann RDP, das bleibt auch nach einem Reboot erhalten und auch der Mac supportet es mit dem kostenfreien Download der Microsoft_RDP_App aus dem Apple Store für Mac und iPhone / iPad.
Die andere Alternative ist der einfache Zugang über eine Web Browser Verbindung wie sie folgenden Kapitel beschrieben wird.
! Nochwas zu RDP und VNC:
Der Mauzeiger hat seit Raspian Jessie sowohl mit RDP als auch mit VNC (apt install tightvncserver) ein hässliches Kreuz statt des üblichen Mauszeigers auf dem Remote Schirm.
Das bekommt man ganz einfach weg:
Auch der drahtlose Zugriff via Bluetooth auf die RasPi Konsole ist bei den mit BT ausgestatteten Modellen möglich. Bei Modellen ohne BT hilft ein kleiner Mini Blutooth USB Stick. Die einfache Prozedur zur Einrichtung ist HIER_beschrieben.
Eine sehr elegante und bequeme Option ist es den Shell Zugang via Webbrowser zu realisieren. Möglich macht das ein Tool namens Shellinabox was als Daemon startet und einen eigenen Webserver auf TCP Port 4200 mitbringt. Die installation der nötigen Komponenten ist wie immer mit:
apt install shellinabox minicom
schnell erledigt.
Danach editiert man die Datei /etc/default/shellinabox und ändert die Konfiguration in:
Danach startet man mit /etc/init.d/shellinabox restart den Daemon neu.
Gibt man jetzt im Webbrowser http://<IP_Adr_RasPi>:4200 kann kann man den Zugang schon testen und man landet so auf der Login Shell.
So hat man auch einen remoten Zugang ganz einfach über eine simple Web Browser Verbindung.
Wie man das ganze jetzt mit einem seriellen Terminal verheiratet erklären die folgenden Schritte:
Um jetzt z.B. an eine über einen USB zu Seriell Adapter angeschlossene serielle Konsole zu kommen, um Switches und Router mit einem seriellen Konsolenzugang zu konfiguriren, ruft man das serielle Terminal "Minicom" mit minicom -s auf.
Hier konfiguriert man den seriellen Port auf /dev/ttyUSB0 und stellt die Baudrate auf die üblichen 9600 Baud mit 8N1 Parity und Stoppbits ein. Die Hard- und Software Flow Control schaltet man ab. Danach wird die Konfig als Default Konfig (save as dflt) abgespeichert.
Als Testlauf ruft man jetzt minicom ohne Parameter auf und sollte gleich auf der seriellen Konsole sein. CTRL A-Z beendet das Terminal wieder.
Jetzt wieder den Browser starten und http://<IP_Adr_RasPi>:4200/termi aufrufen.
Et voila'... das sollte jetzt die serielle Konsole im Webbrowser zeigen !
Wer die Konsole im klassischen Terminal Look mit hellgrüner Schrift auf schwarzem Hintergrund möchte, findet HIER eine Anleitung wie das farblich anzupassen ist.
Eine Top Anwendung die hier im Forum oft nachgefragt wird um die Passwort Verwaltung in Gastnetzen erheblich zu vereinfachen !
Diese Funktion bietet für kleine Pensionen, Cafes, Hotels oder Firmen mit einem Gast WLAN Hotsport oder allgemein für die Zugangskontrolle zu Gastnetzen, eine auch für Laien (Frontdesk) sehr einfache Verwaltung von Gäste Einmalpasswörtern (Gästetickets) mit einem Web Browser und auch den gleichzeitigen Versand dieser Tickets auf die Mobiltelefone der Gäste papierlos per SMS.
Die Installation ist auf dem kleinen Raspberry Server im Handumdrehen gemacht...
Grundlage hierfür sind die beiden Forums Tutorials zur generellen Einrichtung eines Gast Hotspot die man unbedingt vorher lesen sollte:
WLAN oder LAN Gastnetz einrichten mit einem Captive Portal (Hotspot Funktion)
und das darauf aufbauende Tutorial für die Web basierte Voucher (Eimalpasswort) Verwaltung.:
Voucher für pfSense online verwalten und optional Voucher per SMS verschicken
Im .zip File des PHP Voucher Tools ist zusätzlich ein PDF Dokument enthalten mit weiteren Informationen.
Der Raspberry Server bietet somit die Möglichkeit ohne große Investition in Server Hardware eine sehr komfortable Voucher Verwaltung für kleines Geld und minimalem Aufwand zu realisieren.
Das er nebenbei auch noch die Benutzer rechtssicher mittloggt (Störerhaftung) ist ein weiterer positiver Nebeneffekt dieser Lösung.
Los gehts....
Zu den oben bereits installierten Paketen apache2 und PHP muss noch ein MySQL/MariaDB Server mit PHP Support installiert werden. Das geht wie gehabt als Root User mit:
apt install mariadb-server php-mysql php-fpdf phpmyadmin
Während der Installation wird man nach einem Root Passwort für den MySQL Datenbank Server gefragt, das man sich unbedingt notieren sollte !
Wer die Installation vorab schon auf korrekte Funktion testen möchte, erzeugt mit dem nano Editor eine kleine Datei im Web Server Root Verzeichnis /var/www mit dem Namen info.php und folgendem Inhalt
Mit dem Aufruf von http://<server-ip>/info.php im Browser seiner Wahl checkt man ob das PHP5 Modul "mysql" sauber im Webserver geladen wurde:
Das Tool phpmyadmin dient zur grafischen Bedienbarkeit der Datenbank wem das CLI zu kompliziert ist. Es kommt in deutscher Sparche daher wenn man es installiert und wird im Webbrowser mit <ip_adresse_raspi>/phpmyadmin aufgerufen. Login ist root und das bei der Installation vorab abgefragte Passwort.
Sind alle Pakete fertig installiert, erzeugt man die Voucher Datenbank in MySQL/MariaDB. Es ist aus Sicherheitsgründen empfehlenswert einen separaten Datenbank User zu installieren als das Root Passwort zu benutzen. Das ist aber kein Muss sondern Geschmackssache.
Dazu nutzt man das Kommando mysql wie folgt:
Jetzt gibt man am MySQL Prompt sein oben gemerktes MySQL Rootpasswort ein und kreiert mit:
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)
und dann mit
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
(Das Fettgedruckte eingeben)
..einen neuen Benutzer "admin" und weist ihm entsprechende Datenbank Rechte zu.
Wie gesagt: wer möchte kann hier auch den Root User verwenden der während der Installation angelegt wurde.
("test123" ist hier ein Passwort Beispiel und sollte entsprechend durch ein eigenes ersetzt werden !)
Mit
loggt man sich jetzt mit dem neuen Datenbank User ein und erzeugt mit:
mysql> CREATE DATABASE voucher;
Query OK, 1 row affected (0.01 sec)
mysql> exit
Bye
Eine neue Datenbank mit dem Namen "voucher" für die Gast Vouchers.
Die MySQL Vorbereitungen sind damit abgeschlossen !
Jetzt kopiert man mit WinSCP oder direkt mit dem Raspberry die Voucher Server PHP Installationsdatei vouchergenerator1x.zip ins Webserver Dokumentverzeichnis /var/www/ und entpackt es dort mit dem Kommando unzip vouchergenerator1.x.zip. (Aktuell ist derzeit die Version 1.5)
Es erzeugt dort beim Entpacken selber ein entsprechendes Verzeichnis das man der Einfachheit halber mit "mv vouchergenerator1.x vouchergenerator" umbenennen sollte, was aber kein Muss ist.
Wichtig: Detailierte Installationshinweise findet man zusätzlich in der im .zip Archiv enthaltenden PDF Datei.
Das /temp UND das /includeVerzeichnis sind beide unbedingt noch mit chmod 777 temp bzw. chmod 777 include beschreibbar zu machen !
Nun startet man die Installation des Voucher Tools mit
http://<server-ip>/vouchergenerator/setup.php
die dann alle relevanten Daten abfragt und sofern die Installation erfolgreich war, dies auch meldet mit:
Danach kann man nun für mehrere Zeitlimits und auch für die Voucher Vergabe per SMS die Voucher Tabellen anlegen. Hier im Tutorial Beispiel für 30 Minuten, 2 Std. und 8 Std.:
Fertig.... !
Über die Upload Funktion werden nun die von pfSense oder OpenSense generierten und exportierten Excel CSV Voucher Dateien hochgeladen. Ob das erfolgreich war meldet die Voucherverwaltung über einen Klick auf Statistik:
(Hier als Beispiel mit 100 generierten Vouchers in der CSV Datei)
Der Voucherserver ist jetzt sofort einsatzbereit oder man kann weiteres Finetuning machen wie die Verteilung der Vouchers über SMS via Provider http://www.smsflatrate.net oder das Anlegen weiterer Voucher Verzeichnisse z.B. für 3 oder 8 Stunden Hotspot Zugang unterschiedlicher Benutzer Zeitspannen.
Achtung: Zur SMS Versendung via http://www.smsflatrate.net benötigt man VOR dem Ausführen des obigen Setups einen dortigen Prepaid Account um eine API (Gateway Key) zu bekommen.
Diese API Ziffer trägt man dann beim Setup unten in das Feld "smsflatrate.net Gateway Key" ein !
Dieser Dienst dient zum zentralen Empfang von Log Meldungen aktiver Komponenten im Netzwerk wie Switches und Router oder auch Server.
Zusätzlich zur obigen Installation von Apache2 und PHP5 muss man noch ein Grafikpaket installieren um die grafischen Statistiken des Loganalyzers ausgeben zu können.
apt install php-gd
erledigt das wieder im Handumdrehen.
Kollege @lcer00 hat zudem ein Syslogserver Setuptutorial erstellt was von extern eingehende Syslog Meldungen sauber sortiert.
Bevor man nun zur grafischen Oberfläche für den Syslog Server kommt, muss man diesen erst etwas anpassen damit er Log Meldungen von externen Geräten im Netzwerk an ihn akzeptiert.
Dazu editiert man mit dem nano Editor die Datei /etc/rsyslog.conf. Hier entkommentiert man 2 Zeilen indem man das "#" davor entfernt:
Wer möchte kann externe Log Meldungen, die wie bei Cisco als local7 Meldungen reinkommen, noch in ein separates Log schicken damit sie nicht im allgemeinen Log untergehen.
Dazu editiert man wieder die Datei /etc/rsyslog.conf und fügt folgende Zeilen hinzu:
Die separate Log Datei "cisco.log" erzeugt man dann mit dem Kommando "touch cisco.log" im Verzeichnis /var/log/.
Mit systemctl restart rsyslog unter startet man dann den Syslog Server neu um die Änderungen zu aktivieren oder macht einen Reboot mit "reboot".
Das Kommando tail -f /var/log/syslog zeigt eingehende Log Meldungen in Echtzeit an, die man z.B. mit dem Kommando logger Hallo hier kommt was rein... provozieren kann.
Mit less syslog oder less cisco.log kann man sich die Log Dateien mit den eingehenden Meldungen der externen Komponenten unter /var/log ansehen.
Auf die Dauer natürlich langweilig und nicht gerade komfortabel, deshalb muss ein grafisches Frontend her.
Das kommt in Gestalt einer PHP Anwendung mit dem Namen "LogAnalyzer" und kann hier kostenlos runtergeladen werden:
http://loganalyzer.adiscon.com/downloads
Die Installation ist recht einfach und unter Windows benötigt man das Tool WinSCP um diese Datei auf den Pi zu übertragen, die dann im Verzeichnis /home/pi landet. Mac und Linux Nutzer nehmen das bordeigene scp Kommando dafür.
Dann führt man folgende Schritte aus:
Eine interessante Anwendung ist die grafische Log Überwachung eines Radius Servers mit erlaubten oder abgewiesenen Benutzern. Details zu diesem Setup bietet das hiesige Freeradius Tutorial.
Wer das Netzwerk Log mit den local7 Messages (z.B. Cisco u.a. Switch Hersteller) gefiltert ansehen will, editiert die config.php Datei unter /var/www/loganalyzer und fügt unter dem Abschnitt "$CFG['DefaultSourceID'] = 'Source1';" am Ende eine 3te Source ein (2 wird von MySQL benutzt !):
$CFG['Sources']['Source3']['ID'] = 'Source3';
$CFG['Sources']['Source3']['Name'] = 'Netzwerk';
$CFG['Sources']['Source3']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source3']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source3']['LogLineType'] = 'syslog';
$CFG['Sources']['Source3']['DiskFile'] = '/var/log/netzlog';
Hat man alles richtig gemacht sollte das zu sehen sein:
(Beispiel hier mit 2 Cisco Log Meldungen)
Ein Schnelltest ob alles angezeigt wird liefert die Eingabe von logger Test123. Die Syslog Message "Test123" sollte dann im Syslog erscheinen.
Natürlich ist der Loganlyzer auch in deutscher Sprache (und auch andere Sprachen) verfügbar:
http://loganalyzer.adiscon.com/plugins/translations
Die obige Installation hat Deutsch aber schon per Default installiert so das nur eine klitzekleine Änderung der Konfig Datei vonnöten ist:
Mit dem nano Editor öffnet man die Datei /var/www/loganalyzer und sucht nach der Zeile:
$CFG['ViewDefaultLanguage'] = "en";______________ Sets the default display language
Das "en" ersetzt man ganz einfach mit einem "de" und schon ist beim nächsten Aufruf die Seite in Deutsch.
Dafür hat Forumskollege @colinardo ein fertiges Script erstellt:
Informationen aus dem Webinterface einer Fritz!Box via Shellscript auslesen
Auch hier werden im ersten Schritt wieder die Grundpakete installiert mit den bekannten Kommandos:
apt install nagios3
Bei der Installation wird das Nagios Login Passwort abgefragt, das also bitte gut merken.
Das Nagios Web Frontened kann man nach der Installation direkt mit http://<RasPi_ip>/nagios3 in einem Webbrowser aufrufen. Der Benutzername zum Einloggen ist nagiosadmin.
Die Konfig Dateien zum Bearbeiten befinden sich unter /etc/nagios3/objects. Dort ist auch eine Default Datei switch.cfg die man für eine erste quick and dirty Installation anpassen kann
Die o.a. Konfig passt man entsprechend auf seine IP Adressen und Hostnamen an und erweitert sie je nach zu überwachenden Komponenten.
Damit ist erstmal eine einfache Grundkonfiguration gegeben.
Ein hier im Forum häufig auftauchender Thread: "Wie sehe ich die Auslastung meines Routers oder Switches...?"
Cacti ist ein komplettes fertiges grafisches Frontend auf Basis der RRD Tools. Es ist etwas einfacher zu Installieren und zu Konfigurieren als MRTG weil es als fertiges Paket kommt.
Die Installation des Pakets erfolgt in gewohnter Weise mit
apt install cacti
Der Installer installiert alle erforderlichen Dienste und startet sie. Ist die Installation durchgelaufen startet man lediglich einen Web Browser und gibt dort ein http://<ip_adresse_RasPi>/cacti
Cacti zeigt dann den Status an und man kann gleich loslegen....
Der nächste Abschnitt beschreibt die Installation des ebenfalls wie Cacti populären MRTG_Tools für die kontinuierliche, grafische Performance Überwachung von Netzwerk Komponenten wie Server, Router oder Switches mit einer Tages-, Wochen- und Jahresübersicht.
Alles analog wie Cacti nur feiner customizebar wenn man etwas Handarbeit nicht scheut.
Die entsprechenden Pakete sollten mit apt install mrtg mrtg-rrd rrdtool snmp snmpd wie oben beschrieben installiert sein !
Zusätzlich installiert man nun dazu im Webserver Verzeichnis ein separates Verzeichnis für die MRTG Daten:
mkdir /var/www/mrtg und ändert mit chown www-data:www-data /var/www/mrtg den Benutzer, damit Apache in das Verzeichnis schreiben kann.
Leider gibt es ein Problem im SNMP Perl Modul (Stand 14.10.2012) so das etwas Editor Handarbeit zum Korrigieren dieses Fehlers erforderlich ist. Mit unserem bekannten nano Editor ist das aber im Handumdrehen erledigt !
Die entsprechende Datei ist /usr/share/perl5/SNMP_Session.pm die man mit dem nano editiert.
In Zeile 149 und Zeile 608 (Zeilenanzeige im nano mit <ctrl c>) ist dort der Text import Socket6; zu ersetzen mit der Zeile Socket6->import(qw(inet_pton getaddrinfo)); !
Im nano ist das recht einfach indem man <ctrl>_ (ctrl underline) eingibt und einfach die Zeilennummer (149 und dann 608) eintippt so das der Editor direkt an diese Stellen springt.
Mit Cut and Paste kann man dann diese beiden Zeilen überschreiben.
Ist das erledigt geht es nun daran SNMP (Simple Network Management Protocol) auf den Netzwerk Geräten zu aktivieren, denn MRTG liest diese Daten mit SNMP.
Bei einem Cisco IOS Switch oder Router sieht das z.B. dann so aus:
!
snmp-server community public RO
snmp-server community private RW
snmp-server location Rechenzentrum, Raum: 1
snmp-server contact Herr Admin, Tel.:1234
(snmp-server host 172.16.1.200) optional
!
Bei HP, Extreme, Enterasys, Ruckus ICX oder anderen CLI basierten Switches und Router sehen diese Konfig Zeilen identisch aus.
Bei einfachen WebSmart Switches wie z.B. D-Link, NetGear usw. sind im Konfig GUI diese Einstellungen zu machen:
bzw. hier ein einfacher Trendnet Switch:
Ein snmpwalk <ip_adresse_router/switch> -c public -v1 checkt ob das Netzwerk Gerät per SNMP ansprechbar ist. (Wer andere Community Strings als public für read-only verwendet muss das natürlich entsprechend anpassen !)
Ist das geschehen und hat man mit einem Ping die Verbindung zwischen Mangement Server und Router, Firewall oder Switch verifiziert, dann erzeugt der folgende Aufruf automatisch die MRTG Konfigurationsdatei:
cfgmaker --ifdesc=descr --global "Language: german" --global 'Options[_]: bits,growright' --output /home/pi/mrtg.cfg public@<ip_adresse oder domain_name>
(Mit IP oder Domain ist hier die Management IP des Servers, Routers oder Switches gemeint !!)
Jetzt kann man einen manuellen MRTG Probelauf starten und Daten mit
mrtg /home/pi/mrtg.cfg
abfragen. Anfängliche Fehlermeldungen kann man hier ignorieren, denn sie verschwinden spätestens nach dem 2ten oder 3ten Aufruf.
Sieht man mit ls /var/www/mrtg/ in das Webserver Verzeichnis für MRTG sieht man hier nun auch eine Menge Dateien mit den aktuellen grafischen Daten.
Nun gilt es noch eine HTML Index Datei dort zu erstellen damit man die Grafiken einfach mit einem Web Browser abfragen kann.
Auch das geschieht wieder automatisiert mit einem Skript:
indexmaker --output=/var/www/mrtg/index.html --title=Internet-Router /home/pi/mrtg.cfg
Fertig...
Nun reicht es mit dem Browser einfach auf http://<server_ip>/mrtg zu gehen und man kann die Daten betrachten.
Am Beispiel eines älteren Cisco 2514 Routers sieht das Ergebnis dann so aus:
(Hier mit zwei 10 Mbit/s Ethernet, VPN Tunnel und CPU Load)...und etwas wenig Traffic
Eine pfSense Firewall mit etwas mehr Traffic...:
Nutzbar ist diese Analyse auch auf virtuellen Routern o. Switches die mit Emulationssystemen wie z.B. GNS-3 nur in einer Laborumgebung simuliert werden.
Nun will natürlich niemand manuell alle 5 Minuten ein MRTG Kommando senden um die Daten abzufragen.
Das übernimmt automatisch der CRON Dämon auf dem Server.
Man erzeugt mit dem nano Editor eine kleine Text Datei z.B. cronmrtg mit folgendem Inhalt:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/mrtg /home/pi/mrtg.cfg
Und ruft dann crontab cronmrtg auf.
Damit ruft der Server dann alle 5 Minuten die aktuellen Daten vom Netzwerk Gerät ab. Hat man mehrere Komponenten zu überwachen bekommt jedes eine MRTG Konfig Datei und auch einen Crontab Eintrag.
Mit crontab -l kann man checken ob der Cron Dämon sauber läuft.
Noch ein kosmetischer Tip:
Wer auch den oben beschriebenen Log Message Server (Syslog) laufen lässt wird nun sehen das jetzt die MRTG Cron Aktivität alle 5 Minuten den Syslog "vollmüllt" da alle 5 Minuten auch eine Log Message erzeugt wird.
Schnelle Abhilfe schafft wieder ein kleiner chirurgischer Eingriff in die Syslog Konfig Datei etc/rsyslog.conf die oben schon bei der Einrichtug des Syslog Servers beschrieben ist.
Den Eintrag
erzetzt man mit
und startet den Syslog Server mit /etc/init.d/rsyslog restart neu und schon ist der Syslog wieder sauber.
Diese Anleitung zeigt die einfache Basis Konfiguration. Die MRTG Webseite hat noch viele Tips wie man den grafischen Output weiter optimieren oder verändern kann.
Die CPU Last Anzeige im obigen Screenshot bekommt man z.B. in die Ausgabe wenn man die mrtg.cfg Datei um die folgenden Zeilen ergänzt:
Die SNMP OID für die CPU Last variiert ggf. bei unterschiedlichen Herstellern (die obige ist eine Cisco OID) und muss ggf. entsprechend angepasst werden.
Analog lassen sich so auch bei Microsoft und Linux Servern und auch beim Management Server selber die CPU Last, Plattenfüllstände, NICs usw. abfragen.
Hilfreiches Tool zum troubleshooten von SNMP außer dem Bordmittel snmpwalk ist der auch kostenfreie SNMP_Tester von Paessler.
Wer eine richtig schicke Bedienoberfläche haben möchte für MRTG / RRD der installiert sich Observium.
Observium ist ähnlich wie Cacti, und MRTG bietet aber noch weitaus mehr grafische_Auswertemöglichkeiten.
Bequemerweise existiert hier ein einfaches Installationsskript das man einfach aufruft und das Observium gebrauchsfertig installiert.
wget http://www.observium.org/observium_installscript.sh
Dann macht man dieses Skript ausführbar mit: chmod +x observium_installscript.sh
Und startet dann das Installationsskript mit:
./observium_installscript.sh
Alle relevanten Parameter werden dann Menü geführt abgefragt.
Ist alles sauber und fehlerlos durchgelaufen, startet man einen Browser und gibt dort einfach die IP Adresse des Raspberry Pis ein um die Login Maske von Observium zu erhalten.
Über Device und +Add fügt man dann Netzwerk Geräte hinzu die man überwachen möchte. Hier gibt man einfach deren IP Adresse ein und den SNMP Community String und schon kann man loslegen.
Observium Live Screenshot (Ruckus Switch)
Sehr viel interessanter und detailierter wird die Auswertung wenn man IPFIX, NetFlow oder sFlow fähige LAN Switches oder Router im Netzwerk hat, denn Ntop wertet auch eingehende sFlow Pakete aus.
So ist man in der Lage Switch- und Router Ports im gesamten Netzwerk, sprich von allen Endgeräten und ihren IP Flows zu analysieren die nicht direkt mit dem eth0 Interface des Ntop Servers verbunden sind. Auch ein Traffic Accounting ist möglich mit kostenfreien Tools wie z.B. pmacct.
Mit sFlow / NetFlow bzw. IPFIX ist man so in der Lage sämtlichen Traffic eines Netzes quantitativ und qualitativ, egal wo, schnell und übersichtlich per Webbrowser zu analysieren.
Die Visualisierung mit NetFlow/IPFIX erklärt ein separates Forentutorial!
Eine Vielzahl derzeit aktueller Ethernet Switches am Markt supporten diese Flow Protocol Standards:
http://blog.sflow.com/2012/09/switch-configurations.html zeigt alle Hersteller.
Hier kann man auch gleich die zum jeweiligen Switch passende sFlow Konfig einsehen. Ntop bereitet diese sFlow Daten mit Hilfe des u.a. sFlow Toolkits auf und stellt sie entsprechend nach IP Adresse und Protokoll spezifisch grafisch dar.
Wem eine einfache, tabellarische und textbasierte Darstellung reicht kommt mit diesem einfachen Kommandotool, das sFlow Toolkit aus:
http://www.inmon.com/technology/sflowTools.php
bzw.
http://blog.sflow.com/2011/12/sflowtool.html
Das Tool und die Beispiel Scriptsammlung kann man entsprechend frei runterladen. Das geht am bequemsten direkt aus dem Github mit wget auf den RasPi:
Läd Toolkit und Beispielskripte auf den RasPi. Das aktuellste Release findet man immer auf der Inmon Seite bzw. deren Link auf Github.
Wie üblich jetzt mit unzip master.zip entpacken und ins Verzeichnis sflowtool-master wechseln. Hier jetzt die folgenden Kommandos ausführen:
./boot.sh
./configure
make
make install
Fertig ! (Details dazu in der README Datei).
Damit das sFlow Tool die sFlow Daten des Switches an Ntop übergeben kann muss man den Ntop Dienst zunächst stoppen (ps -ax und dann Prozess ID mit kil stoppen)
Nun startet man Ntop neu mit:
sflowtool -4 -t | ntop -f -
Browser wieder wie oben mit http:/ /<ip_adresse_raspberry>:3000 auf NTop verbinden und schon sieht man nun sämtliche Teilnehmer, Protokolle und Lasten im Netzwerk grafisch sortiert gelistet und erhält so eine schnelle und umfassende Übersicht des eigenen Netzwerk Traffics im gesamten Netzwerk.
Für die erfolgreiche Ausführung der sFlow Analyse Beispiel Scripte (vorher entpacken mit tar xvzf sflowutils.tar.gz) ist mit apt install gawk noch die entsprechende awk Version zu installieren sofern nicht schon gemacht, damit die Scripte sauber laufen.
Zusätzlich muss man die Scripte noch editieren (nano) und das "#!/bin/awk -f in der ersten Zeile des Scripts durch ein #!/usr/bin/gawk -f ersetzen.
Der Skriptaufruf im Verzeichnis /home/pi :
sflowtool -4 | ./ipTrafficMatrix z.B. zeigt dann z.B. minütlich die IP Flows (Kommunikationspartner) oder die Top Talker (Stationen mit dem meisten Traffic Volumen) im Netzwerk auf dem sFlow Switch.
root@raspberrypi:/home/pi/utils# sflowtool -4 | ./ipTrafficMatrix
10:00 192.168.1.161 192.168.1.30 2
10:00 192.168.1.169 239.255.255.250 6
10:00 192.168.1.169 192.168.1.162 88
10:00 192.168.1.161 192.168.1.255 11
10:00 192.168.1.162 192.168.1.169 90
10:00 192.168.1.161 224.0.0.1 3
10:00 192.168.1.157 255.255.255.255 2
10:00 192.168.1.1 239.255.255.100 1 usw...
Wer möchte kann das auch im Hintergrund in eine Text Datei schreiben lassen mit sflowtool -4 | ipTrafficMatrix > traffic.txt &
sflowtool -h gibt einen Hilfstext aus und zeigt die gesamten Paramter die möglich sind.
(Der Parameter "-4" limitiert die Ausgabe auf IPv4 Traffic. Lässt man ihn weg wird IPv4 und IPv6 Traffic angezeigt.
IPv6 funktioniert im RasPi nur wenn es entsprechend wie im Kapitel "IPv6 ins Internet routen mit SixXS Tunnel" beschrieben, vorher aktiviert ist ! Im Default macht der RasPi nur IPv4.)
Im Gegensatz zur obigen Performance- und Durchsatzanalyse kann man mit dem ntop Tool eine Protokoll Analyse fahren im Netzwerk und dort auch bestimmen wer Hauptnutzer ist mit welchen Protokollen.
Ideal ist das mit einer Kombination von LAN Switches die sFlow oder NetFlow supporten doch dazu später mehr...
Als allererstes installiert man wieder mit
apt install ntop rrdtool gawk
die dafür notwendigen Anwendungen. Hier werden während der Installation die Interfaces abgefragt und statt none kann man dort eth0 einsetzen und setzt zudem ein User Passwort womit die Installation abgeschlossen wird.
ntop bringt seinen eigenen Web Server mit ! Eine Installation des Apache ist also nicht erforderlich, stört aber auch nicht, da ntop einen eigenen Port TCP 3000 benutzt !
Ein Aufruf von http://<ip_adresse_raspberry>:3000 zeigt dann auch schon erste Ergebnisse:
Damit die RRD Tools in ntop sauber laufen ist noch etwas Handarbeit erforderlich und unbedingt folgende Anpassung zu machen:
chmod 755 /var/lib/ntop
mkdir /var/lib/ntop/rrd
chown -R nobody:nogroup /var/lib/ntop/rrd
Damit funktionieren dann auch die Statistik Übersichten und grafischen Top Talker Auswertungen:
Der Raspberry lässt sich ebenso als Benchmark Testserver für die Messung von Netzwerkdurchsatz und Performance im LAN, WAN und WLAN verwenden.
Natürlich ist das nur machbar mit Ethernet Geschwindigkeiten bis 100 Mbit, da der Raspberry nur einen Fast Ethernet Adapter onboard hat. Gigabit bleibt also außen vor, es sei denn man verwendet einen USB Gigabit Ethernet Adapter.
Auch dieser Adapter Workaround ist im Gigabit Umfeld aber nur bedingt nutzbar, da die USB 2.0 Schnittstelle des RasPi nicht mehr als 480 Mbit/s = 60 MByte/s hergibt. Technisch funktioniert es aber bis zu dieser Geschwindigkeitsgrenze.
Bei WLAN Durchsatztests wird es durch den verfügbaren Standard .11g, .11n, .11a usw. des USB WLAN Adapters und der aktuellen Feldstärke Situation bestimmt.
Viele kleine Netze und Heimnetze, insbesondere WLAN Netze, sind oft 100 Mbit/s Netze und lassen sich so sehr aussagekräftig überprüfen was die grundlegenden Übertragungsgeschwindigkeiten in der Praxis wirklich hergeben.
Insbesondere bei WLAN mit seinen dynamischen Geschwindigkeitsraten je nach Feldstärke Situation, sind diese Messungen immer sehr aufschlussreich !
NetIO und auch iPerf benutzt bewusst keine File Sharing Protokolle für die Messung, da diese mehr oder weniger die reine netzwerk Effizienz beeinflussen und damit das Messergebnis. Es misst rein auf UDP oder TCP Basis.
So ist auch eine Aussage über die Effektivität und Performance einzelner Filesharing und Übertragungsprotokolle im verwendeten Netz möglich, denn das ist die Differenz der mit NetIO gemessenen reinen Netzwerk Performance und dem Ergebnis mit einem File Sharing Protokoll.
Das NetIO Tool findet man zum Download auf der Webseite des Programmierers:
https://web.ars.de/netio/
Nach dem Entpacken findet man im Verzeichnis /bin die ausführbaren Programme für fast alle Betriebssysteme. Allerdings nicht direkt für den Raspberry, da der auf ARM CPU Basis arbeitet und das i386 Binary von Linux nicht funktioniert.
Das ist aber in Sekundenschnelle korrigiert, denn bequemerweise kommt der Quellcode im ZIP File gleich mit.
Man kopiert entweder mit "wget <Download URL>" gleich direkt oder mit WinSCP oder SCP das ZIP File auf den Raspberry in ein Verzeichnis z.B. "netio" was man vorher mit mkdir netio z.B. im Verzeichnis /home/pi erstellt hat.
Ein unzip netio132.zip entpackt es dort. Anschliessend übersetzt man den Quellcode auf dem Raspberry mit:
make linux
Ein anschliessendes ls -l zeigt das es nun eine ausführbare Programmdatei (x=executable) mit dem Namen netio im Verzeichnis gibt.
Mit ./netio kann man diese nun aufrufen und sieht die Kommandosyntax.
Wie man NetIO bedient für ein Testszenario ist unter anderem hier nachzulesen:
http://www.nwlab.net/art/netio/netio.html
Die Hilfe beim Aufruf von netio ohne Parameter ist aber auch für Laien selbsterklärend.
Kopiert man mit cp netio /usr/bin NetIO ins /usr/bin Verzeichnis, hat man es immer verfügbar egal in welchem Verzeichnis man sich befindet. (Mit rm -rf /netio kann man dann das angelegte Verzeichnis im Ordner /home/pi dann wieder löschen.
Auf einem Raspberry mit der IP 10.1.1.1 kann man nun z.B. NetIO in der Serverfunktion mit UDP mit ./netio -u -s starten.
Ein Test Client gibt dann in der Eingabeaufforderung netio 10.1.1.1 an und die Durchsatz Messung beginnt automatisch für unterschiedliche Paketgrößen.
Die Messergebnisse werden während der Messung aktuell auf Server und Client angezeigt !
Kommando Syntax ist ja bekanntlich nicht jedermanns Sache und Anfänger bevorzugen lieber eine grafische Oberfläche zur Bedienung. Das erfüllt das Tool iPerf3 in Kombination mit jPerf. Auch diese Installation ist wie immer im Handumdrehen auf dem RasPi erledigt:
iPerf befindet sich im Standard Software Repository und wird wie gewohnt mit
apt install iperf3 openjdk-8-jre
installiert. Ein "man iperf3" erklärt dann die komplette Syntax. Es gibt diverse Tutorials im Internet wie z.B. dieses hier.
Einfacher arbeitet man mit der grafischen Oberfläche jPerf die iPerf entsprechend steuert. Diese findet man unter https://code.google.com/archive/p/xjperf/downloads und muss zusätzlich zu iPerf installiert werden ! Auch das ist schnell gemacht....
Mit wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.goo ... kopiert man sie ins Verzeichnis z.B. /home/pi und entpackt das Archiv mit dem Kommando "unzip jperf-2.0.2.zip"
Wichtig: Nach dem Entpacken muss man die jperf Datei (Java) unbedingt noch ausführbar machen, was das Kommando erledigt.
In der grafischen Windows Oberfläche oder von remote mit VNC oder RDP Viewer, öffnet man ein Root Terminal und startet jetzt einfach ./jperf.sh oder gibt unter Start --> Run dann im Fenster /home/pi/jperf.sh ein und bedient dann iPerf bequem grafisch:
Mit dem RasPi lässt sich sehr gut und verlässlich die Internet Down- und Upload Speed eines Netzwerkes bestimmen. Dazu verwendet man das Tool speedtest-cli
https://github.com/sivel/speedtest-cli
Das Tool sucht automatisch nach einem Download Server in der Nähe um Provider Limitierungen zu minimieren und nutzt einen Protokoll unabhängigen Socket Speedtest.
Das Tool ist mit
Im Handumdrehen installiert. Mit chmod +x speedtest-cli macht man es ausführbar und startet es.
Mit einem grafischen Tool wie z.B. Munin oder auch hier für die FritzBox, kann man es auch permanent überwachen.
Ein Wort zur RasPi LAN Performance !
Hat man Internet Speeds >100Mbit ist der RasPi eine schlechte HW Wahl, denn durch die interne Anbindung des Ethernet LAN Interfaces an den internen USB Hub ist dessen Geschwindigkeit begrenzt. Es macht auch einen Unterschied ob man einen USB Gig Adapter benutzt oder das onboard LAN. Siehe hier:
https://notenoughtech.com/raspberry-pi/raspberry-pi-internet-speed/
Für die meisten der privaten DSL und Kabel TV Anschlüsse reicht es aber.
Die Installation des FreeRadius Servers zur Absicherung von LANs (802.1x) und vor allen Dingen WLANs beschreiben 3 detailierte Tutorials hier im Forum:
Los gehts...
Man muss nach der o.a. Paketinstallation (apt install freeradius) und dem o.a. Radius Tutorial hier lediglich die etwas andere Verzeichnisstruktur beachten in dem die Konfigurationsdateien beim Raspberry Pi liegen. Das ist schon alles.
Alle FreeRadius Konfig Dateien liegen hier im Verzeichnis /etc/freeradius und unterhalb davon und müssen gem. o.a. Tutorial angepasst werden.
Die Zertifikatsdateien zum Generieren der individuellen Zertifikate findet man hier /usr/share/doc/freeradius/examples/certs/ Die Generierung läuft hier auch wieder gemäß o.a. Tutorial !
Hier die wichtigsten Schritte:
Die Zertifikats Erstellung muss man nur durchführen wenn man den Radius Server per Zertifikat überprüfen will. Das ist optional!
Im Bereich [ CA_default ] kann man den Parameter default_days auf 1826 Tage (5 Jahren) Gültigkeit setzen.
Im Bereich [certificate_authority] dann die entspr. Settings:
[certificate_authority]
countryName = DE
stateOrProvinceName = Radius
localityName = Frankfurt
organizationName = Firma-Meier
emailAddress = admin@meier.de
commonName = "Mein Radiustest"
Datei mit "ctrl o" und "ctrl x" sichern.
Der Start des Radius Servers im Troubleshooting Modus erfolgt hier mit freeradius -X. Ansonsten lässt er sich über /etc/init.d/freeradius start | stop normal als Dienst starten und stoppen.
WICHTIG: Für die FreeRadius Abfrage über ein angekoppeltes Active Directory ist es zwingend notwendig alle Konfigurations- und Testschritte wie sie unten im Kapitel 3 ("David u. Goliath") beschrieben sind umzusetzen !
Für die FreeRadius Konfiguration mit Microsoft AD ist dies erforderlich und wird hier vorausgesetzt.
Sofern also nicht alles so funktioniert wie im Kapitel 3 beschrieben, muss man hier nicht weitermachen !
Funktioniert alles so wie unten beschrieben sind folgende Dateien zu editieren und anzupassen:
/etc/freeradius/eap.conf
DEFAULT Auth-Type = ntlm_auth
testweise ganz an den Anfang gesetzt.
Später, sollte man Mischbetrieb mit statischen User fahren, kann man diese wieder auskommentieren.
Möchte man statische User in der "users" Datei belassen die NICHT mit mschap authentisiert werden sollen, konfiguriert man diese VOR dem "Default Auth" Eintrag wie z.B.
testuser Cleartext-Password := "testuser", MS-CHAP-Use-NTLM-Auth := No
Das Statement "MS-CHAP-Use-NTLM-Auth := No" schaltet hier die Authentisierung gegen das AD aus so das der User lokal authentisiert wird.
Will man ausschliesslich nur gegen das Windows AD authentisieren, muss man noch die Datei mschap im Verzeichnis /etc/freeradius/modules mit dem nano editieren.
Dort muss im Kommentar Bereich # If ntlm_auth is configured below... die Konfig Zeile:
ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key......
entkommentiert werden (# davor entfernen) und der korrekte Pfad zur ntlm_auth Datei (hier /usr/bin) eingetragen werden.
Alle mschap Authentisierungen werden dann vom FreeRadius gegen das Windows Active Directory authentisiert !
Fast geschafft....
Zu allerletzt sind die beiden Dateien defaults und inner-tunnel unter /etc/freeradius/sites-enabled/ anzupassen.
Hier ist die Zeile ntlm_auth im Bereich "authenticate" hinzuzufügen:
Fertig !
Jetzt startet man FreeRadius mit /etc/init.d/freeradius restart neu oder noch besser erstmal zum Testen mit "freeradius -X" im Debugging Mode.
Bevor man nun gleich die Authentisierung mit Radius gegen das AD testet, ist es sehr wichtig das NTLM_AUTH Modul separat VORHER zu testen, denn das übergibt die Radius Daten an den AD Server !
Funktioniert das fehlerfrei wird auch der Rest dann fehlerfrei funktionieren !
NT Status OK zeigt das alles klappt. Wenn nicht, läuft noch etwas schief...
Kommt die obige "Success" Meldung steht dem Radius Test mit dem ntradping_Tool nichts mehr im Wege.
Ebenso muss ein Test mit dem bordeigenen Test Tool radtest erfolgreich verlaufen:
(Wobei hier der "user" mit Password "test123" ein gültiger AD User ist und "radiustest" das FreeRadius Password in der clients.conf Datei ! )
Entsprechend meldet der Debug Output des FreeRadius ebenfalls die korrekte Funktion:
Einen Screenshot des erfolgreichen Tests mit AD Authentisierung zeigt das folgende Bild:
Läuft alles sauber durch (NT_STATUS=OK, Access Accept) ist der FreeRadius Server mit Microsoft AD Kopplung jetzt einsatzklar fürs LAN oder WLAN !
Er stellt damit eine einfache zentralisierte Benutzer Verwaltung im Netzwerk zur Verfügung das LAN oder WLAN entsprechend sicher macht und sehr einfach managebar für eine größere Anzahl von Usern.
Weitere Details dazu bietet das hiesige Tutorial zur Integration des FreeRadius in eine Microsoft AD Umgebung:
Ubuntu 14.04 - 16.04 - 18.04 - 20.04 LTS Server - Freeradius mit AD-Anbindung
(Ab Debian Bullseye ist das u.a. tacacs+ Package nicht mehr im Repository enthalten. Vermutlich wegen der alten tcp_wrapper. Man muss also selber compilieren https://shrubbery.net/tac_plus/ oder einen alternativen Tacacs Server nutzen. https://www.pro-bono-publico.de/projects/tac_plus-ng.html)
TACACS+ ist der etablierte Standard nahezu aller Hersteller aktiver Netzwerk Komponenten um den Zugriff auf die Konfiguration von Routern, Switches usw. im Netzwerk nutzerabhängig zu steuern. Insbesondere um den Kommandoumfang für zusätzliche Administratoren oder Abteilungsadministratoren zu regeln und auch Änderungen zu dokumentieren.
Den Quellcode des TACACS+ Servers findet man auf dem FTP Server von Cisco ( ftp://ftpeng.cisco.com/pub/tacacs/ ) Ein Übersetzen ist allerdings nicht erforderlich, denn alle gängigen Linux Distros bringen ihn mit wie natürlich auch unsere auf dem Raspberry Pi Server.
Damit ist auch diese Installation im Handumdrehen gemacht.
Mit dem bekannten apt install tacacs+ installiert man alles Nötige auf dem Server.
Unter /etc/tacacs+ findet man eine gut dokumentierte Konfig Datei. Weitere Details zur TACACS+ Konfiguration findet man z.B. bei tacacs.org oder www.shrubbery.net/tac_plus/.
Ein einfaches TACACS+ Konfigurationsbeispiel für die Konfig Datei unter /etc/tacacs+/ ist z.B.:
Oder man passt die dortige dokumentierte Beispieldatei mit dem nano Editor auf seine Belange an. Über Privilege Levels und CMD Kommandos kann man die CLI Kommandos auf den Netz Komponenten dann per User entsprechend einschränken.
Eine TACACS+ Konfiguration auf einem Netzwerk Switch oder Router sieht z.B. so aus:
!
aaa new-model
aaa authentication login default group tacacs+ local
aaa authentication enable default group tacacs+
aaa authorization exec default group tacacs+ local
!
tacacs-server host 192.168.255.254 key 123-my_tacacs_key
!
line con 0
login authentication default
!
line vty 0 15
login authentication default
!
Die TACACS man Pages auf dem Server und die oben zitierten Webseiten beschreiben weitere Optionen.
Damit ist eine sog. reverse Telnet Session möglich die auf dem seriellen Adapter landet.
So kann man mit einem oder mehreren Standard USB-Seriell Adaptern einen seriellen Terminal Server im Miniformat betreiben.
Für Administratoren die öfter auf serielle Konsolen zur Konfiguration von Netzwerkgeräten wie Switches und Router oder auch Server, KVM etc. zugreifen müssen, ergibt sich so eine sehr bequeme Möglichkeit außerhalb des lärmenden RZ zu arbeiten.
Mit dem oben vorgestellten WLAN Accesspoint hostapd ist das dann sogar auch bequem drahtlos über WLAN möglich !
Zusätzlich zur Installation des ser2net Paketes, wie oben beschrieben, erfordert dieser Dienst noch einen Telnet Server den man jetzt mit
apt install telnet
installiert.
Nun die Konfiguration:
Man steckt ein Standard USB-zu-Seriell Kabel (Adapter) wie z.B. DIESES hier in einen der Pi USB Ports.
Das bekannte lsusb zeigt wieder, wie schon bei der WLAN Stick Installation, an ob der Adapter richtig erkannt wird:
root@raspberry:/etc/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Viele am Markt befindlichen USB-Seriell Adapter basieren auf dem Prolific PL2303 oder Silicon Labs Chipset, so das man davon ausgehen kann das alle Adapter dieser Art sicher automatisch erkannt werden.
Damit man nun eine serielle Switch oder Router Konsole am Cisco oder Komponenten anderer Hersteller erreichen kann, muss wieder die Konfig Datei dazu angepasst werden.
Wie immer findet man sie im Verzeichnis /etc unter /etc/ser2net.conf und passt dort wieder mit dem nano Editor eine Zeile an:
2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2001:telnet:600:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner
2002:telnet:600:/dev/ttyUSB1:9600 8DATABITS NONE 1STOPBIT banner <-- (Optional bei zweitem Adapter)
3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
Die vierstellige Ziffer vor dem Parameter gibt an mit welchem Telnet TCP Port (Default ist 23) man die serielle Konsole (9600 Baud N,8,1) am Switch oder Router erreichen kann.
Nun muss der ser2net Prozess noch neu gestartet werden um die obigen Änderungen zu aktivieren. Das geht mit systemctl restart ser2net oder einem Reboot.
Öffnet man jetzt z.B. PuTTY oder TeraTerm auf dem PC , startet eine remote Telnet Session von irgendeinem Rechner auf den Pi Server mit dem Telnet Port TCP 2001 erreicht man direkt die serielle Konsole des am Pi und dem USB-Seriell Kabel angeschlossenen seriellen Endgerätes (Switch/Router Konsole).
Noch eleganter bekommt man es mit einem zusätzlichen User hin den man z.B. mit adduser konsole einrichtet.
Dann erstellt man eine kleine Batch Datei mit dem nano Editor:
und editiert die /etc/passwd Datei für den User "konsole":
konsole:x:1001:1001:Seriell,,,:/home/konsole:/usr/local/bin/serial_login.sh
Das hat zur Folge das nach dem Telnet oder SSH Login des Benutzers "konsole" der Zugang zur seriellen Schnittstelle direkt gestartet wird.
So ist im Notfall ohne IP oder Zugriff via Netzwerk oder fürs direkte Troubleshooting ein Router oder Switch über seine Konsole sicher erreichbar.
Alternativ lässt sich auch ein kleines Terminal wie dem bekannten MiniCom auf dem Pi Installieren um direkt Zugang zu einer seriellen Konsole zu bekommen. Das geht mit apt install minicom.
Beim allerersten Mal ruft man Minicom mit dem Parameter -s auf (minicom -s) um den Terminalport von /dev/modem auf /dev/ttyUSB0 zu ändern.
Netzwerk Admins oder auch IT Auszubildende und Schüler, die die Funktionsweise von dynamischen Routing Protokollen im LAN erlernen oder auch in einem Labor Testnetzwerk vorab ausprobieren möchten, benötigen einen Router der auch diese dynamischen Protokolle wie OSPF, BGP, RIPv2, PIM usw. "sprechen" kann.
Idealerweise mit einem Cisco Kommando Set um kompatibel zu "großen" Routern zu sein.
Auch das ist schnell und unkompliziert mit dem Raspberry Pi Server zu lösen der mit entsprechender Software zu einem Router mutiert. Natürlich lässt sich der RasPi auch als "richtiger" Router einsetzen aber man sollte bedenken das die Ethernet Interfaces im RasPi allesamt am USB Bus hängen und dessen Durchsatz recht eingeschränkt ist.
Für das Heimnetz mag das OK sein aber nicht im kommerziellen Umfeld. Hier sind Router wie sie z.B. den hiesigen Router_Tutorials beschrieben sind (Mikrotik etc.) besser geeignet.
Für dieses Beispiel hier erweitern wir den RasPi Server um ein (oder 2) zusätzliches WLAN oder Ethernet Interfaces z.B. mit einem preiswerten USB_Ethernet_Adapter, so das wir nun 3 Netzwerk Interfaces im Server haben: eth0=eingebautes Ethernet, eth1=USB Ethernet, wlan0=WLAN Interface. Diese aktivieren wir dann mit dem OSPF Routing Protokoll um diese Routen dynamisch anderen Routern im Netz per OSPF bekannt zu machen.
Zusätzlich kann, wer will, auch RIP, RIPv2, BGP oder weitere Routing Protokolle parallel aktivieren.
Hier die ToDos:
Wie immer Hardware Check der USB Geräte mit lsusb:
root@raspberry:> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter --> Hier der WLAN Stick
Bus 001 Device 005: ID 0b95:7720 ASIX Electronics Corp. AX88772 --> Hier der USB Ethernet Adapter
Unsere /etc/network/interfaces Datei sieht dann wieder so aus wie oben schon beschrieben (ggf. an eigene IP Adressen anpassen):
Ein Ping auf an diesen Ports angeschlossene IP Endgeräte sollte jetzt problemlos funktionieren !
Beispiel IP Netze hier: eth0=192.168.0.0 /24, eth1=10.1.0.0 /24, wlan0=DHCP (dynamisch vom WLAN Router)
Will man mit dem Server auch real routen muss man hier auch wieder das Routing aktivieren wie schon in diesem_Tutorial beschrieben !
Hierzu editiert man die Datei /etc/sysctl.conf und entkommentiert die Zeile net.ipv4.ip_forward=1 indem man wieder das "#" davor entfernt.
Jetzt installiert man die dynamische Router Software mit dem Kommando
apt install quagga
Ist das erfolgreich durchgelaufen, gilt es vorab zwei Dateien im Verzeichnis /etc/quagga mit dem altbekannten nano Editor einzurichten.
Es müssen 2 Dateien, nämlich zebra.conf und ospfd.conf, angelegt werden, die folgenden einfachen Inhalt haben: password test123
Wichtig: Mit den Kommandos:
werden diese dann dem User quagga zugewiesen und die korrekten Zugriffsrechte eingestellt.
Diese beiden Dateien sind zwingend wichtig, damit der Router aktiviert werden kann !!
Nun gilt es noch dem Router zu sagen das er OSPF sprechen soll !
Mit dem nano editiert man dazu die Datei /etc/quagga/daemons und setzt ein yes hinter die beiden Einträge zebra=yes und ospfd=yes. (Wer will kann hier weitere Protokolle aktivieren muss aber darauf achten das dann auch die zu den Route Protokollen entsprechenden Dateien wie z.B ripd.conf vorhanden sind !!)
Fertig... ! Nun muss man den Quagga Prozess noch neu starten um die neuen Einstellungen zu aktivieren. Das geht wie immer im Verzeichnis /etc/init.d/ mit dem Kommando ./quagga restart
Tip: Da dieser Router ggf. nur temporär genutzt wird, kann man mit dem oben beschrieben Tool "rcconf" den Quagga Prozess beim Booten des RasPi ausgeschaltet lassen. So kann man wenn man möchte bei Bedarf diesen Router "per Hand" starten mit /etc/init.d/quagga start.
Wenn nun alles fehlerfrei rennt kann man daran gehen den OSPF Router zu konfigurieren. Das geht mit der bekannten Cisco_CLI_Syntax.
Auf die Router Konfigurationsoberfläche gelangt man vom RasPi mit dem Kommando nc localhost 2604. (Wir machen als Beispiel OSPF)
Die anderen Protokollports lauten entsprechend:
Auch per Telnet kommt man so bequem von extern auf den "RasPi Router": telnet <ip_adresse_pi> 2604 oder gibt in der Telnet App (PuTTY, TeraTerm, zTerm (Mac), etc.) die IP und den Zielport zum Protokoll an. (Beispiel 2604 für OSPF)
Bei der jetzigen Passwort Abfrage kommen nun die Passwörter aus den obigen Konfig Dateien ins Spiel !
Mit Eingabe dieser und dem Kommando "enable" ist man wie bei einem Cisco Router auf der Command Line Oberfläche was man am "#" im Eingabe Prompt erkennt.
Das CLI Kommando "show run" zeigt jetzt die aktuelle Konfiguration unseres Routers, die natürlich noch leer ist. Wir passen sie jetzt nach Eingabe von conf t (Konfig Modus) mit den einzelnen Kommandos unten auf unsere Beispiel IP Netze an, so das sie am Ende so aussieht:
raspberry# sh run
Current configuration:
!
service advanced-vty
!
password test123
!
interface eth0
!
interface eth1
!
interface lo
!
interface wlan0
!
router ospf
redistribute connected
passive-interface lo
passive-interface wlan0
network 192.168.0.0/24 area 0.0.0.0
network 10.1.1.0/24 area 0.0.0.0
!
line vty
end
Mit dem Kommando "exit" beendet man den Konfigurations Modus.
Cisco CLI Kundige fühlen sich hier sofort zuhause Ein "?" zur Kommando Übersicht funktioniert analog wie bei Cisco.
Ein "wr" am Schluss der Konfig ist zwingend wichtig, denn das sichert unsere OSPF Konfiguration in der Konfig Datei das sie nach einem Reboot nicht verloren geht !
Da das WLAN ein dynamisches IP Netz ist (DHCP), ist hier mit dem "passive" Kommando OSPF ausgeschaltet, ebenso auf dem localhost 127er Loopback Interface wo wir kein aktives OSPF machen wollen.
Ein show ip ospf neigbor zeigt uns nun unsere OSPF Nachbarn an (hier ein Mikrotik mit OSPF) die im Netz gesehen werden:
Mit dem Kommando exit verlässt man die Quagga Router Konfig wieder.
Hier kann man sich jetzt frei auch mit anderen dynamischen Routing Protokollen auslassen, experimentieren und testen.
Ein apt install tcpdump installiert z.B. einen Kommandozeilen Sniffer wo man sich z.B. mit dem Kommando tcpdump -i eth1 sich die OSPF Pakete am eth1 Interface auch mal live ansehen kann. (ctrl-c stoppt ihn)
Die Konfig Dateien oben sind immer auf die IP Adress Belange oder Routing Protokolle wie RIP, RIPv2 usw. entsprechend individuell anzupassen.
Es hat ein bisschen was von David und Goliath was es aber umso interessanter macht, nämlich die Kopplung des Raspberry Pi Servers an einen Domain Controller Windows 2008 R2 Server (oder neuere Version) mit Active Directory.
Wer FreeRadius auf dem Raspberry laufen lässt kann so eine Benutzer Authentisierung über das AD Userverzeichnis auf dem Windows Server machen….und natürlich noch andere spannende Sachen.
Grundlage ist spacyfreaks hiesiges Tutorial:
Debian Linux in eine Active Directory Domäne integrieren
und ein weiteres HowTo
Beispiel IP Adresse des Windows Servers 192.168.1.100 und Domaine MYDOMAIN.INTERN (Hinweis: .LOCAL Domains sollte man besser vermeiden, weil Bonjour (mDNS) und Apple Macs damit einige Probleme bekommen !)
Welche Pakete brauchen wir auf dem Raspberry:
apt install krb5-user samba samba-common-bin winbind
...installiert alles Nötige dafür !
Wer die obige 802.1x Port- und WLAN Authentisierung will installiert den FreeRadius mit apt install freeradius gleich mit dazu
Nun müssen ein paar Dateien per Hand angepasst werden. Der bekannte nano Editor ist da wieder unser Freund... !
Da geht man exakt so vor, wie es am Ende in den letzten Threads des o.a. Tutorials beschrieben ist.
Hier sind nochmals die wichtigsten Punkte
Fertig… ! Damit sind alle Konfigurationen erledigt....
Los geht's mit der Aufnahme des Raspberrys in die Microsoft Domäne:
net ads join -U Administrator ---> (Wobei "Administrator" hier der Administrator Account auf dem Windows Server ist !)
Hat man oben alles richtig gemacht erscheint diese Meldung:
Der Raspberry Server ist nun vollwertiges Mitglied der Windows Domäne !
Nun kann man mit /etc/init.d/samba start und /etc/init.d/winbind start die Dienste Samba und Winbind wieder starten.
Ob alles sauber arbeitet kann man mit den folgenden Kommandos auf dem RasPi testen:
wbinfo -u --> zeigt die AD Userliste
wbinfo -g --> zeigt die Liste aller AD Gruppen
wbinfo -a username%password --> authentisiert einen AD Benutzer
Das Windows Original PE (Preinstallation Environment) dient zum Erstellen von Rettungsdatenträgern und zum Reparieren bestehender Installationen mit recht einfachen und limitierten Funktion rein auf Windows bezogen.
Auf Basis dieses PE ist aber im Forum theoven eine Alternative entstanden die erheblich mächtiger ist und erweiterte Tools wie das Lesen von Bitlocker Laufwerken und vieles mehr zur Verfügung stellt.
Das Computermagazin ct' hat dieses Tool als Basis genommen ein dazu noch umfangreicheres Notfall Windows 8.1 mit zusätzlichen Tools zu erstellen unter anderem der kompletten Sysinternals Suite.
Der komplette Artikel ist auf der ct' Projektseite zum Notfall Windows beschieben und kann dort nachgelesen werden. Details würden die Anleitung hier sprengen.
Was braucht man dazu...?:
Wer erst einmal einen Eindruck bekommen möchte läd sich das Win8.1SE Tool von der Win8.1SE_Projektseite herunter und entpackt es in einem Verzeichnis seines Rechners.
Als weiteres wird eine Win 8.1 Installations DVD benötigt. Wer keine DVD besitzt läd sich als Ersatz eine Win8.1_Demoversion herunter.
Der hier angegebene Link lädt eine 32Bit Version die universeller ist, da sie auf älteren Systemen rennt und gleichzeitig auch auf moderner 64Bit Hardware. Zusätzlich ist das Image erheblich kleiner und bootet schneller.
Hier muss man sich aber final entscheiden ob 64 oder 32 Bit..
Die Win8.1 Installations DVD bzw. das ISO Image kopiert man ebenfalls in ein eigenes, leeres Verzeichnis z.B. c:\win81inst, Das ISO Image muss aber noch zwingend extrahiert werden, was wieder das bekannte Tool 7z erledigt.
Dazu kopiert man die 7z.exe und die 7z.dll Datei aus dem 7z Programmordner in das ISO Verzeichnis der Win 8.1 Demo Version und entpackt es dort mit dem folgenden Kommando: 7z x c:\win81inst\win81.iso
Ist das geschehen startet man im Win81SE Verzeichnis den Win81SE82_Builder.exe, klickt oben auf Source und gibt im entsprechenden Eingabefeld das Verzeichnis c:\win81inst der kopierten Install DVD oder der zuvor entpackten Win8.1 ISO Datei an. Fertig !
Jetzt nur noch das blaue Play Dreieck oben klicken und etwas Geduld mitbringen, denn das Tool braucht zum Erzeugen des fertigen ISO Images etwas Zeit.
Wer VirtualBox auf dem Rechner hat kann nach Abschluss direkt prüfen lassen ob das Win8.1SE ISO Image bootet und es ggf. auf bootbaren USB Stick oder CD kopieren.
In der Zwischenzeit den Raspberry Pi für PXE Boot vorbereiten....:
Mit dem bekannten...
apt install isc-dhcp-server
und
apt install tftpd-hpa (man achte hier auf das "d" um nicht den Client zu installieren!)
installiert man auf dem Raspberry Server die nötigen Komponenten für PXE Boot.
Der TFTP Server erzeugt automatisch das TFTP Download Verzeichnis /srv/tftp wo nachher alle Dateien hinkopiert werden.
Damit es beim Start des TFTP Servers auf dem RasPi nicht zu einer (IPv6) Fehlermeldung kommt ist noch kurz dessen Konfig Datei mit dem Editor anzupassen unter /etc/defaults/tftpd-hpa indem dort die TFTP_OPTIONS Zeile angepasst wird:
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip
und
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
schnell geladen ist. (Wichtig ist unbedingt die Version 5.0.1 der Syslinux Tools zu verwenden !)
Beide ZIP Archive entpackt man dort mit unzip <Dateiname.zip>
Jetzt sind einige Verzeichnisse einzurichten und Dateien in das /srv/tftp Verzeichnis zu kopieren:
(Aktuell ist wimboot 2.4.1 Verzeichnis Name mag sich daher ändern)
Desweiteren benötigt man noch ein paar Windows Dateien aus dem oben mit 7z entpackten c:/win81inst Verzeichnis
Wer mit dem Win8.1SE Tool und der ct’ Notfall CD die entsprechenden ISOs erzeugt hat kopiert aus diesen beiden Tool Verzeichnissen jeweils die boot.wim Datei in die entsprechenden Verzeichnisse auf dem RasPi.
Diese Datei findet sich immer im Verzeichnis: \ISO\Targetimage\WIM\sources.
Die boot.wim von Win8.1SE kopiert man unter /srv/tftp/win81se
Die boot.wim des ct’ Notfall Windows 2014 kopiert man unter /srv/tftp/ctnotfall
Als vorletzten Schritt erzeugt man im Verzeichnis /srv/tftp/pxelinux.cfg mit dem nano Editor noch eine Datei default mit folgendem Inhalt:
Mit chmod -R 744 /srv/tftp/* macht man nun zum Schluss alle Dateien im TFTP Verzeichnis für alle lesbar und damit für Clients bootbar.
Das ISO Image booten statt wim.boot:
Mit etwas weniger Aufwand als das obige wimboot kann man aber auch das komplette Win8.1 ISO Image und damit auch jedes ISO Image booten.
Im Win8.1.SE ISO Verzeichnis des Tools wo nachher das fertige ISO Image steht, ist im Verzeichnis unter \ISO\Targetimage\WIM die Datei menu.lst zu finden die Infos für den Bootloader enthält.
Diese Datei kopiert man z.B. mit WinSCP auf den Raspberry und benennt sie in default um.
Im TFTP Root Verzeichnis /srv/tftp/ erzeigt man jetzt ein Verzeichnis mit dem Namen menu.lst (mkdir /srv/tftp/menu.lst) und kopiert diese default Datei in dieses Verzeichnis.
Mit dem nano Editor ediert man sie und ändert den Eintrag title Win8.1SE folgendermaßen:
Dann ergänzt man in der /srv/tftp/pxelinux.cfg/default Menü Datei einen Eintrag:
LABEL Win8.1SE ISO
KERNEL memdisk keeppxe
APPEND initrd=Win8.1SE_x86.ISO iso raw
und schon bootet der PXE Server auch das ISO Image.
Dem DHCP Server beibringen was er den PXE Clients mitgeben muss...:
Weiter untem im Tutorial findet sich die universelle Einrichtung des ISC DHCP Servers auf dem RasPi. Um dem DHCP den PXE Boothost und File mitzugeben ist die Konfig Datei zu erweitern (PXE Bootserver hier 10.2.0.100):
Wer möchte kann das auch dediziert für ganz bestimmte Clients auf Basis der Mac Adresse machen:
So sind auch andere OS problemlos zu booten wie FreeDOS oder Damn Small Linux usw.
https://www.winhistory-forum.net/showthread.php?tid=12466
Um den PXE Boot beim Starten des Rechners zu aktivieren gibt es mehrere Methoden die Hersteller abhängig sind.
Entweder geht man ins BIOS um diese Funktion zu aktivieren.
Bei den meisten Rechnern reicht es aber mit ESC, F11 oder F12 in das BIOS Boot Auswahlmenü zu gehen und hier den Netzwerk Boot im Bootmenü zu wählen.
Eine weitere sinnvolle Verwendung des PXE Bootservers bietet sich für Besitzer der ct' Desinfect Viren Boot DVD. Diese läßt sich bequem zum Viren Scannen und Entfernen via Netzwerk auf beliebigen Rechnern booten.
Die Installation ist im wesentlichen identisch zur oben beschriebenen, bietet aber auch eine sehr einfache Installations Option mit Dnsmasq.
Alle Schritte die aktuelle ct' Desinfect via Netz zu booten findet man hier:
http://www.heise.de/security/artikel/Desinfec-t-vom-Linux-Server-booten ...
Siehe HIER.
Wenn der Server größere Datenmengen speichern muss wie z.B. oben bei der Anwendung als Syslog Server und für die Hotspot Überwachung oder das Sammeln von Performancedaten mit MRTG ist es oft sinnvoll die Daten nicht auf der begrenzten SD Flashkarte zu sichern sondern auf einer USB Festplatte oder noch eleganter per iSCSI auf einem NAS z.B. von QNAP, Synology oder anderer Hersteller im Netzwerk.
Ersteres ist recht einfach und bedarf keiner Erklärung hier da USB Platten automatisch erkannt werden. Letzters ist etwas spannender und beschert dem Raspberry letztlich Zugriff auf GB oder TB Laufwerke ohne eigene Resourcen zu belasten.
Es gibt einen Wermutstropfen: Auch wenn man mit apt install open-iscsi den iSCSI Initiator installiert bringt man ihn nicht zum Laufen. Grund sind die fehlenden Kernelmodule im Standardkernel...
Es ist daher erforderlich sich einen neuen Kernel zu bauen der diese Module beinhaltet. Die genaue Beschreibung würde den Rahmen und das Thema des Tutorial sprengen und ist HIER umfassend und wasserdicht erklärt.
Ein so customizter Kernel wird also vorausgesetzt wie ebenso ein entsprechend eingerichtetes iSCSI Target auf einem der o.g. NAS Systeme. Letzteres ist mit dem dort vorhandenen Wizzard mit ein paar Mausklicks erledigt.
Der Rest ist dann schnell gemacht:
Das NAS ist dann im Verzeichnis /mnt zu finden.
Noch einfacher ist das Einhängen eines bestehenden Windows Shares auf einem NAS oder einem Windows Fileserver oder PC oder auch einen am Router (FritzBox etc) im Netz freigegebenem USB Stick oder Platte mit Windows SMB/CIFS.
Der Mount Befehl supportet auch direkt das Windows CIFS Filesystem.
Als Beispiel dient hier ein Windows Server oder NAS System mit einem Freigabeordner "Public" und der IP 192.168.1.100, dann lautet das entsprechende Kommando auf dem Raspberry Pi:
Statt der IP kann man auch den Hostnamen verwenden wenn man das NAS oder Server in die /etc/hosts Datei eingetragen hat oder einen lokalen DNS benutzt.
Auch andersherum (Zugriff von Windows PC auf ein vom RasPi freigegebenes Verzeichnis oder Platte) ist diese Freigabe mit dem Samba Server kinderleicht. Samba emuliert einen Windows Fileserver unter Unix/Linux.
So kann man sehr einfach Dateisysteme für beide Systeme über das Netzwerk zugänglich machen. (Samba HowTo ist in der Linksammlung am Ende des Tutorials)
In segmentierten LAN und VLAN Umgebungen macht es Sinn einen zentralen DHCP Server zu verwenden, der alle IP Netze in den LANs oder VLANs zentral bedient.
Um von einem zentralen DHCP Server IP Adressen in mehrere Segmente eines Netzes zu verteilen konfiguriert man auf dem Router oder Layer 3 Switch, der diese LANs oder VLANs routet, dann sog. "IP Helper Adressen“ (DHCP Forwarder) auf den Gateway IP Interfaces.
Diese IP Helper Adressen forwarden DHCP Client Broadcasts dieser IP Netz Segmente dann direkt an den zentralen DHCP Server.
Da sie auf einem UDP Broadcast basieren, würden diese DHCP Requests sonst nicht über Routergrenzen übertragen werden.
Oft machen diese DHCP Forwarder Adressen oder deren Einrichtung Probleme und mit einem DHCP Testserver auf dem RasPi, der mehrere DHCP Subnetz Bereiche supportet, kann man sowas sehr gut troubleshooten.
Natürlich spricht auch nichts dagegen den RasPi DHCP Server in kleinen Netzen als zentralen DHCP Server zu betreiben !
So ein DHCP Server ist schnell eingerichtet...:
apt install isc-dhcp-server
installiert wieder das notwendige Packet für den Server. Der DHCP Server hat hier im Beispiel selber die LAN IP Adresse 10.2.1.254 was man ggf. auf eigene IP Adressbealnge wieder anpassen muss.
Jetzt konfiguriert man die Datei /etc/dhcp/dhcpd.conf entsprechend. Hier mit im Beispiel mit 3 LAN / VLAN IP Bereichen 10.2.1.0, 10.3.1.0 und 10.4.1.0.
Ist die Konfig Datei angepasst muss der Server mit diesen Einstellungen einmal neu gestartet werden mit systemctl restart isc-dhcp-server
Eine entsprechende Layer 3 Switch Beipiel Konfig für die VLANs sähe so aus. (Cisco IOS). HP Switches und andere sind mehr oder weniger identisch.
!
interface Vlan1
description VLAN-1 (Hier ist der DHCP Server mit der 10.2.1.254 verbunden)
ip address 10.2.1.1 255.255.255.0
!
interface Vlan3
description VLAN-3 (Client Netzwerk)
ip address 10.3.1.1 255.255.255.0
ip-helper address 10.2.1.254
!
interface Vlan4
description VLAN-4 (Client Netzwerk)
ip address 10.4.1.1 255.255.255.0
ip-helper address 10.2.1.254
!
Ein DHCP Request von einem PC Client im VLAN 3 der an den zentralen DHCP Server im VLAN 1 geforwardet wird aus dem VLAN 3 sieht man in der Log Datei dann folgendermaßen: tail -f /var/log/messages
Ein spannendes Kapitel im Bereich DHCP ist die Absicherung des Netzwerks mit DHCP Snooping und Option 82 auf dem Netzwerk Switch.
Kurz beschrieben "sieht" der Switch dann in DHCP Pakete hinein, die er von Clients auf seinen Ports empfängt. Der Switch trägt dann eigene Informationen und die des Clients in diese Pakete ein bevor er sie an den DHCP Server weiterleitet.
Und dieses Weiterleiten macht er auch nur auf Ports die in der Switchkonfiguration als trusted, also vertrauenswürdig, definiert sind wo z.B. der DHCP Server angeschlossen ist oder die Uplinks zum DHCP Server.
Auf untrusted Ports blockiert er alle DHCP Server Replies so das "wilde" DHCP Server im Netz kein Chaos anrichten können.
Dieses Switchfeature bietet dem Netzwerk Admin eine sehr weitreichende Übersicht wer, wann an welchem Switchport welche IP Adresse bekommen hat.
So ist es möglich ein wasserdichtes DHCP Netz zu definieren OHNE das nicht authentisierte Server automatisch DHCP Adressen im Netzwerk zugeteilt bekommen und ohne z.B. die oben beschrieben 802.1x Port Authentisierung implementieren zu müssen.
Los gehts mal wieder mit dem Setup...
Zuallererst aktiviert man global das Logging von Option 82 markierten DHCP Paketen im DHCP Server mit
Das würde schon ausreichen um als Admin in einem Netzwerk mit DHCP Relay eine dedizierte Übersicht über zugeordnete IP Adressen zu Ports und Clients zu bekommen.
Ein Beispiel für eine dedizierte Adress Vergabe für Windows User oder Switchport spezifisch sieht dann z.B. so aus:
Wenn hier am LAN Switch am Port 0/2 ein Client (PC, Laptop etc.) mit der Switch Relay IP 192.168.1.254 einen DHCP Request ins Netzwerk sendet wird der Port im Server identifiziert und dieser Client bekommt nur an diesem Port immer fest statisch deine IP aus dem zugehörigen Pool "SWITCH-2-PORT2" zugewiesen.
ACHTUNG:
DHCP Snooping muss immer vorher auf dem LAN Switch gemäß Handbuch aktiviert werden !! Als Beipiel hier die Konfigurationsschritte für einen Cisco IOS Switch:
ip dhcp snooping => schaltet DHCP Snooping global auf dem Switch ein.
Möchte man DHCP Snooping nur dediziert für ein bestimmtes VLAN machen kann man das auch spezifisch nur für dieses VLAN mit:
ip dhcp snooping vlan <vlan id>
aktivieren.
Danach ist dann nur noch das trusted Interface an dem der DHCP Server hängt mit:
interface FastEthernet0/1
description Port zum DHCP Server
ip dhcp snooping trust
zuzuweisen.
Sind mehrere Switchhops notwendig zum DHCP Server muss auf allen diesen Switch Uplinks dorthin "ip dhcp snooping trust" konfiguriert sein !
Jessie bzw. Buster installiert einen systemd Service mit gpsd der mit dem eigentlich Daemon Port kollidiert. Ein netstat -lntp zeigt das. Nach der Installation von gpsd muss dieser bei Jessie deinstalliert werden mit
systemctl stop gpsd.socket
systemctl disable gpsd.socket
Die korrekte Uhrzeit ist in heutigen Netzwerken speziell Windows Umgebungen mit AD Domain Login und Kerberos Authentisierung essentiell wichtig.
Für einen kleinen preiswerten NTP Time Server im Netz, der unabhängig vom Internet ist, kann man recht einfach eine preiswerte Standard_GPS_Maus oder einen GPS_Stick mit USB oder auch Bluetooth an den RasPi anschliessen um die Atomuhren der GPS Satelliten zu nutzen mit ihrer sehr genauen Zeit.
Auch der direkte Anschluss eines DCF-77_USB Empfängers (Amtliche Zeit der PTB) ist problemlos möglich.
Bei Ausfall von Internet Zeitservern ist man so autark.
Bei einer USB GPS Maus ist nichts weiter erforderlich, bei Bluetooth installiert man schnell den Bluetooth Stack mit:
apt install bluetooth bluez-utils bluez-compat blueman
Damit wird dann jeder handelsübliche Bluetooth_USB_Microstick supportet. (Bevorzugt Class 1 oder 2 und V.4.0)
Steckt der Bluetooth Stick oder die USB GPS Maus hilft wieder ein lsusb :
root@raspberrypi:/home/pi# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
um zu checken das der Adapter richtig erkannt wurde. Direkte USB GPS Mäuse oder Sticks zeigen in der Regel den Prolific Chipsatz hier wie oben bei der seriellen Cisco Konsole mit dem USB-Seriell RS232 Adapter.
Ein hcitool scan sollte nun alle BT Geräte in Reichweite anzeigen.
root@raspberrypi:/home/pi# hcitool scan
Scanning ...
00:6A:4B:22:1D:EB BT GPS
Wer es jetzt ganz einfach haben will geht auf die Windows Oberfläche lokal oder per VNC und startet den "Bluetooth Manager" über das Bluetooth Symbol und mappt sein Bluetooth Gerät auf eine serielle Verbindung. Direkte USB Mäuse werden automatisch erkannt.
Über die Konsole sind es 2 Kommandos:
bluetoothctl
dort dann scan on und dann sollte man die GPS Maus dort sehen mit [NEW] Device 00:6A:4B:22:1D:EB BT-GPS
pair 00:6A:4B:22:1D:EB ## --> Verbindet die BT Maus, PIN:0000
Mitexitverlässt man das Programmbluetoothctldann wieder.
Mit
rfcomm bind /dev/rfcomm0 00:6A:4B:22:1D:EB --> weist man der Maus eine serielle Schnittstelle zu
Damit ist die Verbindung dann erfolgt !
Das Kommando cat /dev/rfcomm0 (Bluetooth) oder cat /dev/ttyUSB0 (direct USB) zeigt nun sofort eingehende NMEA Daten der GPS Maus oder des GPS Moduls an.
Sollten hier "Hieroglyphen" kommen läuft das Modul im Hersteller Binary Mode und muss mit gpsctl -n /dev/ttyUSB0 in den NMEA Mode geschaltet werden. ( gpsctl -b /dev/ttyUSB0 schaltet wieder zurück in Binary)
Ggf. muss auch die Baudrate bei seriellen USB GPS Mäusen mit stty -F /dev/ttyUSB0 4800 oder stty -F /dev/ttyUSB0 raw 4800 auf 4800 Baud geändert werden.
Ist das erfolgreich, kann man nun mit
apt install gpsd gpsd-clients
die GPS Software installieren...
und mit gpsd -n /dev/rfcomm0 (Bluetooth) bzw. bei USB GPS mit gpsd -n /dev/ttyUSB0 den GPS Empfang starten.
Das Kommando cgps -s zeigt dann die Live GPS Daten in Tabellenform an.
Nackte NMEA vom GPS sieht man mit gpscat /dev/ttyUSB0 (USB GPS)
Wer es grafisch haben möchte, der startet xgps auf der grafischen Windows Oberfläche. (Screenshot oben)
Der gpsd Daemon hat bequemerweise eine geräteinterne Netzwerk Schnittstelle für den NTP Server an Bord des Raspberry. Um diese zu aktivieren editiert man die Datei /etc/ntp.conf und fügt die folgenden Zeilen hinzu:
Der Raspberry nutzt in seiner aktuellen Rasbian Distro NTP Version 4.2.6p5. (Wird mit ntpd -v angezeigt)
Wer Versionen älter ntp-4.2.5p138 benutzt z.B. mit älteren Debian oder Ubuntu Versionen muss die folgenden Zeilen einsetzen:
Die letzte Konfig Zeile ist um den Zugriff auf den RasPi NTP Server im eigenen Netz für alle Endgeräte in diesem Netz freizugeben. (Beispiel IP Netz hier 192.168.1.0)
Läuft alles fehlerfrei sollte man mit dpkg-reconfigure gpsd den gpsd entsprechend auf seine Schnittstelle und Parameter anpassen, das man ihn nicht händisch starten muss, sondern er so fertig gleich beim Hochfahrent des RasPis korrekt startet.
Mit /etc/init.d/ntp restart wird nun noch der NTP Server neu gestartet um die o.a. Konfig zu aktivieren und ein ntpq -p zeigt dann den aktiven Server an.
Mit der "time1" Variable kann man den Offsett finetunen das er nahezu auf 0 kommt. Am besten startet man mit dem Wert 0.000 misst den Offset und setzt ihn dann mit den entsprechenden +- Werten. Hier ist etwas Probieren angesagt.
Die Zeichenerklärung bei "ntpq -p":
Ein tolles Addon des gpsd Servers ist eine fertige PHP Webseite die man lokal auf dem RasPi unter /usr/share/doc/gpsd-clients/examples/ findet.
Dort ist eine Datei mit dem Namen gpsd.php.gz die man mit
gunzip gpsd.php.gz
entpackt und dann mit
cp gpsd.php /var/www
ins Dokumentenverzeichnis des Webservers kopiert. Voraussetzung ist natürlich man hat auf dem Raspberry den Apache2 Webserver installiert und das PHP5 Package wie oben beschrieben.
Ruft man nun über einen Browser diese Webseite auf mit http://<ip_raspi>/gpsd.php bekommt man den aktuellen GPS Satellitenstatus als Webseite:
Setzt man in der .php Datei noch den Parameter autorefresh aktualisiert sich diese Webseite automatisch. Zusätzlich kann man auch über den Maps Parameter eine Google Map des Standort einblenden lassen.
Damit ist dann ein Internet unabhängiger, GPS basierter NTP Timeserver aktiv, der von jedem Endgerät mit jedem beliebigen Betriebssystem im Netzwerk angesprochen werden kann um sekundengenau und unabhängig die Uhrzeit abzugleichen.
In Windows Domänen Netzen ist dies z.B. für die Kerberos Authentisierung zwingende Voraussetzung.
Das Cisco Discovery Protokoll wird bei Cisco Komponenten global genutzt um Geräte (Router, Switches etc.) untereinander mit ihren Features bekannt zu machen. Es ist sehr hilfreich bei der Verkabelung von Netzen, denn ein show cdp neig auf dem Cisco CLI zeigt die Komponenten und die Ports mit denen sie untereinander verbunden sind. Viele andere Hersteller im LAN Bereich supporten ebenfalls Cisco CDP wie HP, Brocade, Extreme, Mikrotik usw.
Da sollte ein Rasberry Pi natürlich nicht fehlen ! Es gibt ein fertiges Package das man mit apt install cdpr installieren kann.
Wermutstropfen: Leider steht das "r" für Receive und dieses Tool kann nur empfangen aber nicht senden. Es schadet aber nicht es parallel zu installieren da es sehr genau ( -vv Schalter) den Inhalt der CDP Pakete anzeigt die im 60 Sekunden Intervall kommen.
Natürlich kann man CDP Pakete auch senden mit dem RasPi:
Zum CDP Senden nutzt man die CDP-Tools die allerdings nicht Teil der Rasbian Distribution sind, deshalb übersetzt man es wieder schnell selber. Oben haben wir ja schon gesehen wie das zu machen ist....
apt install libnet1-dev libpcap-dev installiert dafür wieder die notwendigen Komponenten.
Dann lädt man das Quell Paket mit wget http://gpl.internetconnection.net/files/cdp-tools.tar.gz herunter und entpackt es mit
tar xvzf cdp-tools.tar
Jetzt wechselt man mit "cd cdp-tools" in das damit erzeugte Verzeichnis und führt ein make aus.
Ist die Übersetzung fehlerfrei durchgelaufen sieht mal mit ls -l jetzt 3 Dateien cdp-send, cdp-listen und cdp-routmgr im Verzeichnis die man mit cp <datei_name> /usr/local/sbin/ ins lokale Programmverzeichnis kopiert.
Jetzt steht einem ersten CDP Test nichts mehr im Wege !
Ein einfacher Aufruf von cdp-send startet CDP und ein Check mit dem o.a. Cisco Kommando:
Zeigt den angeschlossenen Server und über welchen Port er gehört wurde. Normal sendet cdp-send den Hostnamen, den man aber mit dem Parameter -n individuell einstellen kann. Ebenso kann man die Netzwerk Schnittstelle mitgeben wer nicht auf allen Interfaces CDP Infos raussenden möchte. In öffentlichen Netzen sollte man das aus Sicherheitsgründen niemals machen !!
Ein cdp-send eth0 & schiebt den Aufruf in den Hintergrund und der RasPi sendet so zyklisch CDP Frames an seinem Port.
Wer es permanent haben will bringt dieses Kommando in ein Autostart Skript so das CDP auch ein Booten überlebt.
Mit Bonjour (auch als mDNS bekannt) kann man einige der o.a. Dienste automatisch im lokalen Netzwerk bekannt machen. Das erspart einem dann das oft mühsame Abtippen der einzelnen IP Adresse, bzw. sofern der Raspi eine DHCP Adresse hat muss man diese nicht unbedingt wissen.
Bonjour basiert auf Multicast und läuft über die Multicast-Adressen 224.0.0.251 (bei IPv4) und FF02::FB (bei IPv6), jeweils über den UDP- Port 5353. Es benutzt die im Standard IANA zugewiesene TLD .local (weshalb man .local niemals anderweitig verwenden sollte ! Siehe auch hier !)
Diese Multicast Adressen sind aber sogenannte Local Multicast Gruppen dessen TTL Feld im IP Paket fest auf 1 gesetzt ist und Multicast fähige Router es damit nicht routen können mir PIM dense oder PIM sparse.
Man braucht also einen Proxy um mDNS / Bonjour in Subnetze routen zu können.
Details zum AVAHI Server Setup (mDNS/Bonjour) auch HIER.
Wieder startet man den Installer nach dem bekannten apt update und apt dist-upgrade um die erforderlichen Komponenten zu installieren. Mit
apt install libnss-mdns avahi-utils
hat man dann alles an Bord.
Ein avahi-browse -at zeigt dann schon ggf. vorhandene Bonjour Dienste im Netzwerk an.
Möchte man nun selber vom RasPi Dienste anbieten fügt man lediglich diese Dientse im Verzeichnis /etc/avahi/services mit dem Texteditor nano hinzu. Die Dateien müssen als Datei Suffix immer .service haben und werden wie auch oben z.B. mit nano apache.service erzeugt.
Die folgenden Beispiele können mit Cut and Paste übernommen werden.(Ggf. auf die eigenen Belange editieren)
Diese Datei apache.service macht den Webserver des RasPi bekannt:
Danach kann man z.B. in Safari sofern Bonjour aktiv ist den Webserver direkt mit einem Mausklick erreichen.
Der Raspberry Pi kann so auch Webseiten von anderen Komponenten im Netzwerk bekannt machen.
Dazu trägt man einfach in die Datei hosts unter etc/avahi die IP Adresse ein und einen Namen. Z.B. um seinen WLAN Accesspoint zu managen dann 192.168.1.200 wlanap.local
Dann erzeugt man wieder unter /etc/avahi/services eine Datei wlanap.service mit folgendem Inhalt:
Damit kann man nun im Browser ganz einfach wlanap eingeben und landet auf der Konfig Webseite seines WLAN Accesspoints.
Die folgende Datei propagiert den SSH Server:
Wer eine SAMBA Freigabe (Windows File Sharing) auf dem Raspberry betreibt:
Spannend für Apple Mac Benutzer ist hier der Part
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
Dieser Eintrag bestimmt welches Symbol für das File Share im Finder gezeigt wird. Ersetzt man es z.B. mit "Macmini" wird ein Mac mini Symbol angezeigt. Nähere Infos dazu auch hier.
Und als letztes Beispiel die Bekanntgabe des VNC Servers im Netz:
Mit dem Bonjour Daemon ist es auch sehr einfach einen Bonjour Proxy im Netzwerk zu realiseren um Bonjour damit in andere IP Segmente zu routen.
Generell ist das nicht möglich mit Multicast Routern, da Bonjour eine sog. Link local Multicast Gruppe verwendet (224.0.0.251 bzw. IPv6 FF02::FB). Gem. Standard bleiben diese Gruppen immer in einer lokalen Layer 2 Broadcast Domain.
Die genaue Einrichtung eines solchen Proxys sprengt den Rahmen des Tutorial und ist detailiert in einem ct' Artikel beschrieben:
https://www.heise.de/ct/ausgabe/2013-15-Bonjour-Dienste-jenseits-von-Sub ...
bzw.
MikroTik - Bonjour routing
Eine interessante Anwendung ist auch das Streamen von DVB Fernsehen im lokalen Netzwerk mit einem einfachen und preiswerten USB DVB Stick.
Hierzu gibt es die bekannten fertigen Raspberry Distributionen mit XBMC die einen kompletten Plug and Play Media Server realisieren. Dies soll hier aber nicht Grundlage sein, sondern nur das reine, resourcenschonende DVB Streaming auf Basis der Tvheadend Lösung.
Der RasPi bleibt auch so noch offen für andere Anwendungen.
Wie immer ist die Installation mit wenigen Schritten erledigt und dem Fernsehgenuss mit Laptop, iPhone/iPad oder Android bequem von der Couch per WLAN steht nichts mehr im Wege.
Los gehst indem man einfach erstmal den USB DVB Stick in den RasPi steckt und mit lsusb prüft ob er erkannt wird:
root@raspi:/etc/apt# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 2040:9301 Hauppauge WinTV NOVA-T USB2 (warm)
Die meisten der aktuellen Sticks (Beispiel hier Haupauge Stick) werden automatisch vom Kernel erkannt. Mit dmesg sieht man dann sowas:
( 12.785455) usb 1-1.3: dvb_usb_v2: found a 'Dexatek DK DVB-T Dongle' in warm state
( 12.811514) usbcore: registered new interface driver dvb_usb_rtl28xxu
( 12.857245) usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
Oftmals benötigen sie auch noch eine Firmwaredatei. Ist das der Fall, prüft man das wieder mit dem Kommando dmesg und sucht nach Meldungen wie:
( 7.298837) dvb-usb: found a 'Hauppauge Nova-T Stick' in cold state, will try to load a firmware
( 8.035155) dvb-usb: did not find the firmware file. (dvb-usb-nova-t-usb2-02.fw) Please see linux/Documentation/dvb/ for more details on firmware-problems. (-2)
Die Firmware Dateien sind im Internet frei erhältlich z.B. bei http://linuxtv.org. Oder wie im Falle der bekannten Hauppauge Hardware hier auf den Seiten der Hersteller. Google ist wie immer erste Anlaufstelle. Die entsprechende xyz.fw Firmware Datei kopiert man einfach ins Verzeichnis /lib/firmware.
Nach einem Reboot zeigt der Aufruf von dmesg dann folgendes und der Stick wurde erfolgreich aktiviert:
( 6.640643) dvb-usb: found a 'Hauppauge WinTV-NOVA-T usb2' in cold state, will try to load a firmware
( 6.843069) dvb-usb: downloading firmware from file 'dvb-usb-nova-t-usb2-02.fw'
( 9.409970) dvb-usb: found a 'Hauppauge WinTV-NOVA-T usb2' in warm state.
( 9.439662) dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
( 9.488241) DVB: registering new adapter (Hauppauge WinTV-NOVA-T usb2)
Oder hier bei einem Kernel embedded Treiber ohne Firmware:
[ 5.792242] usb 1-1.3: dvb_usb_v2: found a 'Trekstor DVB-T Stick Terres 2.0' in warm state
[ 5.813616] usbcore: registered new interface driver dvb_usb_rtl28xxu
[ 5.885168] usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 5.911852] DVB: registering new adapter (Trekstor DVB-T Stick Terres 2.0)
[ 5.970630] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[ 6.033848] i2c i2c-0: e4000: Elonics E4000 successfully identified
[ 6.178963] usb 1-1.3: dvb_usb_v2: 'Trekstor DVB-T Stick Terres 2.0' successfully initialized and connected
Nun kann man mit der eigentlichen Installation der Tvheadend Software weitermachen.
Die Pakete befinden sich leider nicht im Standard Rasbian Repository und müssen von der Entwickler Seite geladen werden, was aber RasPi üblich schnell erledigt ist und den Vorteil hat das man immer up to date ist.
Man editiert mit dem nano die Datei /etc/apt/sources.list und fügt den Eintrag:
hinzu.
Da die Sources mit einem Key gesichert sind muss man diesen noch mit
importieren
Ein apt update integriert diese Source und ein apt install tvheadend installiert dann final die Software auf dem RasPi und startet sie korrekt.
Keine Angst Tvheadend benötigt viele Libraries, die lange Install Liste ist völlig normal.
Ist die Installation abgeschlossen startet man einen Webbrowser entweder lokal oder im Netz mit dem URL http://<ip_adresse_raspi:9981>
Hier meldet sich dann schon die interne Webseite zum Konfigurieren von Tvheadend:
Als allererstes legt man einen User an mit User: "test" Passwort: "test" und lässt ihn fürs Streamen und Videorekorder und Webinterface zu (Haken setzen) und speichert mit Klick auf "Save". Wer möchte kann den Zugriff bei der IP auch auf sein Heimnetz limitieren.
In den Reitern wählt man nun unter "Configuration -> DVB Inputs -> TV Adapters" seinen USB Stick aus und setzt den Haken bei "Enabled".
Links klickt man jetzt "Add DVB network by location" und wählt seinen Empfangsbereich aus. Bei Satelliten dann z.B. "Astra-19,2E" und bei DVB-T der lokale Empfangsbereich nach Bundesland.
Mit dem anschliessenden Klick auf "Save" fängt der Scanner an den TV Bereich abzusuchen nach empfangbaren Sendern. Erreicht der Zähler "Muxes awaiting initial scan" den Wert 0 ist der Scan fertig !
Wer Tvheadend bei der Arbeit zusehen möchte klickt die Doppelpfeile in der linken unteren Ecke.
WICHTIG: Daraufhin klickt man "Map DVB Services to Channels" und der Scanner sortiert alle empfangbaren Kanäle. Unter "Services" kann man nun das Ergebnis kontrollieren und feinjustieren.
Über den Browser sind nun die Fernsehprogramme gleich fertig zum Ansehen sofern man VLC installiert hat und das VLC Plugin für den Browser ebenfalls.
Im Apple App Store und für Android gibt es entspreche Apps um Tvheadend zu steuern und den Fernsehstream auch auf mobilen Geräten anzusehen.
Der Klassiker VLC ist für alle erdenklichen Betriebssystem Plattformen und Smartphones erhältlich und spielt die Streams im Netz problemlos ab indem man einfach mit http://<ip_adresse>:9981/playlist die Playlist URL in VLC eingibt.
Für iPad und iPhone empfiehlt sich natürlich auch die VLC App oder andere wie z.B. Blackbox.
Damit steht dem gemütlichen Fernsehvergnügen mit dem Tablet oder Laptop auf der Couch mit dem RasPi als Streaming Server nichts mehr im Wege !
Das Tvheadend natürlich auch gleichzeitig als digitaler Videorekorder funktioniert sei hier nur nebenbei erwähnt.
Natürlich kann der Raspberry Server auch nebenbei noch den Serverraum mit einer Webcam überwachen.
Das kann mit Einzelbildern oder auch als Video Stream passieren. Die folgenden Konfigurationsschritte zeigen die Einrichtung am Beispiel einer preiswerten Allerwelts Webcam wie der Logitech_C170
Nachdem die Logitech Kamera an den Raspi USB Port angeschlossen ist checkt man mit
root@raspberrypi:# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 009: ID 046d:082b Logitech, Inc. <---
Bus 001 Device 008: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
ob sie korrekt erkannt wurde.
Nun lädt man 2 Pakete nach:
apt install fswebcam motion
Ist das geschehen prüft man mit dem Kommando:
fswebcam -r 640x480 -p YUYV -v /home/pi/testbild.jpg
ob die Kamera fehlerfrei ein Bild aufnimmt.
Ggf. die Auflösung mit "800x600" oder "1280x720" variieren bei z.B. Logitech C270 u.a. um eine höhere Auflösung zu erzielen.
Das Bild kann man, sofern kein Monitor und Tastatur am Raspi ist, mit WinSCP aus dem /home/pi Verzeichnis kopieren und extern auf dem PC betrachten. scp pi@<ip_adresse_Pi>:testbild.jpg . erledigt das unter Linux / OS-X.
Noch einfacher gehts natürlich wer eine remote Windows Session mit RDP oder VNC auf den RasPi macht und es sich gleich "online" ansieht.
Das Tool "fswebcam" bietet noch weitreichendere Möglichkeiten. Ein Blick in die man Page kann also nicht schaden. Details sprengen aber den Rahmen dieses Tutorials.
Liefert die Kamera ein Bild geht es weiter mit dem Live Streaming. Dazu muss man die Konfiguration von "motion" etwas anpassen.
1.) Als erstes editiert man die Datei /etc/default/motion und passt den Parameter:
start_motion_daemon=yes
an.
2.) Im nächsten Schritt erzeugt man ein Datenverzeichnis für motion:
mkdir /srv/motion
chown motion.motion /srv/motion
3.) Im dritten Schritt passt man die Datei /etc/motion/motion.conf an die Logitech C170 an und die Optionen von motion:
daemon on
v4l2_palette 6
width 640
height 480
framerate 5
quality 75
output_normal off
ffmpeg_cap_new off
text_right %d-%m-%Y\n%T
target_dir /srv/motion
webcam_quality 75
webcam_maxrate 15
webcam_localhost off
Danach ist der Motion Prozess (Daemon) neu zu starten um die Settings zu aktivieren mit systemctl restart motion
Öffnet man nun den Webbrowser Firefox etc. und verbindet sich per http://<Raspi_IP>:8081 mit dem Raspberry sieht man den Live Stream der Kamera im Browser.
Der Parameter output_normal off kann auch auf "ON" gesetzt werden !
motion speichert dann bei Erkennung von Bewegung im Bild unter /srv/motion Bilder ab die die Bewegung im Kamerabereich sichern. Quasi eine "Einbrecherfunktion".
Achtung: Bei einem Raspberry mit SD Flash und der Aufnahme von Bäumen im Wind muss man hier entsprechend vorsichtig sein mit dem Ändern was den verfügbaren Speicherplatz angeht !
Wie man motion in eine Webseite einbindet (Cambozola, Apache Proxy etc.) und weitere Optionen findet man unten in der Linksammlung.
mSata als SSD verwenden statt SD Karte:
https://shop.heise.de/katalog/pi-desktop-gehause-kit
Gute Allgemeinübersicht und Projekte zum Raspberry Pi:
http://jankarres.de/uebersicht-aller-raspberry-pi-artikel/
http://raspberrycenter.de/handbuch
Fragen zum Tutorial und Installation:
Netzwerk Management Server mit Raspberry Pi - Fragen eines Anfängers
Integrierter Gehäuse Touchscreen für Raspberry Pi:
http://www.watterott.com/de/RPi-Display
Per Bluetooth Terminal auf den RasPi zugreifen:
Raspbian Autologin via serieller Konsole verhindern
Microsoft Active Directory Integration:
Debian Linux in eine Active Directory Domäne integrieren
Mit Samba bzw. Samba Shares:
https://raymii.org/s/tutorials/SAMBA_Share_with_Active_Directory_Login_o ...
Einfache Nagios Installation auf Raspberry Pi:
https://www.heise.de/ratgeber/Netzwerkueberwachung-fuer-Zuhause-Nagios-a ...
Windows Fileserver (Samba) mit Raspberry Pi:
http://jankarres.de/2013/11/raspberry-pi-samba-server-installieren/
Windows RDP Thinclient mit Raspberry Pi:
https://www.youtube.com/watch?v=rUhSR2xPmuw&index=1&list=PLHX2AZ ...
Anleitung als PDF dazu:
https://www.dropbox.com/s/4gnfnl09vwjwgva/Raspberry%20Pi%20as%20Thinclie ...
Mehrere RDP Sessions auf Windows 7:
https://blog.tim-bormann.de/windows-7-remotedesktopverbindung-home-premi ...
VPN Server für alle onboard VPN Clients in Windows, Apple, Linux und Smartphones:
IKEv2 VPN Server für Windows und Apple Clients mit Raspberry Pi
PXE Bootserver einrichten:
http://www.howtogeek.com/162070/it-geek-how-to-network-boot-pxe-the-win ...
Komfortable Ticketverwaltung für Hotspot Gastnetz Lösung:
Voucher für pfSense online verwalten und optional Voucher per SMS verschicken
FreeRadius Installation und AD Integration:
Sichere 802.1x WLAN-Benutzer Authentisierung über Radius
Radius Anmeldung über freeradius 3 filtert Attribute, soll aber nicht!
http://wiki.freeradius.org/guide/FreeRADIUS-Active-Directory-Integratio ...
http://deployingradius.com/documents/configuration/active_directory.htm ...
und auch
ClearOS 5.2 Freeradius 2 LDAP ntlm auth Active Directory
Debian Linux in eine Active Directory Domäne integrieren
VNC Server Installation:
http://elinux.org/RPi_VNC_Server
FritzBox Daten per Shellscript auslesen:
Powershell: FritzBox über TR-064 im Netzwerk konfigurieren und auslesen
Informationen aus dem Webinterface einer Fritz!Box via Shellscript auslesen
WhatsApp User mit dem Raspberry Pi verfolgen:
https://gitlab.maikel.pro/maikeldus/WhatsSpy-Public/wikis/getting-starte ...
Netzwerk Traffic live anzeigen mit NetFlow/IPFIX:
Netzwerkverkehr mit NetFlow bzw. IPFIX visualisieren
RaspberryPi als Standalone Netzwerk Sniffer
http://williamknowles.co.uk/?p=16
RasPi in gerouteten Multicast (IP PIM) VLAN Segmenten als mDNS (Bonjour) Proxy:
UPNP mit Mikrotik Routerboard hEX PoE und D-Link DGS-1210-24 Switch
Einrichtung von Nagios und erste Schritte:
Ubuntu 14.04. LTS Server - Nagios installieren und einrichten
Raspberry Pi als OpenVPN Server:
http://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installiere ...
Raspberry Pi als PPTP VPN Server:
http://blog.rlandolt.com/2013/01/raspberry-pi-als-vpn-server/
Eigener Cloud Server mit Owncloud auf dem Raspberry Pi:
http://blog.ulibauer.de/?p=239
Unix Netzwerk Tool iftop
Iftop ! Des Admins kleine Helferlein
(Muss a.d. RasPi mit "apt install iftop" installiert werden !)
Fertige RasPi Cloudserver Ionas, ArkOS mit grafischer Webadministration:
https://wiki.arkos.io/wiki/Getting_Started
https://www.ionas-server.com
Apple Time Machine Backup mit Raspberry Pi
http://www.mclustig.de/post/27475964315
http://hackintosh-forum.de/index.php?page=Thread&threadID=6432
iSCSI für Raspberry Pi aktivieren
http://elinux.org/RPi_iSCSI_Initiator
Raspberry Pi als WebCAM
http://derkev.in/262/raspberry-pi-fswebcam-ncftp-webcamserver/
http://www.laub-home.de/wiki/Raspberry_Pi_als_Webcam_Server
Wake on LAN (WoL) Server mit Raspberry Pi
http://www.jeremyblum.com/2013/07/14/rpi-wol-server/
VPN Server für L2TP VPN Clients:
http://www.jacco2.dds.nl/networking/freeswan-l2tp.html
OSPF, RIP, BGP Routing Suite Quagga:
http://www.nongnu.org/quagga/index.html
NTP und GPS Integration:
http://blog.retep.org/2012/06/18/getting-gps-to-work-on-a-raspberry-pi/
Raspberry Infos bei Netzmafia (DCF 77 etc.):
http://www.netzmafia.de/skripten/hardware/RasPi/
Flugbewegungen grafisch monitoren mit dem RasPi:
http://www.satsignal.eu/raspberry-pi/dump1090.html
Das kann z.B. die Web basierte Ticket Erstellung (Einmal Passwort) und Überwachung für Gastbenutzer sein die sich in einem Hotspot bzw. Gastnetz einloggen. Ebenso die zentrale Kontrolle von Log Meldungen (Fehler) aller diese Komponenten, die sichere Benutzer Zugangskontrolle in LAN und WLAN per Radius oder auch das grafische Überwachen der Auslastung von Internet und WAN Verbindungen usw. usw. Es gibt eine Fülle von Anwendungen für den Netzwerk Admin.
In kleinen Netzen muss dafür nicht immer ein großer, teurer Serverbolide oder eine VM verwendet werden, sondern das klappt auch mit einem kleinen, sparsamen "Server" im Zigarettenschachtel Format, dem populären Raspberry Pi !
Wie so ein Server auch für Anfänger schnell und unkompliziert mit den erforderlichen Tools aufzusetzen ist, beschreibt das folgende Tutorial in einzelnen, leicht verständlichen Schritten.
Inhaltsverzeichnis
Vorbemerkung
Diese Anleitung ist verständlicherweise nicht gedacht für den großen Netzwerk Administrator mit 500 Ports und mehr im Netzwerk, sondern ist vielmehr entstanden aus vielen Fragen und Anforderungen in den Threads und Tutorials im Bereich Netzwerk hier im Forum bei Administrator.de.
In der Hauptsache zu den Themen: Router, Switches, Netzwerk, Hotspot und Tracking von Gästen (Security), der grafischen Überwachung von Internet Zugängen und auch der allgemeinen Kontrolle von Netzwerk Komponenten mit kleinem Budget.
Gedacht ist es für kleine LAN Umgebungen und engagierte Netzwerk Admins die etwas mehr darüber erfahren möchten was in ihrem Netzwerk so passiert ohne erstmal ein großes Budget bewegen zu müssen.
Zudem zeigt es eindrucksvoll was mit einfachen und kostenfreien Tools im Netzwerk Umfeld möglich ist und schult zu guter letzt auch noch etwas das Linux KnowHow !
Auch Liebhaber bunter Windows Konsolen müssen nicht abwinken, denn der Raspberry bringt eine komplette, mit Maus bediente, grafische X Windows Oberfläche mit.
Feedback über sinnvolle Anwendungen zur Erweiterung dieses Tutorials per Forumsmail sind immer willkommen.
Natürlich kann man alle diese Tips auch auf einem "großen" Server umsetzen.
Die Hardware
Die Hardware Basis für den Server ist, wie oben schon erwähnt, ein "All in One" System: der Raspberry Pi.
Der Raspberry Pi ist ein ca. 35 €uro preiswertes, komplett fertiges Mainboard wenn man so will, was alles an Bord hat inkl. CPU, RAM, Grafik usw. Man benötigt für den Betrieb lediglich eine SD_Flash_Karte wie sie in jeder Digitalkamera eingesetzt wird und ein simples Standard USB-Netzteil / Ladegerät mit 2,5 A und ein passendes Gehäuse.
Bestellt werden kann er inkl. Gehäuse und diverser Peripherie bei den üblichen Online Stores, Reichelt, Amazon, Watterrot usw.
Ein sehr interessantes Starterkit inkl. Gehäuse und LCD Touchpanel findet man bei AliExpress !
Zum Start ist wie erwähnt eine 4 oder 8 Gig (oder je nach Anwendung größere) Micro SD Flash Speicher Karte quasi als SSD erforderlich. Empfohlen ist 4GB und größer.
Die einfache Stromversorgung realisiert ein Standard_USB_Steckernetzteil mit min. 2 Amp. und einem Standard USB Micro-B Steckerkabel.
Auch ein USB Akku- oder Power_Bank macht den RasPi unabhängig von fester Stromversorgung z.B. im WLAN Umfeld zur Analyse doch dazu später mehr.
Mit einem Deluxe Gehäuse wie z.B. HIER kann er mit Kühlung und externer m.2 SSD auch zu einem verlässlichen Mini Server werden z.B. für die Anwendungen dieses Tutorials und noch vieles mehr.
Kapitel 1. Die ersten Schritte und die Grundkonfiguration
Das Tutorial geht nicht im Detail auf die grundlegende Installation ein sondern setzt ein lauffähiges System voraus.
Die Grundinstallation ist aber auch für Laien kinderleicht, da es ein komplett fertiges Betriebssystem Image für den Raspberry gibt, was der Raspberry online lädt und selbst lauffertig installiert (NOOBS Image = "New Out Of The Box Software")
Die Installation ist mit wenigen Handgriffen erledigt:
- NOOBS Image HIER ZIP Datei runterladen und in ein Verzeichnis entpacken.
- Freie SD Speicherkarte in einen SD-USB Adapter stecken oder SD Kartenleser verwenden.
- Entpackte Dateien von oben einfach auf die SD Karte kopieren.
- SD Karte entfernen, in den RasPi stecken, Maus, Tastatur (USB) und Monitor anschliessen...booten... OS Version auswählen..
- Fertig !
Wer offline ein Image auf die SD Karte schreiben will geht so vor:
Unter Windows ist nur mit einem Tool wie z.B. dem bekannten Win32_Disk_Imager das vorher runtergeladene Raspian (Wheezy) auf die o.a. SD Karte zu schreiben.
In Stichworten sind die folgenden Schritte zu tun:
- Download fertiges SD Karten Image "Raspbian “wheezy”" von der Projektseite: http://www.raspberrypi.org/downloads
- Download Windows_ImageWriter für die SD Flash Karte oder den Balena-Etcher.
- Apple Mac User benutzen ebenfalls Balena-Etcher
- Bei Linux erledigt das das dd Kommando
- Image entzippen (z.B. mit 7z ) und die entzippte Datei mit dem ImageWriter einfach auf die SD Karte flashen. Das Imagewriter Programm, Pi-Baker ist selbsterklärend wenn man es startet.
Dann...
- SD Karte in den Pi stecken
- Netzwerk Kabel ans LAN anschliessen (WLAN Installation folgt unten im Tutorial !)
- USB Tastatur anschliessen
- Optional USB Maus anschliessen
- USB Netzteil anschliessen.
- Monitor anschliessen per HDMI oder mit einem entsprechenden HDMI / DVI oder VGA Adapter.
Statt SD Karte kann man auch eine weitaus performantere mSata SSD Karte oder eine SATA SSD Platte verwenden.
Nach dem allerersten Booten und Login (Default User und Passwort ist "pi" und "raspberry") landet man immer automatisch im Setup um das System einmalig auf seine Bedürfnisse anzupassen.
Greift man remote übers Netzwerk per SSH Terminal zu (z.B. Putty oder TeraTerm) muss man die Konfig manuell mit dem Kommando raspi-config starten.
Folgende wichtige Einstellungen sollte man im raspi Setup machen:
- expand_rootfs - Expand root partition to fill SD card = Wichtig: unbedingt ausführen, denn das erweitert die "Festplatte" des Systems (SD Karte) auf die volle Größe !
- configure_keyboard - Set keyboard layout = Sprache des Keybords beantwortet man 2 mal mit "German". Die Frage, ob per Control+Alt-Backspace, den X-Server beendet werden soll, sollte man mit "Yes" beantworten.
- change_pass - Change password for 'pi' user = Sollte man gleich mit einem eigenen Passwort beantworten.
- change_locale - Set locale = Hier de_DE UTF-8 auswählen mit Leertaste und gleichzeitig "en_GB.UTF-8 UTF-8" mit Leertaste löschen ! Im nächsten Fenster de_DE auswählen. Wer besser mit Englisch klarkommt belässt es auf der englischen Einstellung.
- change_timezone - Set timezone = "Europe" und "Berlin" wählen. (User aus anderen Ländern entsprechend)
- memory_split - Change memory split = Da der hier beschriebene Server die grafische Oberfläche nicht intensiv nutzt kann man mehr Speicher mit dem 240/16 Split freigeben, was der Performance zugute kommt. Wer doch mehr grafisch arbeiten will belässt den Default. (Update: Durch die Erweiterung des Raspberrys auf jetzt 1Gig RAM kann diese im Default bleiben. Wer ohne grafische Oberfläche arbeitet oder nur gelegentlich kann durch den obigen Split aber noch mehr Speicher freimachen was der Performance im nur Serverbetrieb zugute kommt.)
- overclock - Configure overclocking = Mittlerweile verträgt der Pi auch eine Taktung auf 1 Ghz, allerdings ist da bei Class 10 SD Karten Vorsicht geboten. Für den Dauerbetrieb des RasPi oder generell für einen stabilen Betrieb ist eine Stufe unter der Höchsten Rate ratsam !
- ssh - Enable or disable ssh server = Unbedingt SSH aktivieren um den remoten Zugriff über das Netz zu ermöglichen !
- boot_behaviour - Start desktop on boot? = Hier No antworten und den grafischen Desktop nicht automatisch starten lassen, da der Server das nicht unbedingt benötigt und man Resourcen spart.
Anfänger oder Nutzer der grafischen Windows Oberfläche sollten hier besser mit "YES" antworten, da mancher sich oft besser in einer Windows ähnlichen grafischen Umgebung einfacher zurechtfindet.... wie immer Geschmackssache ?!
Nach dem Login kann man die Windows Oberfläche aber immer manuell mit dem Kommando start x aktivieren wer es will und wer sich auf einer grafischen Windows Oberfläche wohler fühlt.
- update - Try to upgrade raspi-config = Erstmal nicht ausführen also NO !
Über die TAB-Taste kommt man auf die Schaltflächen "Select" und dann Finish um das Setup abzuschliessen und die Einstellungen zu sichern.
Die Frage bei "Finish" ob das System nun neu gestartet werden soll, bitte mit Yes beantworten und rebooten !
Alles findet man HIER noch einmal zum genauen Nachlesen.
Entweder bootet der Pi nun gleich in eine grafische Windows Oberfläche sofern man dies oben eingestellt hat oder tut dies nach Eingabe des Kommandos start x. Nach dem Booten kann man erste Tests mit Ping usw. machen.
Wichtig ist die DHCP IP des Raspberrys im Netz !
Diese wird mit dem Kommando ifconfig angezeigt oder auch in der Bootmessage !
Damit kann man sich ebenso mit bekannten Terminal Tools wie PuTTY oder TeraTerm und WinSCP (File Transfer) mit dem Pi bequem über das Netzwerk verbinden. Windows Nutzern sollten diese Tools installieren. Apple Mac und Linux haben das von Haus aus mit an Bord.
Auch ein remoter grafischer Login ala RDP ist mit VNC möglich, dazu später mehr. Der RasPi muss also nicht zwingend angeschlossen an Tastatur, Maus und Bildschirm werkeln.
Login dann mit Usernamen "pi" und dem oben vergebenen Password.
Jetzt ist ein guter Zeitpunkt gekommen das System auf den aktuellsten Software Stand zu bringen !
Ein funktionierender Internet Zugang ist dafür erforderlich, da die Updates online nachgeladen werden ! Der Pi holt sich seine IP und Gateway per DHCP im Netz (Default) sollte also in einem Heimrouter Netz immer gleich Online sein.
Ein Ping z.B. auf www.heise.de oder 8.8.8.8 im Terminal sollte eine Antwort bringen und zeigt an ob der Internet Zugang auch sauber funktioniert. (Stop des Ping mit<ctrl> c )
Nach dem Logon mit User "pi" und "sudo su" um Root User (Administrator) zu werden, erledigen das Update die beiden folgenden Kommandos:
apt update
und
apt dist-upgrade
Die man nun am Eingabeprompt eingibt und sich eine Tasse Kaffee holt, denn zum Update braucht der Raspberry etwas. Man kann ihm dabei zusehen.
An dieser Stelle noch einmal ein wichtiger Hinweis für alle Linux Anfänger und um Installationsfrust zu vermeiden:
Alle Installationen der Software Pakete und deren anschliessende Konfiguration führt man generell IMMER als Root User (Administrator) aus !!
Dazu ist immer ein "sudo su" vorher einzugeben ! Erst danach werden dann als Administrator die apt get... Kommandos und die Anpassungen der Konfig Dateien mit dem nano Editor ausgeführt !!
Ein weiterer Hinweis betrifft die Anpassungen der hier beschriebenen Konfigurationen. Bei Linux oder unixoiden Betriebssystemen im Allgemeinen wird das auch zunehmend über grafische Tools gemacht aber eine Vielzahl von Finetuning Parametern werden in einfachen Text Dateien, sprich Konfigurationsdateien gemacht.
Ein wenig Übung mit einem simplen Text Editor kann also nicht schaden.
Der RasPi hat z.B. den nano Editor an Bord. Ein sehr einfacher Text Editor der hier im Tutorial zum Anpassen der Konfig Dateien benutzt wird und über die Cursor (Pfeil) Tasten gesteuert wird. <ctrl> o und <ctrl> x sichert die Datei und speichert sie.
cat <dateiname> oder less <dateiname> zeigt z.B. den Inhalt dieser Dateien an. Die wichtigsten Steuerkommandos des Editor zeigt er selber unten in einer Hilfszeile.
Es ist also sinnvoll als Anfänger sich mit ein paar nano Übungen etwas sattelfest zu machen mit dem Editor, da es die Handhabung sehr erleichtert.
Sehr bequem ist auch der remote Zugang via Netzwerk auf den RasPi. Das erspart einem den Anschluss von Monitor und Tastatur und man kann den RasPi irgendwo ins Netzwerk hängen sei es per LAN oder auch WLAN. Mit einem USB Akku- oder Power Pack ist man so auch vollkommen Kabel unabhängig wer dies möchte.
Dazu nutzt man die klassischen freien SSH Terminal Programme Putty oder TeraTerm um per SSH den RasPi zu erreichen. Zum Kopieren von Dateien zu Windows Rechneren bietet sich das oben bereits erwähnte WinSCP an.
Apple Mac und Linux User nehmen hier wie immer Bordmittel z.B. ssh mit ssh username@<raspi_ip>oder z.B. das Terminal Programm ZOC.
Natürlich lässt sich auch die grafische Windows Oberfläche des RasPi mit VNC oder Windows RDP (xrdp) fernbedienen.
Wie das remote über das Netzwerk geht erklärt das Tutorial später nach dem Netzwerk Kapitel.
Fertig der grauen Theorie... !
Nun geht es endlich daran den Management Server für den Netzwerk Einsatz zu konfigurieren und fit zu machen...!
Den Raspberry Pi ins Netzwerk bringen...
⚠️ Anmerkung vorweg:
In der aktuellen Raspberry Pi OS Version "Bookworm" ist der Network-Manager aktiv. Im Lite Image ohne GUI erledigt das Tool nmtui die IP Adressierung und WLAN Einrichtung. Mit GUI macht man es über das grafische Interface.
Die alte Option über systemd und die dhcpcd.conf Datei kann beigehalten werden wenn dies in in raspi-config entsprechend gesetzt wurde.
Das Tutorial wird schrittweise auf die neuen Konfig Optionen angepasst.
Nach dem Booten und mit angeschlossenem LAN Kabel holt der Pi sich im Default automatisch eine IP Adresse von einem im Netz vorhandenen DHCP Server, üblicherweise also vom Router oder Server DHCP.
Wer mit der DHCP Adresse leben kann oder den Pi an wechselnden Standorten betreibt, belässt es bei der Default DHCP Einstellung.
Sinnvoll und besser ist, für einen festen stationären Server, aber immer eine feste, statische IP Adresse !
Lokales LAN
Statische IP am LAN Port vergeben
Dies geschieht wie oben schon gesagt ohne GUI über das nmtui Kommando.
Die alte Version über die dhcpcd.conf Datei wird hier als Option kleingedruckt beibehalten.
Mit sudo su macht man sich zum Root User (Administrator) um die Konfig Dateien bearbeiten zu können.
Man editiert dort die Datei dhcpcd.conf im Verzeichnis /etc mit einem Editor wie z.B. nano. Man beachte hier das "c" im Dateinamen für den DHCP Client !! dhcpd konfiguriert den DHCP Server der in einem späteren Kapitel behandelt wird.
Das Kommando lautet nano dhcpcd.conf
Das dort aufgeführte eth0 Interface ist das Onboard LAN Interface.
Es bietet sich hier an das Interface im DHCP Modus zu belassen um immer dynamisch eine IP zu bekommen. Ist kein DHCP Server erreichbar, kann man eine feste statische Fallback Adresse bestimmen:
# Definition der Fallback IP Adresse
profile static_eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
# Fallback aktivieren auf eth0 wenn kein DHCP
interface eth0
fallback static_eth0
# Statische IP Konfiguration:
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Router wie die FritzBox u.a. supporten sowas im DHCP Setup. Die Mac Adresse das RasPi LAN Ports erfährt man mit dem Kommando ifconfig.
Danach rebootet man das System mit dem Kommando reboot. Nach dem Reboot gibt ein Ping auf die IP Adresse 192.168.1.222 eine positive Antwort und ebenso kann man den Pi mit Putty nun wieder über diese IP per SSH erreichen.
Damit der Pi auch mit seiner statischen IP Adresse einen DNS Nameserver erreichen kann und Namen auflösen kann, muss man zusätzlich die Datei /etc/resolv.conf wie oben editieren und hier folgende Änderung machen:
domain meinedomain.home.arpa
search home.arpa
nameserver 192.168.1.1
Die Nameserver IP Adresse wird hier also auf den lokalen Router (Beispiel) oder die des lokalen DNS Servers im Netz angepasst. (Die Domain netz.intern hier im Beispiel ist natürlich durch die eigene Domain zu ersetzen !)
Ein wiederholter Ping z.B. auf www.heise.de sollte dann das folgende Ergebnis haben:
root@raspberry:/etc# ping www.heise.de
PING www.heise.de (193.99.144.85): 56 data bytes
64 bytes from 193.99.144.85: icmp_seq=0 ttl=247 time=51.774 ms
64 bytes from 193.99.144.85: icmp_seq=1 ttl=247 time=52.305 ms ...usw.
(Stop mit ctrl-c )
Die gesamte Prozedur ist HIER noch einmal visuell zu sehen.
Weitere LAN Interfaces mit USB Adapter hinzufügen
Auf exakt diese Weise lassen sich auch USB basierte Ethernet Adapter wie z.B. DIESER oder auch solche mit Gigabit_Ethernet als 2ten Ethernet Port (eth1) betreiben.
Weitere Adapter werden vom Betriebssystem automatisch erkannt und eth1, eth2 usw. nummeriert. WLAN Adapter ebenso. Ein ifconfig zeigt immer die erkannten Interfaces.
Jeder Adapter arbeitet per Default im DHCP Client Mode, zieht sich also automatisch eine IP Adresse.
Möchte man zusätzlichen Adaptern wie z.B. eth1 statische IP Adressen vergeben mit oder ohne Fallback verfährt man identisch zur obigen Beschreibung in der Datei /etc/dhcpcd.conf
Natürlich ist auch hier DHCP Server Mode möglich, sprich das der RasPi selber als DHCP Server für die Interfaces agiert.
Der DHCP Server Betrieb mit dem RasPi beschreibt ein eigenes Kapitel unten in diesem Tutorial.
Mit mehreren Netzwerk Adaptern kann der RasPi auch als Router arbeiten. Dazu später mehr.
WLAN
WLAN aktivieren und an ein bestehendes WLAN ankoppeln
Oft besteht der Wunsch den Raspberry Server statt mit umständlichem LAN Kabel einfach mobil in ein bestehendes WLAN zu hängen.
Der aktuelle RasPi 3 hat dazu gleich WLAN onboard ebenso wie Bluetooth.
Bei den älteren Modellen ist es sehr einfach und schnell erledigt mit einem kleinen WLAN_USB_Stick.
Ein guter Tip sind die USB Adapter von TP-Link die optimale Sende- und Empfangsoptionen haben (nicht nur für den RasPi) durch die externe Antenne, die auch über die SMA Buchse externe Antennen für Richtfunkstrecken supportet.
Am allereinfachsten erledigt man den WLAN Zugang mit dem Tool wpa_gui, was man über die grafische Oberfläche einfach mit Start -> Internet -> wpa_gui anklickt oder auch oben in der Taskleiste sieht mit dem typischen WLAN Symbol. WLANs werden automatisch erkannt.
Das Tool ist selbsterklärend, und speichert die angegebenen WLANs dauerhaft, so das der Raspberry sich auch nach einem Reboot wieder automatisch mit ihnen verbindet.
Wichtig hier wie immer den RasPi mit raspi-config in die richtige WiFi Regulatory Domain (DE=Deutschland, AT=Österreich, CH= Schweiz usw.) zu setzen. Ohne diesen landesspezifischen WiFi Parameter sendet der RasPi nicht !
Wer einen Headless RasPi betreibt oder einen RasPi Zero, also einen OHNE Display, Tastatur und Maus, und diesen automatisch mit einem vorhandenen WLAN verbinden möchte, kann dies auch sehr einfach tun.
Dazu erzeugt man mit einem Editor eine Text Datei mit dem Namen wpa_supplicant.conf mit folgendem Inhalt:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="Bitschleuder"
psk="Geheim123"
key_mgmt=WPA-PSK
}
Das /boot Verzeichnis ist FAT32 formatiert, kann also von jedem Betriebssystem per Kartenleser gelesen werden. Man kann die Datei auf einem Windows Rechner erstellen, und dann kopiert diese dann ins Zielverzeichnis /boot. Es empfiehlt sich einen modernen Editor wie [Notepad++ ] zu verwenden der NICHT die Windows üblichen CR-LFs am Zeilenende addiert !)
Dann steckt man die SD Karte in den RasPi, bootet und der RasPi bucht sich automatisch mit den o.a. Daten ins WLAN ein.
Für den Headless Mode sollte dann auch zwingend zusätzlich eine leere Datei mit dem Namen "ssh" (ohne "") ebenfalls in das Verzeichnis /boot kopiert werden, damit der SSH Server für den remoten Zugriff (PuTTY etc.) aktiviert wird.
Das WLAN Passwort ungeschützt in eine Konfigurations Datei wie der obigen zu sichern ist nicht wirklich sicher aber keine Sorge... der Pi hat gleich ein Tool an Bord um das geschützt einzugeben.
Das Kommando heisst wpa_passphrase. Man gibt also ein:
wpa_passphrase <ssid> <wlan-passwort>
Am Beispiel eines WLANs mit dem Namen (SSID) "Bitschleuder" und dem WLAN Passwort "Geheim123" sieht das dann so aus:
root@raspberry:/etc# wpa_passphrase Bitschleuder Geheim123
Der Konfig Eintrag des Passwortes in der Datei wpa_supplicant.conf ändert sich dann entsprechend:
network={
ssid="Bitschleuder"
psk=01b035e084c87e1a3e348e6fbb4783202b145950789c691687ee0a6f71584e8b
key_mgmt=WPA-PSK
}
Mit dem network {...} Parameter kann man zudem weitere WLAN Netze definieren mit denen sich der RasPi verbindet sollten diese in Reichweite sein.
Sinnvoll ist zusätzlich den Energiespar Modus am WLAN Interface abzuschalten, ansonsten verliert man bei WLAN angebundenen RasPis nach einiger Zeit die Möglichkeit von außen zuzugreifen.
In die Datei /etc/network/interfaces trägt man dazu am Ende folgendes ein:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
wireless-power off
Danach rebootet man das System (shutdown -r now) und kann nun wahlfrei den LAN oder WLAN Port benutzen.
Ein ifconfig Kommando zeigt analog zu Windows ipconfig die finale Interface Konfig an, inklusive der IP Adressen.
Die IP Adress Anpassung macht man dann wieder in der Datei /etc/dhcpcd.conf.
WLAN ohne AP als Ad Hoc Verbindung
Natürlich kann man sich mit dem RasPi auch ganz ohne ein bestehendes Access Point basiertes WLAN mit einer sog. "Ad Hoc" Punkt zu Punkt Verbindung direkt koppeln. Z.B. mit Laptop, Smartphone oder Pad.
Dazu editiert man die Datei /etc/network/interfaces dann folgendermaßen:
iface wlan0 inet static
address 192.168.222.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 5
wireless-essid RasPi
auto wlan0
Hierbei ist zu beachten das das verbindende Gerät ebenfalls auf Ad Hoc Modus eingestellt sein muß, was aber meist automatisch passiert. Eine IP Adresse muss statisch im gleichen IP Netz vergeben werden (hier 192.168.222.x).
Raspberry Pi Server als WLAN Accesspoint betreiben
Der Raspberry Server lässt sich mit seinem onboard WLAN oder auch externem WLAN Stick selber als sehr flexibler, eigenständiger WLAN Accesspoint betreiben auf dem sich WLAN Clients anmelden und verbinden können:
Dazu installiert man mit
apt install hostapd
die Accesspoint Software "hostapd" und editiert wieder die interfaces Datei mit einer statischen IP (AP Betrieb geht ausschliesslich mit statischer IP) auf dem wlan0 Interface (z.B. 10.0.0.1 /24) und passt dazu mit dem Editor die Konfigurationsdatei etc/default/hostapd an, indem man dort die Zeile
DAEMON_CONF="/etc/hostapd/hostapd.conf"
entkommentiert durch Entfernen des "#" am Zeilenanfang bzw. die Pfadangabe der Konfig Datei zwischen die "" einfügt.
Mit dem nano Editor legt man dann mit nano hostapd.conf im Verzeichnis /etc/hostapd/ die Konfigurations Datei "hostapd.conf" zum Einstellen der AP Parameter an, mit folgendem Inhalt den man per cut and paste übertragen kann:
interface=wlan0
driver=nl80211
# WLAN Name (SSID), Landeseinstellung Funkkanal und .11 Modus
ssid=RaspberryPi-AP
country_code=DE
ieee80211d=1
hw_mode=g
ieee80211n=1
wmm_enabled=1
channel=3
# Timing Parameter
max_num_sta=32
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
# WPA Schluesseleinstellungen u. Passwort
wpa=2
wpa_passphrase=raspberry123
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_pairwise=CCMP
interface=wlan0
driver=nl80211
hw_mode=g
ssid=RaspberryPi-AP
channel=3
Danach startet man wie gewohnt unter /etc/init.d den Accesspoint mit ./hostapd restart neu.
Falls der hostapd das mit einem "[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!" quittiert, ist das meist ein Indiz dafür das dem Interface wlan0 vergessen wurde eine statische IP Adresse (siehe oben) zu geben !
Nun kann man z.B. mit einem kostenfreien WLAN_Scanner (Windows, Mac, Android) seinen "Rasberry Accesspoint" auf dem WLAN Funk Kanal 3 senden sehen und sich mit ihm verbinden wie mit einem klassischen WLAN AP oder WLAN Router.
Sehr praktisch wenn man in Verbindung z.B. mit dem unten beschrieben seriellen Terminal im lauten und kalten Rechenzentrum einen Switch oder Router über die serielle Konsole konfigurieren muss, was man nun bequem im ruhigen und warmen Vorzimmer entspannt per WLAN machen kann...
Andere Optionen sind WLANs zu routen oder IP Netze mit einem Raspberry zu verbinden ob mit VPN oder ohne. Mit dem u.a. Quagga Tool lässt sich das sogar mit dynamischen Routing Protokollen machen.
Natürlich möchte man nicht jedem WLAN Client, der sich mit dem Rasberry Accesspoint verbindet, immer eine statische IP per Hand konfigurieren.
Keine Bange, das muss auch nicht sein, denn das übernimmt für ein DHCP Server den man mit
apt install dnsmasq
installiert und dessen Konfig Datei /etc/dnsmasq.conf man editiert und seiner gewünschten IP Adressierung anpasst. Ganz am Ende der datei fügt man mit dem nano Editor die folgenden Zeilen ein:
# Nur auf dem Interface wlan0 DHCP Adressen verteilen
interface=wlan0
# DHCP Adressbereich und Leasetime (hier 12 Stunden)
dhcp-range=10.0.0.100,10.0.0.120,255.255.255.0,12h
(Achtung: Stadische IP am WLAN Port muss zum DHCP Bereich passen. Hier 10.0.0.x)
Möchte man einen DHCP Server fürs LAN lässt sich das nach dem selben Muster mit dnsmasq natürlich auch für weitere Netzwerk Interfaces bzw. IP Netze am Raspberry machen.
Alternativ kann man das natürlich auch mit dem unten im DHCP Kapitel beschriebenen ISC-DHCP Server realisieren. Welchen man letztlich nimmt ist wie immer Geschmackssache.
Konfigurationshinweis !:
Zu Recht kam unten in den Beitragsthreads der Hinweis eines Lesers das der LAN Port und der WLAN Port hier 2 getrennte IP Netze sind !
Man MUSS also zwangsweise ein IP Forwarding (Routing) im RasPi aktivieren, möchte man vom WLAN z.B. über einen Internet Router der am LAN angeschlossenen ins Internet.
Dazu muss im RasPi das IPv4 Forwarding mit #net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf aktiviert werden, indem man das Kommentarzeichen "#" vor dieser Zeile mit einem Editor entfernt und rebootet.
Die Trennung der Netze hat aber große Vorteile, da man mit der iptables Firewall zusätzliche Optionen hat den WLAN Traffic zu kontrollieren und zu filtern. Zusätzlich wird das WLAN nicht durch den gesamten Broad- und Multicast Traffic des LAN Ports belastet.
Wer das nicht möchte und den LAN und WLAN Port lieber zusammen in einem gemeinsamen IP Netz haben möchte, der konfiguriert eben schlicht und einfach beide Ports LAN und WLAN über eine Netzwerk Brücke (Bridging) zusammen. Das klappt mit den folgenden Kommandos:
brctl addbr bridge0
brctl addif bridge0 eth0
brctl addif bridge0 wlan0
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig bridge0 10.0.0.1
ifconfig bridge0 up
Will man hier auch den dnsmasq laufen lassen muss man dort natürlich das Interface mit interface=bridge0 entsprechend in der Konfig Datei umsetzen !
Achtung aber wer im LAN noch einen weiteren DHCP Server betreibt !!
Dadurch das LAN und WLAN Port nun per Netzwerkbrücke verbunden ist, vergibt der dsnmasq damit auch im LAN IP Adressen dynamisch so das es beim Bridging hier zum IP Adresschaos kommen kann durch 2 konkurrierende DHCP Server.
In der Regel ist im LAN ein DHCP Server vorhanden (Router, Server etc.) so das der dnsmasq in so einer Bridge Konstellation dann überflüssig ist und deaktiviert werden sollte. Ein weiterer Grund der für das Routing spricht bei dem diese Gefahr nicht besteht.
Noch ein Punkt zur Kanalwahl. Bei USB Sticks ist oft die Regulatory Domain falsch so das einzelne Funkkanäle in Europa blockiert sind oder bei Dual Radio Sticks im 5Ghz Bereich DFS deaktiviert ist.
Wer hier auf Nummer sicher gehen willt setzt beim Booten nochmal explizit die Länder Domain.
Dazu editiert man die Datei /etc/rc.local und fügt die Zeile iw reg set DE hinzu. Das setzt die Reg.Domain auf Deutschland. (AT bzw. CH für Österreich, Schweiz gem. ISO 3166: https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste )
Weitere Infos zur WLAN Integration des RasPis auch auf der Raspberry Foundation Website:
https://www.raspberrypi.org/documentation/configuration/wireless/access- ...
Wichtiger Hinweis zum Edimax Mini USB Stick "nano" und hostapd !:
Benutzer des Raspberry 1 und 2 die den bekannten, preiswerten Edimax "nano" WLAN USB Stick einsetzen wie es ihn z.B hier gibt und der in vielen RasPi WLAN Tutorials und HowTos erwähnt wird, werden sicher frustriert festgestellt haben das der hostapd damit so "out of the box" nicht zum Laufen zu bringen ist.
Es gilt wie gesagt einzig NUR in der Kombination mit hostapd. Als WLAN Client funktioniert dieser Stick problemlos mit Bordmitteln.
Die Gründe dafür würden den Rahmen dieses Tutorials sprengen. Die Lösung aber diese beiden doch noch für den hostapd Betrieb zu verheiraten ist aber kinderleicht, man muss den hostapd Quellcode nur selber übersetzen. Klingt schwer ist aber einfach und schnell erledigt:
Wie das geht beschreibt ein sehr gutes Tutorial HIER !
Wenn man es so umsetzt funktioniert der hostapd Accesspoint auch fehlerlos mit dem Edimax nano WLAN Stick !
Wer sich das nicht antun möchte wählt einen anderen USB Stick z.B. von TP-Link usw. die allesamt fehlerlos auch mit hostapd ohne Klimmzüge laufen.
Mit dem aktuellen Raspberry Pi 3 ist es eh Historie, denn der hat bekanntlich sein WLAN gleich mit an Bord.
Was ist so los im eigenen LAN oder WLAN…?
Wer etwas hinter die Kulissen seines oder anderer Netzwerke sehen möchte kann das mit vielen freien Tools recht einfach realisieren. Als Beispiel sei hier die bekannte Aircrack-ng Suite genannt für die WLAN Analyse bzw. nmap als Klassiker.
Um das Aircrack Packet zu installieren müssen zuerst ein paar Zusatzpakete installiert werden und die Suite selber übersetzt werden, da sie nicht Teil des Raspian Repositories ist. Das ist aber schnell gemacht mit den folgenden Schritten:
apt install iw sysfsutils autoconf automake libtool pkg-config libnl-3-dev libnl-genl-3-dev libssl-dev libsqlite3-dev libpcre3-dev ethtool shtool rfkill
Installiert alle nötigen Komponenten.
Dann lädt man den aktuellen Aircrack Source Tarball hier herunter ins Verzeichnis /home/pi mit dem Kommando
wget http://download.aircrack-ng.org/aircrack-ng-1.5.2.tar.gz
Danach wechselt man in dieses Verzeichnis:
cd aircrack-ng-1.2
und übersetzt dann das Aircrack Paket mit:
autoreconf -i
./configure --with-experimental
make
make install
Ist das sauber durchgelaufen lädt man mit (sudo) airodump-ng-oui-update noch die aktuellen OUI Dateien dazu. Fertig !
Mit iwconfig prüft man nun ob ein erkannter WLAN Adapter vorhanden ist und ob dieser Monitor fähig ist zeigt das Kommando airmon-ng check.
Hilfreich ist es hier das WLAN Interface aus der Datei /etc/network/interfaces auszukommentieren mit "#" damit nicht andere Prozesse es blockieren für das WLAN Sniffing.
Das Kommando airmon-ng start wlan0 bringt nun den WLAN Adapter in den Monitor Modus (wie oben zu sehen) und erzeugt ein Monitor Interface wlan0mon in das man weitere Kommando Tools wie z.B. Kismet einklinken kann. iwconfig verifiziert das wieder:
root@raspberrypi:/home/pi/aircrack-ng-1.2-beta2# iwconfig
lo no wireless extensions.
wlan0mon IEEE 802.11bg Mode:Monitor Frequency:2.442 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
eth0 no wireless extensions.
Mit dem airmon-ng start Kommando sollte das eigentlich automatisch geschehen aber manche USB Adapter sind etwas zickig dabei.
Keine Sorge, man kann mit den iwconfig Kommandos das immer manuell in der folgenden Reihenfolge fixen.
Ggf. sind dazu mit apt install wireless-tools noch die entsprechenden WLAN Tools zu installieren und gibt die Kommandos in der folgenden Reihenfolge ein:
- iwconfig wlan0 = Zeigt an ob WLAN Adapter "interface mode" im Monitor Mode ist (Darf nicht Managed sein !)
- ifconfig wlan0 down = Deaktiviert das WLAN Interface zum Umschalten des Modes
- iwconfig wlan0 mode monitor = Schaltet den Adapter manuell in den Monitor Mode.
- ifconfig wlan0 up = Aktiviert den Adapter wieder und ein iwconfig wlan0 sollte nun anzeigen das der Monitor Mode aktiv ist.
WLANs beobachten und analysieren
airodump-ng wlan0mon zeigt dann z.B. sämtliche empfangbaren WLAN Accesspoints inklusive ihrer BSSIDs und aller mit diesen APs assoziierten WLAN Clients an und zwar im gesamten WLAN Band !
airbase-ng -e "Hier freies WLAN" -c 2 wlan0mon
Gaukelt z.B. einen unverschlüsselten Accesspoint allen WLAN Clients auf Kanal 2 vor, den man mit einem der zahllosen WLAN Sniffer wie z.B. inSSIDer sehr schön sehen kann. (Die aktuelle Version ist jetzt leider kostenpflichtig !)
Eine gute freie Alternative für ein Windows WLAN Scan Tool ist WLAN-Scanner gleich onboard !
Der zusätzliche Parameter -Z 4 im o.a. Kommando macht ihn zu einem WPA-2 AP.
Ersetzt man diesen Parameter mit einem -A ,wird ein Ad Hoc Client vorgegaukelt.
aireplay-ng -0 4 -a 00:12:34:56:78:22 -c 98:76:54:32:10:11 wlan0mon ärgert den Nachbarn und schmeisst z.B. den WLAN Client mit der Mac Adresse 98:76:54:32:10:11 vom Access Point mit der Mac 00:12:34:56:78:22 runter und erzwingt eine Neuanmeldung des Clients.
Man kann diese Aircrack Funktion ebenfalls nutzen um ungeliebte Gäste aus seinem und allen anderen WLANs auszuschliessen wie z.B. HIER in einem einfachen Skript, das Google Glass Träger aus jedem WLAN verbannt !
Wenn man die Mac Adressen dort im Skript entsprechend anpasst, kann man natürlich auch andere Hersteller Endgeräte aus seinem und fremden WLAN Netzen erfolgreich fernhalten.
Eine weitere gefährliche Unart von allen WLAN Profilen in OS aller Art ist, das sie im Hintergrund immer weiter versuchen sich mit einem einmal gespeicherten WLAN Profil zu verbinden und das auch wenn dieses WLAN gar nicht mehr erreichbar ist.
Sprich: WLAN Clients suchen weiter immer aktiv nach WLAN Namen mit denen es einmal verbunden war. Siehe auch die aktuelle Problematik bei Android hier.
Anhand dieser sog. Probe Requests kann man dann schnell rausbekommen wo z.B. der Nachbar oder Kollege usw. sich mit dem WLAN Client oder dem Smartphone so alles anmeldet und angemeldet hat und damit aufgehalten hat !
Wie bekommt man das raus...? Auch hier zeigt airodump-ng wlan0mon diese Requests an:
CH 9 ][ Elapsed: 1 min ][ 2007-04-26 17:41 ][ WPA handshake: 00:14:6C:7E:40:80
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:09:5B:1C:AA:1D 11 16 10 0 0 11 54. OPN NETGEAR
00:14:6C:7A:41:81 34 100 57 14 1 9 11e WEP WEP bigbear
00:14:6C:7E:40:80 32 100 752 73 2 9 54 WPA TKIP PSK teddy
BSSID STATION PWR Rate Lost Packets Probes
00:14:6C:7A:41:81 00:0F:B5:32:31:31 51 36-24 2 14
(not associated) 00:14:A4:3F:8D:13 19 0-0 0 4 Biergarten_M
00:14:6C:7A:41:81 00:0C:41:52:D1:D1 -1 36-36 0 5
00:14:6C:7E:40:80 00:0F:B5:FD:FB:C2 35 54-54 0 99 teddy
Details zum airodump Kommando hier.
Wer es etwas genauer will installiert mit apt install horst ein gutes WiFi Scan Tool für die Kommandozeile:
Danach startet man horst mit horst -i wlan0mon
Das Tool ist selbsterklärend mit der Befehlszeile am unteren Ende. Wichtig hier ist die "C" Taste (Channel) den man unbedingt auf Automatically change channel Modus setzen sollte wenn man das gesamte WiFi Netz untersuchen möchte.
Natürlich geht das auch direkt mit dem GUI, wer die grafische X Windows Oberfläche auf dem Pi laufen hat oder ihn mit VNC oder XRDP fernbedient und zusätzlich den Wireshark dort mit apt install wireshark installiert hat.
Dazu geht man dann folgendermaßen vor:
airmon-ng start wlan0 startet wieder den Monitor Mode und legt das Monitor Interface wlan0mon im Monitor Mode an sofern noch nicht aktiviert.
Man startet den Wireshark im GUI und wählt das Interface wlan0mon aus und klickt Start bzw. die grüne "Rückenflosse".
Der Wireshark zeigt jetzt sämtlichen WLAN Traffic im Empfangsbereich an und deshalb ist es zwingend einen Display Filter aufzusetzen, der nur die gewünschten Probe Requests aus den mitgeschnittenen WLAN Daten rausfischt.
Man stoppt den "Kabelhai" wieder und in das obige Fenster "Filter" gibt man dann folgenden String: wlan.fc.type_subtype eq 4 ein und klickt auf Apply.
Et voila... nun werden nur noch die verräterischen Probe Requests angezeigt.
Ein etwas verbessertes Ergebnis erreicht man mit iwconfig mon0 channel 6 wenn man den Adapter auf den WLAN Mittenkanal 6 setzt.
So kann man auch sehr leicht herausfinden ob die eigenen WLAN Geräte gelernte WLAN Netze ausposaunen und so anderen Rückschlüsse auf ein eigenes Bewegungsprofil mit dem Smartphone bieten !
Die weiteren grundlegenden Kommandos zum Analysieren bzw. Sicherheitscheck des WLAN Netzes werden im Aircrack_Guide oder Wardrive_Enzyklopädie beschrieben.
Netzwerke prüfen (Security)
Eines der klassischen Tools zum Analysieren eines LANs (und auch WLANs) ist das bekannte NMAP.
Die erforderlichen Pakete installiert man mit
apt install nmap zenmap
Wobei "zenmap" die grafische Oberfläche für nmap ist, die man auch bequem via XRDP (Windows RDP) oder VNC fernbedienen kann. (Siehe auch Tightvnc Server Installation hier im Tutorial Kapitel 3)
Startet man Zenmap und befindet sich z.B. im Netzwerk 192.168.0.0/24 tippt man das als lokales Netzwerk ein und mit einem Klick auf "Quick Scan" führt nmap einen Scan des gesamten Netzes und seiner Hosts aus.
Im linken Bereich sieht man die Hosts und auf welchen TCP/UDP Ports diese antworten.
(Real Life Scan auf administrator.de (Sorry Frank ))
Sehr aufschlussreich ist auch das eigene Netzwerk zuhause. WER also dort im eigenen Heimnetz so alles unbemerkt mit dem Internet kommuniziert, wie z.B. PCs, Smart TVs die heimlich nach Hause telefonieren und Fernsehgewohnheiten an Sender und Hersteller übermitteln, aber auch andere Dinge die man nicht wirklich in der großen weiten Welt haben will und schon gar nicht auf sozialen Netzen !
nmap -sP 192.168.1.* (IP Adresse an eigenes Netz anpassen)
liefert schnell einen Überblick welche Hosts von welcherm Hersteller im eigenen Netz gerade aktiv sind.
Jetzt bemüht man das Tool Ettercap auf dem RasPi der diese heimlichen "Spione" im Nu entlarvt.
Das Tool ist mit apt install ettercap-text-only schnell installiert. (Wer es grafisch mag installiert mit apt install ettercap-graphical die Grafik Variante).
Ettercap kann unter anderem ein ARP Spoofing ausführen und im gesamten Netzwerk z.B. allen anderen Teilnehmern den Internet Router vorgaukeln ohne diese anzufassen. Es leitet so den gesamten Traffic ins Internet über sich selber und sieht sich den Traffic dabei an.
In einem Netzwerk mit der IP Adresse 192.168.1.0 /24 wo der der DSL/Kabel Internet Router die IP Adresse 192.168.1.1 hat, erreicht man das mit dem Kommando:
ettercap -T -M arp:remote /192.168.1.1/ / /
Will man die Kommunikation von ganz bestimmten Endgeräten im Netzwerk (z.B. dem Host 192.168.1.100) mit dem Internet belauschen lautet das Kommando:
ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.100/
Man kann hier auch mehrere Endgeräte IP Adressen angeben. Die man Page "man ettercap" und diverse Tutorials im Internet haben weitere Beispiele. Meist ist man sehr erstaunt WAS alles so unverschlüsselt "nach Hause telefoniert" bzw. ins Internet geht wenn man es nicht im Router blockt.
Die einfachste Massnahme ist an solchen Geräten wie Fernseher usw. einfach keine Gateway IP einzustellen um den Spuk sicher abzustellen.
Mit apt install driftnet installiert man ein "grafisches" tcpdump. Leitet man den Netzwerktraffic mit Ettercap wie oben entsprechend um und startet driftnet -i eth0 kann man in einem X Window Fenster alle Bilder und Grafiken sehen die ein Client überträgt. Driftnet fischt diese aus dem umgelenkten Datenstrom.
ettercap -Tqi eth0 -M arp:remote // //
apt install dsniff installiert weitere Analyse Tools um den auf den RasPi umgelenkten Datenstrom zu untersuchen. urlsnarf extrahiert z.B. alle HTTP Anfragen aus diesem umgelenkten Datenstrom.
Ein zusätzliches hilfreiches Tool ist fing das man für den RasPi hier herunterladen kann:
http://www.overlooksoft.com/getfing4arm
Ein dpkg -i overlook-fing-2.2.deb installiert es. fing --help zeigt die Kommandosyntax. Der alleinige Aufruf von fing zeigt alle aktiven Mac- und IP Adressen im Netz.
Es ist quasi ein Schweizer Taschenmesser, das alle Geräte eines Netzes inklusive ihrer Ports und Namen aufspürt.
Weitere Tools wie Wireshark, tcpdump,arpspoof usw. komplettieren das Toolset zur Netzwerkanalyse.
Eine Plug and Play Sniffer Probe zum Einschleifen ins LAN Kabel findet man z.B. HIER beschrieben.
Um den RasPi mit Wireshark als Sniffer Bridge mit 2 Ethernet Ports zu betreiben konfiguriert man auf der Konsole mit den folgenden Kommandos eine Bridge zw. den 2 Ports:
ifconfig eth0 -arp promisc 0.0.0.0 up
ifconfig eth1 -arp promisc 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 -arp promisc 0.0.0.0 up
Wer den RasPi remote über das Bridge Interface erreichen möchte z.B. wenn man via RDP oder VNC Verbindung sniffert, kann man die letzte Zeile auch in ifconfig br0 -arp promisc dhcp up ändern. Der RasPi zieht sich dann eine IP per DHCP. Eine statische IP ist hier natürlich auch möglich !
VLANs auf dem Raspberry einrichten
Natürlich supportet der Raspberry auch die VLAN Integration mit VLAN Tagging (802.1q) auf seinen Interfaces. Dabei ist es egal ob man das eingebaute Ethernet Interface dafür benutzt oder z.B. eins mit einem zusätzlichen USB-Ethernet Adapter.
Die Installation ist wie immer im Handumdrehen erledigt:
Mit apt install vlan installiert man den 802.1q VLAN Tagging Support.
Dann passt man wiederum die Datei /etc/network/interfaces an gemäß der auf dem VLAN Switch verwendeten VLANs die man am Raspberry Port haben möchte.
Die folgende Beispielkonfiguration zeigt das Ethernet Interface eth1 (ein USB-Ethernet Adapter) das mit den VLANs 10, 20 und 30 tagged auf einem VLAN Switch verbunden ist. Das Interface eth1 selber ist dabei untagged mit dem native VLAN (default VLAN) des Switches verbunden.
VLAN interface, IP Adressen in /etc/dhcpcd.confsetzen:
auto eth1.10
iface eth1.10 inet manual
auto eth1.20
iface eth1.20 inet manual
auto eth1.30
iface eth1.30 inet manual
Diese Datei sieht dann für die o.a. VLAN Definition so aus:
# VLAN configuration:
# Ohne DHCP soll eth1 auf eine vorgegebene static IP zurückfallen
profile static_eth1
static ip_address=10.1.1.10/24
static routers=10.1.1.1
#static domain_name_servers=192.168.1.1
# Fallback auf static IP wenn eth1 ohne DHCP
interface eth1
fallback static_eth1
# Statische IPs der 3 VLANs 10, 20 und 30:
interface eth1.10
static ip_address=10.10.1.10/24
static routers=10.10.1.1
interface eth1.20
static ip_address=10.20.1.10/24
static routers=10.20.1.1
interface eth1.30
static ip_address=10.30.1.10/24
static routers=10.30.1.1
interface FastEthernet0/24
description VLAN Uplink zum Raspberry Pi Server
switchport mode trunk
switchport trunk native vlan 1
switchport trunk allowed vlan 1,10,20,30
Die RasPi VLAN Konfig lehnt sich dabei an das VLAN_Servertutorial hier im Forum an, das die weiteren Details beschreibt.
Die dazu korrespondierende VLAN Switchkonfiguration für gängige LAN Switchmodelle beschreibt ein entsprechendes VLAN_Switchtutorial hier im Forum.
Es behandelt auch wie das IP Routing (Forwarding) global auf dem Raspberry oder Linux/Windows allgemein aktiviert wird. (Entkommentieren der Zeile #net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf).
Der RasPi kann damit problemlos auch als externer VLAN Router eingesetzt werden der zwischen VLAN IP Netzen routet !
NIC Teaming bzw. Link Aggregation / Bonding (LAG) mit dem Raspberry einrichten
Wem die 100 Mbit Bandbreite des Raspberrys nicht genügen, kann natürlich auch Link Aggregation bzw. Teaming mit 2 Netzwerkadaptern machen um so die Kapazität der Bandbreite zu erhöhen. Da der Raspberry nur einen Adapter onboard hat benötigt er zusätzlich einen weiteren USB-Ethernet Adapter wie z.B. diesen. Praktisch ist auch einer mit integriettem USB Port Hub wie dieser. Alle diese USB-Ethernet Adapter werden automatisch erkannt und supportet.
Interessant ist die Link Aggregation zum Test mit managebaren LAN Switches die Teaming oder Link Aggregation, sprich also das Bündeln mehrer Ports zur Bandbreitenerhöhung supporten.
In der Regel unterstützen die meisten am Markt befindlichen managebaren LAN Switches den verbreiteten Standard 802.3ad mit LACP (Link Aggregation Control Protokoll).
Damit kann man den Switch in Bezug auf funktionierendes NIC Teaming mit 802.3ad / LACP wasserdicht testen.
(ACHTUNG: Der zusätzliche USB Adapter muss ebenfalls ein 100 Mbit/s LAN Adapter sein ! Ein Teaming mit 2 unterschiedlichen LAN Speeds supportet der 802.3ad Standard definitiv NICHT !)
Die folgenden Schritte zeigen das NIC Teaming / LAG inklusive Konfiguration an einem Cisco Catalyst LAN Switch und einem HP ProCurve Switch. Als Beispiel für einen Web Smart Switch mit Konfig über eine GUI ist hier die Konfig eines Cisco Switches der preiswerten SG-200 / SG-300 Reihe gezeigt. Bei Switches anderer Hersteller sind die Konfigs mehr oder minder identisch.
Los gehts...
apt install ifenslave ethtool bmon
Installiert wie gehabt die benötigten Komponenten dazu.
Zum Konfigurieren fasst man wieder mit dem nano Editor die bekannte Datei /etc/network/interfaces an und konfiguriert das Bonding bzw. Teaming. Hier im Beispiel ein 2er Trunk mit den Interfaces eth0 (onboard Ethernet) und eth1 (USB 100Mbit Ethernetadapter):
iface eth0 inet dhcp
iface eth1 inet dhcp
auto bond0
iface bond0 inet dhcp
bond-slaves eth0 eth1
bond-mode 802.3ad
bond-miimon 100
bond-updelay 200
bond-downdelay 200
bond-xmit_hash_policy layer2+3
Den Status des Trunks kann man mit cat /proc/net/bond0/info auf der Linux Seite checken.
Die o.a. Konfig ist fast selbsterklärend...
Mode 802.3ad schaltet das Teaming in dieses Standardmodus den alle LAN Switches verstehen.
Die Hash Policy Layer 2+3 erwirkt eine bessere Last Verteilung auf Basis von L2 und L3 Adressen.
An dieser Stelle ein warnendes Wort:
Im Host/Server Bereich, speziell Windows, gibt es diverse Teaming Arten (Bonding, Failover usw.) die aber in einer LAN Switch Infrastruktur NICHT alle supportet sind !! Ein Quell vieler Fehlerthreads hier im Forum wo Netzwerk Admins oft mit Serveradministratoren streiten über diese Funktion und was geht und nicht geht an LAN Switches.
Dieser Teil des Tutorials bezieht sich NUR auf den o.g. Standard zur Bandbreitenerhöhung (IEEE 802.3ad und LACP Standard) und KEIN Link Failover ! Link Failover ist aktive KEINE Bündelung paraleller Links. Das erreicht man ausschliesslich nur mit 802.3ad (oder .ax) und LACP was der Switch auch supporten muss. Ein managebarer Switch oder WebSmart Switch ist hier also immer minimalste Voraussetzung !
Details zu den Teaming oder Bonding Modi kann man hier nachlesen.
Da wie bereits erwähnt Link Aggregation IMMER eine 2-seitige Angelegenheit ist egal ob "Server UND Switch" oder "Switch zu Switch" folgt im 2ten Schritt nun die entsprechende LAN Switch Konfiguration zum NIC "Teaming / Bonding / Link Aggregation / Etherchannel" mit Switches verschiedener Hersteller als Beispiel:
Trunking Beispiel Cisco "Etherchannel" (Trunk, LAG) Konfiguration an den Ports 0/3 und 0/4 eines Cisco IOS Catalyst Switches.
Mitbewerber mit ähnlichem CLI machen das identisch und bei einfachen Web Smart Switches ist das ein Klick im grafischen Setup:
interface Port-channel1
description RasPi 2Port LAG
switchport mode access
spanning-tree portfast
!
interface FastEthernet0/3
description NIC 1
switchport mode access
channel-group 1 mode active
spanning-tree portfast
!
interface FastEthernet0/4
description NIC 2
switchport mode access
channel-group 1 mode active
spanning-tree portfast
Nach dem Reboot des Raspberrys sieht man das der Port Channel (LAG) auf dem LAN Switch aktiv ist:
catalyst#sh int po 1 eth
Port-channel1 (Primary aggregator)
Age of the Port-channel = 0d:02h:45m:48s
Logical slot/port = 2/1 Number of ports = 2
HotStandBy port = null
Port state = Port-channel Ag-Inuse
Protocol = LACP
Port security = Disabled
Ports in the Port-channel:
Index Load Port EC state No of bits
------+------+------+------------------+-----------
0 00 Fa0/3 Active 0
0 00 Fa0/4 Active 0
root@raspberry:/etc/network# ifconfig
bond0 Link encap:Ethernet HWaddr b8:27:eb:b9:ac:dd
inet addr:192.168.7.155 Bcast:192.168.7.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:2476 errors:0 dropped:0 overruns:0 frame:0
TX packets:254 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:172634 (168.5 KiB) TX bytes:282409 (275.7 KiB)
eth0 Link encap:Ethernet HWaddr b8:27:eb:b9:ac:dd
inet addr:192.168.7.155 Bcast:192.168.7.255 Mask:255.255.255.0
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:352 errors:0 dropped:0 overruns:0 frame:0
TX packets:254 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:40685 (39.7 KiB) TX bytes:29703 (29.0 KiB)
eth1 Link encap:Ethernet HWaddr b8:27:eb:b9:ac:dd
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:2124 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:131949 (128.8 KiB) TX bytes:252706 (246.7 KiB)
Das ist essentiell wichtig für den Switch denn es dürfen KEINE 2 unterschiedlichen MAC Adresen verwendet werden, sonst würde kein Load Sharing funktionieren im Trunk / LAG !
Entsprechend zeigt das auch der LAN Switch:
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
All 0100.0ccc.cccc STATIC CPU
All 0100.0ccc.cccd STATIC CPU
1 b827.eb63.cc67 DYNAMIC Fa0/1
1 b827.ebb9.acdd DYNAMIC Po1
Mit dem Aufruf von "bmon" kann man sich die laufende Lastverteilung ansehen:
# Interface RX Rate RX # TX Rate TX #
───────────────────────────────────────────────────────────────────────────────────
raspberry (source: local)
1 eth0 238.00B 1 66.00B 0
2 eth1 144.00B 2 0.00B 0
3 bond0 382.00B 3 66.00B 0
LAG / Trunking Syntax auf einen HP Procurve Switch:
Generell ist eine dedizierte Trunk Konfig bei den billigen HP ProCurve Switches nicht zwindend erforderlich, denn HP hat per Default auf allen LAN Ports des Switches LACP im Passive Mode aktiviert.
Der Switch formt so von sich aus automatisch sofort einen dynamischen Trunk sofern die angeschlossenen Systeme LACP im Active Mode sprechen. Steckt man also den o.a. konfigurierten RasPi oder einen andere LAG an Switch Port 1 und 2 sieht es so aus:
HP-Switch# sh lacp
LACP
PORT LACP TRUNK PORT LACP LACP
NUMB ENABLED GROUP STATUS PARTNER STATUS
---- ------- ------- ------- ------- -------
23 Passive Dyn1 Up Yes Success
24 Passive Dyn1 Up Yes Success
HP-Switch#
HP-Switch# sh trunks
Load Balancing
Port | Name Type | Group Type
---- + -------------------------------- --------- + ----- -----
1 | 10/100TX | Dyn1 LACP
2 | 10/100TX | Dyn1 LACP
HP-Switch#
Wer lieber auf Nummer sicher gehen will beim ProCurve definiert den Trunk fest und statisch.
Benutzt werden als Beispiel wieder die Ports eth 1 und eth 2 und der Trunk hat den logischen Namen trk1.
<config># trunk 1,2 trk1 LACP
<config># wr me
Alternativsyntax:
<config># trunk eth 1-2 trk1
<config># interface eth 1-2 lacp active
Fertig !
Wenn auf dem Switch z.B. das VLAN 10 auf dem Trunk (LAG) Interface untagged oder tagged übertragen werden soll:
<config>#vlan 10 untagged trk1
Tagged:
<config>#no vlan 10 untagged trunk1
<config>#vlan 10 tagged trk1
Konfig danach immer sichern mit:
<config>#wr me
Weitergehende Infos zum Trunking, Link Aggregation mit HP Switches findet man HIER.
Teaming / Trunking Beispiel Ruckus / Brocade ICX Switch:
lag "TestLAG" dynamic id 1
ports ethernet 1/1 to 1/2
primary-port 1/1
deploy
port-name Standard LACP LAG ethernet 1
!
ICX-Switch#sh lag
Total number of LAGs: 1
Total number of deployed LAGs: 1
Total number of trunks created:2 (27 available)
=== LAG "TestLAG" ID 1 (dynamic Deployed) ===
LAG Configuration:
Ports: e 1/1 to 1/2
Port Count: 2
Primary Port: 1
Trunk Type: hash-based
Deployment: HW Trunk ID 1
Port Link State Dupl Speed Trunk Tag Pvid Pri MAC Name
1/1 Up Forward Full 100M 1 Yes 1 0 bb7e.2408.5f81 Standard LAG
2 /2 Up Forward Full 100M 1 Yes 1 0 bb7e.2408.5f81
Port [Sys P] [Port P] [ Key ] [Act][Tio][Agg][Syn][Col][Dis][Def][Exp][Ope]
1/2/1 1 1 20002 Yes L Agg Syn Col Dis No No Ope
1/2/2 1 1 20002 Yes L Agg Syn Col Dis No No Ope
Teaming / Trunking Beispiel eines preiswerten Web-Smart Switch Cisco SG-200er Serie:
Zuerst ist der Trunk ch1 zu definieren mit den Ports (Hier Port 7 und 8)
Durch Überprüfung des Trunk Status kann man sehen ob der LACP Trunk / LAG korrekt aufgebaut wurde und aktiv ist (UP):
Optional: Wenn man den Trunk / LAG in einem spezifischen VLAN oder als Tagged Trunk gesetzt haben will muss man dieses natürlich noch entsprechend in den VLAN Settings definieren: (Entfällt natürlich wenn der Trunk im Default VLAN 1 ist !)
Internet Mobilfunk Zugang mit UMTS USB-Stick einrichten
Die einfachste Option ist die Nutzung eines Tethering (Hotspot) fähigen Smartphones. Die Anbindung per WLAN ist identisch zu oben.
Ein Praxisbeispiel für die Anbindung per USB erklärt dieser Forenthread im Detail.
Auch wenn man den Raspberry Pi Server fernab von jedem DSL, Kabel TV oder WLAN betreiben will ist da ja immer noch UMTS, oder sogar LTE. Der Zugriff mit einem UMTS USB Stick ist schnell eingerichtet.
Das bekannte apt install ppp wvdial installiert die benötigten Software Packete. Hat man den Stick eingesteckt zeigt ein lsusb:
root@raspberry:/home/pi# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Das der UMTS Stck sauber erkannt wurde. Wer es genau wissen will checkt auch nochmal mit dmesg:
usbserial: USB Serial support registered for GSM modem (1-port)
option 1-1.2:1.0: GSM modem (1-port) converter detected
usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
Das UMTS Modem (hier ein billiger "Aldi" Stick) ist also erkannt und auf die Schnittstelle ttyUSB0 gesetzt.
Unter dem Verzeichnis /etc editiert man jetzt die Datei wvdial.conf mit dem Nano Editor und passt diese entsprechend seiner SIM Karte bzw. Providers an:
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
Baud = 460800
New PPPD = yes
# Ersetzen mit der Stick Schnittstelle, i.e. ttyUSB0
Modem = /dev/ttyUSB0
ISDN = 0
[Dialer umts]
Dial Command = ATD
Carrier Check = no
# Ersetzen mit dem Wählstring. *99# oder *99***1#
Phone = *99#
Password = t-mobile
Username = tm
Stupid Mode = 1
# Ersetzen mit dem APN, z.B. "web.vodafone.de"
Init4 = AT+CGDCONT=1,"IP","internet.t-mobile"
Dial Attempts = 2
Idle Seconds = 0
Wichtig ist hier der sog. APN der entsprechend der SIM und des Providers angepasst werden muss ! Eine APN Übersicht der Mobilfunk Provider findet man z.B. hier.
Das war schon (fast) alles !
Man kann nun mit dem Kommando wvdial umts ( Das "umts" bezieht sich auf den frei wählbaren Namen in der [Dialer "xyz"] Definition oben ) einen ersten UMTS Mobilfunk Verbindungstest machen um zu sehen ob die UMTS Einwahl fehlerfrei funktioniert:
root@raspberry:/home/pi# wvdial umts
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet.t-mobile"
AT+CGDCONT=1,"IP","internet.t-mobile"
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Apr 22 21:46:21 2014
--> Pid of pppd: 2459
--> Using interface ppp0
--> local IP address 172.2.56.174
--> remote IP address 172.2.64.164
--> primary DNS address 172.34.10.10
--> secondary DNS address 172.34.10.11
Anhand der via PPP vom Mobilfunk Provider übermittelten IP Adressen sieht man das die UMTS Einwahl funktioniert. Wer die Verbindung so immer manuell mit wvdial aufbauen will muss nichts mehr weiter machen. CTRL C stoppt die Verbindung wieder.
Zusammen mit dem oben vorgestellten Accesspoint z.B. als "UMTS Taschenrouter" oder wenn der RasPi Server irgendwo autark ohne DSL automatisiert steht, möchte man aber die UMTS Verbindung selbstständig beim Booten aufbauen.
Dazu ist die Datei /etc/network/interfaces anzupassen und um die Schnittstelle ppp0 zu ergänzen:
auto ppp0
iface ppp0 inet wvdial
provider umts
# pre-up /usr/local/bin/setPIN.sh
⚠️ Ein Wort zur PIN auf der SIM Karte !
Einfacher ist es die PIN Abfrage abzuschalten auf der SIM. Man muss das SIM dann nicht entsperren vor der Einwahl. Wer auf diese Sicherheit aber nicht verzichten möchte erzeugt mit dem Nano Editor ein kleines Shell Script setPIN.sh mit folgendem Inhalt:
#!/bin/bash
echo "AT+CPIN=1234\n\r" > /dev/ttyUSB0
Nun kann man mit dem Kommado setPIN.sh manuell die Karte entsperren und zusätzlich das Kommentar "#" vor dem pre-up Kommando in der Datei etc/network/interfaces oben entfernen um das automatisiert vor der UMTS Einwahl auszuführen.
Damit ist nun der grundlegende Teil der RasPi Server Installation an sich und der Netzwerk Installation abgeschlossen.
Die jetzt folgenden Kapitel im Tutorial beschreiben die Einrichtung der einzelnen Netzwerk Management Dienste und Funktionen.
Kapitel 2. Die Netzwerk Management Dienste und ihre Einrichtung
Basisdienste sind die Syslog Anpassung zum Empfang von Log Meldungen, ein Webserver mit PHP, FreeRadius für sicheres LAN und WLAN, RS-232 Terminalserver zum Fernwarten von Konsolen, TFTP Server für den Upload von Imagedateien. Alle diese Dienste liegen dank Debian Basis als fertige Pakete vor die mit einfachen Kommandos nur installiert werden müssen.
Wer viele Daten vorhalten will entscheidet sich also schon gleich am Anfang für eine größere SD Flash Karte mit 8GB oder mehr.
Man spielt nun die wichtigsten Pakete ein:
apt install apache2
installiert den Webserver Apache 2
apt install php
Installiert PHP5 dazu.
Wenn man jetzt die IP Adresse des Pi im Webbrowser eingibt, dann erscheint eine kurze Begrüssungsseite.
Die HTML Dateien für den Webserver sind unter /var/www/ zu finden.
Analog dazu installiert man mit...
apt install freeradius
...den FreeRadius Server
apt install mrtg mrtg-rrd rrdtool snmp snmpd snmp-mibs-downloader
...die grafische Performance Überwachung MRTG / RRD
apt install minicom
...ein serielles Terminal
apt install ser2net
...den Telnet zu Seriell Terminalserver (Fernwartung Cisco Konsole und ser. Konsoler anderer Hersteller etc.)
Remoten Zugriff einrichten
Mit Windows Remote Desktop (RDP) oder VNC auf den RasPi zugreifen
Update:
Mit dem aktuellen Raspbian und der neuen PIXEL Oberfläche wird nun ein VNC Server per Default installiert so das die unten beschriebene VNC Server Installation obsolet geworden ist. Der Default VNC Server funktioniert NICHT zusammen mit xrdp !
Bevor man also xrdp installiert muss der VNC Server mit sudo apt purge realvnc-vnc-server entfernt werden ! Erst dann ist der xrdp Server zu installieren.
Bei einem so kleinen Rechner wie dem Raspberry Pi ist es oft umständlich Tastatur, Maus und Monitor anzuschliessen um mit der grafischen Windows Oberfläche zu arbeiten.
Gerade Anfänger fühlen sich aber sicherer auf einem Windows GUI als auf der Kommando Ebene.
Einfacher und bequemer geht das natürlich mit einer grafischen Fernsteuerung ala Windows RDP über das vorhandene Netzwerk. Der Raspberry kann natürlich beides, sowohl RDP als auch VNC.
Hier die ToDos für Windows RDP (Remote Desktopverbindung):
- apt update
- apt dist-upgrade
- apt install xrdp
Auch ein VNC Server ist schnell mit apt install tightvncserver installiert. Apple Macs haben wie Windows RDP einen VNC Client von sich aus gleich an Bord. Wobei Apple Macs auch die Option des kostenlosen Microsoft RDP Clients aus dem App Store haben.
Nach der Installation ruft man den Server einmal mit tightvncserver auf, worauf dieser nach einem Terminal Passwort fragt das man ihm eingibt.
Ist das erledigt startet man den Server mit vncserver, Fertig...!
Von Windows aus nimmt man einen VNC Viewer wie UltraVNC oder RealVNC und gibt als Server IP ein <ip_adresse_raspi>:5901
Apple Mac User haben es mit dem bordeigenen VNC Client noch einfacher:
Klick auf --> "Gehe zu" --> Mit Server verbinden --> vnc://<ip_adresse_raspi>:5901
Analog ist die Prozedur bei der VNC App bei iPad, iPhone und Android Smartphones.
(Screenshot einer VNC Verbindung zur Anzeige der unten beschriebenen GPS/NTP Funktion)
Einen Nachteil hat diese einfache Installation: Nach einen reboot des Raspberry muss man manuell mit der Eingabe "sudo vncserver" den VNC Server wieder neu starten. Aber keine Angst auch das lässt sich automatisieren.
Dieser_Link erklärt wie das einfach zu bewerkstelligen ist.
Einfacher ist da dann RDP, das bleibt auch nach einem Reboot erhalten und auch der Mac supportet es mit dem kostenfreien Download der Microsoft_RDP_App aus dem Apple Store für Mac und iPhone / iPad.
Die andere Alternative ist der einfache Zugang über eine Web Browser Verbindung wie sie folgenden Kapitel beschrieben wird.
! Nochwas zu RDP und VNC:
Der Mauzeiger hat seit Raspian Jessie sowohl mit RDP als auch mit VNC (apt install tightvncserver) ein hässliches Kreuz statt des üblichen Mauszeigers auf dem Remote Schirm.
Das bekommt man ganz einfach weg:
- Ins User Home Verzeichnis gehen. Hier ist das /home/pi oder entspr. ins Home Verz. aller User die remote zugreifen wollen.
- dort eine Datei mit dem Namen .xsessionrc erzeugen mit nano .xsessionrc (Man achte auf den Punkt vor dem Dateinamen !!)
- Diese hat folgenden Inhalt: xsetroot -cursor_name left_ptr&
- Sichern der Datei mit Ctrl o und dann Ctrl x
- Ausführbar machen mit chmod ugo+x .xsessionrc
- Idealerweise wiederholt man das für den Root User unter /root und alle anderen User in ihren /home Verzeichnissen, dann verschwindet da auch das hässliche Remote Kreuz im Mauszeiger.
- Update: Mit dem aktuellen Raspbian (Stand Juli 2019) taucht dieser Cursor Fehler nicht mehr auf so das der Fix obsolet ist.
Per Bluetooth auf die RasPi Konsole zugreifen
Auch der drahtlose Zugriff via Bluetooth auf die RasPi Konsole ist bei den mit BT ausgestatteten Modellen möglich. Bei Modellen ohne BT hilft ein kleiner Mini Blutooth USB Stick. Die einfache Prozedur zur Einrichtung ist HIER_beschrieben.
Mit einem Web Browser einfach auf die RasPi Konsole zugreifen
Eine sehr elegante und bequeme Option ist es den Shell Zugang via Webbrowser zu realisieren. Möglich macht das ein Tool namens Shellinabox was als Daemon startet und einen eigenen Webserver auf TCP Port 4200 mitbringt. Die installation der nötigen Komponenten ist wie immer mit:
apt install shellinabox minicom
schnell erledigt.
Danach editiert man die Datei /etc/default/shellinabox und ändert die Konfiguration in:
SHELLINABOX_ARGS="-t -s /:LOGIN -s /termi:pi:pi:/usr/home/pi:/usr/bin/minicom --no-beep"
Gibt man jetzt im Webbrowser http://<IP_Adr_RasPi>:4200 kann kann man den Zugang schon testen und man landet so auf der Login Shell.
So hat man auch einen remoten Zugang ganz einfach über eine simple Web Browser Verbindung.
Wie man das ganze jetzt mit einem seriellen Terminal verheiratet erklären die folgenden Schritte:
Um jetzt z.B. an eine über einen USB zu Seriell Adapter angeschlossene serielle Konsole zu kommen, um Switches und Router mit einem seriellen Konsolenzugang zu konfiguriren, ruft man das serielle Terminal "Minicom" mit minicom -s auf.
Hier konfiguriert man den seriellen Port auf /dev/ttyUSB0 und stellt die Baudrate auf die üblichen 9600 Baud mit 8N1 Parity und Stoppbits ein. Die Hard- und Software Flow Control schaltet man ab. Danach wird die Konfig als Default Konfig (save as dflt) abgespeichert.
Als Testlauf ruft man jetzt minicom ohne Parameter auf und sollte gleich auf der seriellen Konsole sein. CTRL A-Z beendet das Terminal wieder.
Jetzt wieder den Browser starten und http://<IP_Adr_RasPi>:4200/termi aufrufen.
Et voila'... das sollte jetzt die serielle Konsole im Webbrowser zeigen !
Wer die Konsole im klassischen Terminal Look mit hellgrüner Schrift auf schwarzem Hintergrund möchte, findet HIER eine Anleitung wie das farblich anzupassen ist.
Netzwerk Management und Monitoring Funktionen
Browser basierte Voucher (Einmalpasswort) Verwaltung für ein LAN/WLAN Gastnetz mit Hotspot
Eine Top Anwendung die hier im Forum oft nachgefragt wird um die Passwort Verwaltung in Gastnetzen erheblich zu vereinfachen !
Diese Funktion bietet für kleine Pensionen, Cafes, Hotels oder Firmen mit einem Gast WLAN Hotsport oder allgemein für die Zugangskontrolle zu Gastnetzen, eine auch für Laien (Frontdesk) sehr einfache Verwaltung von Gäste Einmalpasswörtern (Gästetickets) mit einem Web Browser und auch den gleichzeitigen Versand dieser Tickets auf die Mobiltelefone der Gäste papierlos per SMS.
Die Installation ist auf dem kleinen Raspberry Server im Handumdrehen gemacht...
Grundlage hierfür sind die beiden Forums Tutorials zur generellen Einrichtung eines Gast Hotspot die man unbedingt vorher lesen sollte:
WLAN oder LAN Gastnetz einrichten mit einem Captive Portal (Hotspot Funktion)
und das darauf aufbauende Tutorial für die Web basierte Voucher (Eimalpasswort) Verwaltung.:
Voucher für pfSense online verwalten und optional Voucher per SMS verschicken
Im .zip File des PHP Voucher Tools ist zusätzlich ein PDF Dokument enthalten mit weiteren Informationen.
Der Raspberry Server bietet somit die Möglichkeit ohne große Investition in Server Hardware eine sehr komfortable Voucher Verwaltung für kleines Geld und minimalem Aufwand zu realisieren.
Das er nebenbei auch noch die Benutzer rechtssicher mittloggt (Störerhaftung) ist ein weiterer positiver Nebeneffekt dieser Lösung.
Los gehts....
Zu den oben bereits installierten Paketen apache2 und PHP muss noch ein MySQL/MariaDB Server mit PHP Support installiert werden. Das geht wie gehabt als Root User mit:
apt install mariadb-server php-mysql php-fpdf phpmyadmin
Während der Installation wird man nach einem Root Passwort für den MySQL Datenbank Server gefragt, das man sich unbedingt notieren sollte !
Wer die Installation vorab schon auf korrekte Funktion testen möchte, erzeugt mit dem nano Editor eine kleine Datei im Web Server Root Verzeichnis /var/www mit dem Namen info.php und folgendem Inhalt
<?php
phpinfo();
?>
Das Tool phpmyadmin dient zur grafischen Bedienbarkeit der Datenbank wem das CLI zu kompliziert ist. Es kommt in deutscher Sparche daher wenn man es installiert und wird im Webbrowser mit <ip_adresse_raspi>/phpmyadmin aufgerufen. Login ist root und das bei der Installation vorab abgefragte Passwort.
Sind alle Pakete fertig installiert, erzeugt man die Voucher Datenbank in MySQL/MariaDB. Es ist aus Sicherheitsgründen empfehlenswert einen separaten Datenbank User zu installieren als das Root Passwort zu benutzen. Das ist aber kein Muss sondern Geschmackssache.
Dazu nutzt man das Kommando mysql wie folgt:
mysql -u root -p
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)
und dann mit
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
(Das Fettgedruckte eingeben)
..einen neuen Benutzer "admin" und weist ihm entsprechende Datenbank Rechte zu.
Wie gesagt: wer möchte kann hier auch den Root User verwenden der während der Installation angelegt wurde.
("test123" ist hier ein Passwort Beispiel und sollte entsprechend durch ein eigenes ersetzt werden !)
Mit
mysql -u admin -p
mysql> CREATE DATABASE voucher;
Query OK, 1 row affected (0.01 sec)
mysql> exit
Bye
Eine neue Datenbank mit dem Namen "voucher" für die Gast Vouchers.
Die MySQL Vorbereitungen sind damit abgeschlossen !
Jetzt kopiert man mit WinSCP oder direkt mit dem Raspberry die Voucher Server PHP Installationsdatei vouchergenerator1x.zip ins Webserver Dokumentverzeichnis /var/www/ und entpackt es dort mit dem Kommando unzip vouchergenerator1.x.zip. (Aktuell ist derzeit die Version 1.5)
Es erzeugt dort beim Entpacken selber ein entsprechendes Verzeichnis das man der Einfachheit halber mit "mv vouchergenerator1.x vouchergenerator" umbenennen sollte, was aber kein Muss ist.
Wichtig: Detailierte Installationshinweise findet man zusätzlich in der im .zip Archiv enthaltenden PDF Datei.
Das /temp UND das /includeVerzeichnis sind beide unbedingt noch mit chmod 777 temp bzw. chmod 777 include beschreibbar zu machen !
Nun startet man die Installation des Voucher Tools mit
http://<server-ip>/vouchergenerator/setup.php
die dann alle relevanten Daten abfragt und sofern die Installation erfolgreich war, dies auch meldet mit:
Danach kann man nun für mehrere Zeitlimits und auch für die Voucher Vergabe per SMS die Voucher Tabellen anlegen. Hier im Tutorial Beispiel für 30 Minuten, 2 Std. und 8 Std.:
Fertig.... !
Über die Upload Funktion werden nun die von pfSense oder OpenSense generierten und exportierten Excel CSV Voucher Dateien hochgeladen. Ob das erfolgreich war meldet die Voucherverwaltung über einen Klick auf Statistik:
(Hier als Beispiel mit 100 generierten Vouchers in der CSV Datei)
Der Voucherserver ist jetzt sofort einsatzbereit oder man kann weiteres Finetuning machen wie die Verteilung der Vouchers über SMS via Provider http://www.smsflatrate.net oder das Anlegen weiterer Voucher Verzeichnisse z.B. für 3 oder 8 Stunden Hotspot Zugang unterschiedlicher Benutzer Zeitspannen.
Achtung: Zur SMS Versendung via http://www.smsflatrate.net benötigt man VOR dem Ausführen des obigen Setups einen dortigen Prepaid Account um eine API (Gateway Key) zu bekommen.
Diese API Ziffer trägt man dann beim Setup unten in das Feld "smsflatrate.net Gateway Key" ein !
Ein grafischer Logging Server (Syslog) mit Web Oberfläche
Dieser Dienst dient zum zentralen Empfang von Log Meldungen aktiver Komponenten im Netzwerk wie Switches und Router oder auch Server.
Zusätzlich zur obigen Installation von Apache2 und PHP5 muss man noch ein Grafikpaket installieren um die grafischen Statistiken des Loganalyzers ausgeben zu können.
apt install php-gd
erledigt das wieder im Handumdrehen.
Kollege @lcer00 hat zudem ein Syslogserver Setuptutorial erstellt was von extern eingehende Syslog Meldungen sauber sortiert.
Bevor man nun zur grafischen Oberfläche für den Syslog Server kommt, muss man diesen erst etwas anpassen damit er Log Meldungen von externen Geräten im Netzwerk an ihn akzeptiert.
Dazu editiert man mit dem nano Editor die Datei /etc/rsyslog.conf. Hier entkommentiert man 2 Zeilen indem man das "#" davor entfernt:
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
Dazu editiert man wieder die Datei /etc/rsyslog.conf und fügt folgende Zeilen hinzu:
# Logging external network devices
local7.* /var/log/cisco.log
# local4.* /var/log/netzlog
# local7.debug /var/log/netzlog
# local7.warn /var/log/netzlog
Mit systemctl restart rsyslog unter startet man dann den Syslog Server neu um die Änderungen zu aktivieren oder macht einen Reboot mit "reboot".
Das Kommando tail -f /var/log/syslog zeigt eingehende Log Meldungen in Echtzeit an, die man z.B. mit dem Kommando logger Hallo hier kommt was rein... provozieren kann.
Mit less syslog oder less cisco.log kann man sich die Log Dateien mit den eingehenden Meldungen der externen Komponenten unter /var/log ansehen.
Auf die Dauer natürlich langweilig und nicht gerade komfortabel, deshalb muss ein grafisches Frontend her.
Das kommt in Gestalt einer PHP Anwendung mit dem Namen "LogAnalyzer" und kann hier kostenlos runtergeladen werden:
http://loganalyzer.adiscon.com/downloads
Die Installation ist recht einfach und unter Windows benötigt man das Tool WinSCP um diese Datei auf den Pi zu übertragen, die dann im Verzeichnis /home/pi landet. Mac und Linux Nutzer nehmen das bordeigene scp Kommando dafür.
Dann führt man folgende Schritte aus:
- tar.z Datei mit "tar xzf <dateiname>" entpacken
- Im Webserver Verzeichnis /var/www/html mit "mkdir loganalyzer" ein Verzeichnis erstellen
- Alle Dateien im entpackten /src Verzeichnis des Loganalyzer Programm Archivs von oben dahin kopieren mit mv * /var/www/html/loganalyzer
- Zwei Dateien aus dem /contrib Unterverzeichnis (configure.sh und secure.sh) ebenfalls mit cp *.sh /var/www/html/loganalyzer dorthin kopieren und mit chmod +x configure.sh secure.sh ausführbar machen und dann die Datei mit dem Aufruf ./configure.sh im Verzeichnis ausführen.
- Webbrowser öffnen, auf http://<ip_adresse_pi>/loganalyzer gehen. In der erscheinenden Error Meldung ist ein Link zum weitermachen den man anklickt.
- Der gesamte Rest ist grafisch Menü geführt und man kann die Defaults einfach abnicken.
Eine interessante Anwendung ist die grafische Log Überwachung eines Radius Servers mit erlaubten oder abgewiesenen Benutzern. Details zu diesem Setup bietet das hiesige Freeradius Tutorial.
Wer das Netzwerk Log mit den local7 Messages (z.B. Cisco u.a. Switch Hersteller) gefiltert ansehen will, editiert die config.php Datei unter /var/www/loganalyzer und fügt unter dem Abschnitt "$CFG['DefaultSourceID'] = 'Source1';" am Ende eine 3te Source ein (2 wird von MySQL benutzt !):
$CFG['Sources']['Source3']['ID'] = 'Source3';
$CFG['Sources']['Source3']['Name'] = 'Netzwerk';
$CFG['Sources']['Source3']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source3']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source3']['LogLineType'] = 'syslog';
$CFG['Sources']['Source3']['DiskFile'] = '/var/log/netzlog';
Hat man alles richtig gemacht sollte das zu sehen sein:
(Beispiel hier mit 2 Cisco Log Meldungen)
Ein Schnelltest ob alles angezeigt wird liefert die Eingabe von logger Test123. Die Syslog Message "Test123" sollte dann im Syslog erscheinen.
Natürlich ist der Loganlyzer auch in deutscher Sprache (und auch andere Sprachen) verfügbar:
http://loganalyzer.adiscon.com/plugins/translations
Die obige Installation hat Deutsch aber schon per Default installiert so das nur eine klitzekleine Änderung der Konfig Datei vonnöten ist:
Mit dem nano Editor öffnet man die Datei /var/www/loganalyzer und sucht nach der Zeile:
$CFG['ViewDefaultLanguage'] = "en";______________ Sets the default display language
Das "en" ersetzt man ganz einfach mit einem "de" und schon ist beim nächsten Aufruf die Seite in Deutsch.
FritzBox Betriebsdaten per Script auslesen
Dafür hat Forumskollege @colinardo ein fertiges Script erstellt:
Informationen aus dem Webinterface einer Fritz!Box via Shellscript auslesen
FritzBox Anschlußgüte grafisch überwachen
https://www.heise.de/select/ct/2022/19/2220609402015452837Mit Nagios Netzwerk Komponenten und Server überwachen
Auch hier werden im ersten Schritt wieder die Grundpakete installiert mit den bekannten Kommandos:
apt install nagios3
Bei der Installation wird das Nagios Login Passwort abgefragt, das also bitte gut merken.
Das Nagios Web Frontened kann man nach der Installation direkt mit http://<RasPi_ip>/nagios3 in einem Webbrowser aufrufen. Der Benutzername zum Einloggen ist nagiosadmin.
Die Konfig Dateien zum Bearbeiten befinden sich unter /etc/nagios3/objects. Dort ist auch eine Default Datei switch.cfg die man für eine erste quick and dirty Installation anpassen kann
define host{
use generic-host
host_name win-srv
alias Server 2012
address 172.16.1.200
hostgroups server
icon_image www_server.png
}
define host{
use generic-switch
host_name cisco-switch
alias Cisco SG-200
address 172.16.1.1
hostgroups switches
icon_image switch40.png
}
define host{
use generic-switch
host_name pfsense
alias Firewall
address 172.16.1.253
hostgroups router
icon_image firewall_router.png
}
define hostgroup{
hostgroup_name switches
alias Network Switches
}
define hostgroup{
hostgroup_name router
alias Network Router
}
define hostgroup{
hostgroup_name server
alias Network Server
}
# Service definieren zum Ping Erreichbarkeits Check
define service{
use generic-service
host_name win-srv
service_description PING
check_command check-host-alive
normal_check_interval 5
retry_check_interval 1
}
define service{
use generic-service
host_name cisco-switch
service_description PING
check_command check-switch-alive
normal_check_interval 5
retry_check_interval 1
}
define service{
use generic-service
host_name pfsense
service_description PING
check_command check-router-alive
normal_check_interval 5
retry_check_interval 1
}
# Monitor der Verfuegbarkeit mit SNMP
define service{
use generic-service ; Inherit values from a template
host_name win-srv
service_description Uptime
check_command check_net_snmp!-C public -o sysUpTime.0
}
define service{
use generic-service ; Inherit values from a template
host_name pfsense
service_description Uptime
check_command check_net_snmp!-C public -o sysUpTime.0
}
Damit ist erstmal eine einfache Grundkonfiguration gegeben.
Netzwerk Monitoring mit MRTG / RRD, Cacti oder Observium via SNMP
Ein hier im Forum häufig auftauchender Thread: "Wie sehe ich die Auslastung meines Routers oder Switches...?"
Cacti ist ein komplettes fertiges grafisches Frontend auf Basis der RRD Tools. Es ist etwas einfacher zu Installieren und zu Konfigurieren als MRTG weil es als fertiges Paket kommt.
Die Installation des Pakets erfolgt in gewohnter Weise mit
apt install cacti
Der Installer installiert alle erforderlichen Dienste und startet sie. Ist die Installation durchgelaufen startet man lediglich einen Web Browser und gibt dort ein http://<ip_adresse_RasPi>/cacti
Cacti zeigt dann den Status an und man kann gleich loslegen....
Der nächste Abschnitt beschreibt die Installation des ebenfalls wie Cacti populären MRTG_Tools für die kontinuierliche, grafische Performance Überwachung von Netzwerk Komponenten wie Server, Router oder Switches mit einer Tages-, Wochen- und Jahresübersicht.
Alles analog wie Cacti nur feiner customizebar wenn man etwas Handarbeit nicht scheut.
Die entsprechenden Pakete sollten mit apt install mrtg mrtg-rrd rrdtool snmp snmpd wie oben beschrieben installiert sein !
Zusätzlich installiert man nun dazu im Webserver Verzeichnis ein separates Verzeichnis für die MRTG Daten:
mkdir /var/www/mrtg und ändert mit chown www-data:www-data /var/www/mrtg den Benutzer, damit Apache in das Verzeichnis schreiben kann.
Leider gibt es ein Problem im SNMP Perl Modul (Stand 14.10.2012) so das etwas Editor Handarbeit zum Korrigieren dieses Fehlers erforderlich ist. Mit unserem bekannten nano Editor ist das aber im Handumdrehen erledigt !
Die entsprechende Datei ist /usr/share/perl5/SNMP_Session.pm die man mit dem nano editiert.
In Zeile 149 und Zeile 608 (Zeilenanzeige im nano mit <ctrl c>) ist dort der Text import Socket6; zu ersetzen mit der Zeile Socket6->import(qw(inet_pton getaddrinfo)); !
Im nano ist das recht einfach indem man <ctrl>_ (ctrl underline) eingibt und einfach die Zeilennummer (149 und dann 608) eintippt so das der Editor direkt an diese Stellen springt.
Mit Cut and Paste kann man dann diese beiden Zeilen überschreiben.
Ist das erledigt geht es nun daran SNMP (Simple Network Management Protocol) auf den Netzwerk Geräten zu aktivieren, denn MRTG liest diese Daten mit SNMP.
Bei einem Cisco IOS Switch oder Router sieht das z.B. dann so aus:
!
snmp-server community public RO
snmp-server community private RW
snmp-server location Rechenzentrum, Raum: 1
snmp-server contact Herr Admin, Tel.:1234
(snmp-server host 172.16.1.200) optional
!
Bei HP, Extreme, Enterasys, Ruckus ICX oder anderen CLI basierten Switches und Router sehen diese Konfig Zeilen identisch aus.
Bei einfachen WebSmart Switches wie z.B. D-Link, NetGear usw. sind im Konfig GUI diese Einstellungen zu machen:
bzw. hier ein einfacher Trendnet Switch:
Ein snmpwalk <ip_adresse_router/switch> -c public -v1 checkt ob das Netzwerk Gerät per SNMP ansprechbar ist. (Wer andere Community Strings als public für read-only verwendet muss das natürlich entsprechend anpassen !)
Ist das geschehen und hat man mit einem Ping die Verbindung zwischen Mangement Server und Router, Firewall oder Switch verifiziert, dann erzeugt der folgende Aufruf automatisch die MRTG Konfigurationsdatei:
cfgmaker --ifdesc=descr --global "Language: german" --global 'Options[_]: bits,growright' --output /home/pi/mrtg.cfg public@<ip_adresse oder domain_name>
(Mit IP oder Domain ist hier die Management IP des Servers, Routers oder Switches gemeint !!)
Jetzt kann man einen manuellen MRTG Probelauf starten und Daten mit
mrtg /home/pi/mrtg.cfg
abfragen. Anfängliche Fehlermeldungen kann man hier ignorieren, denn sie verschwinden spätestens nach dem 2ten oder 3ten Aufruf.
Sieht man mit ls /var/www/mrtg/ in das Webserver Verzeichnis für MRTG sieht man hier nun auch eine Menge Dateien mit den aktuellen grafischen Daten.
Nun gilt es noch eine HTML Index Datei dort zu erstellen damit man die Grafiken einfach mit einem Web Browser abfragen kann.
Auch das geschieht wieder automatisiert mit einem Skript:
indexmaker --output=/var/www/mrtg/index.html --title=Internet-Router /home/pi/mrtg.cfg
Fertig...
Nun reicht es mit dem Browser einfach auf http://<server_ip>/mrtg zu gehen und man kann die Daten betrachten.
Am Beispiel eines älteren Cisco 2514 Routers sieht das Ergebnis dann so aus:
(Hier mit zwei 10 Mbit/s Ethernet, VPN Tunnel und CPU Load)...und etwas wenig Traffic
Eine pfSense Firewall mit etwas mehr Traffic...:
Nutzbar ist diese Analyse auch auf virtuellen Routern o. Switches die mit Emulationssystemen wie z.B. GNS-3 nur in einer Laborumgebung simuliert werden.
Nun will natürlich niemand manuell alle 5 Minuten ein MRTG Kommando senden um die Daten abzufragen.
Das übernimmt automatisch der CRON Dämon auf dem Server.
Man erzeugt mit dem nano Editor eine kleine Text Datei z.B. cronmrtg mit folgendem Inhalt:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/mrtg /home/pi/mrtg.cfg
Und ruft dann crontab cronmrtg auf.
Damit ruft der Server dann alle 5 Minuten die aktuellen Daten vom Netzwerk Gerät ab. Hat man mehrere Komponenten zu überwachen bekommt jedes eine MRTG Konfig Datei und auch einen Crontab Eintrag.
Mit crontab -l kann man checken ob der Cron Dämon sauber läuft.
Noch ein kosmetischer Tip:
Wer auch den oben beschriebenen Log Message Server (Syslog) laufen lässt wird nun sehen das jetzt die MRTG Cron Aktivität alle 5 Minuten den Syslog "vollmüllt" da alle 5 Minuten auch eine Log Message erzeugt wird.
Schnelle Abhilfe schafft wieder ein kleiner chirurgischer Eingriff in die Syslog Konfig Datei etc/rsyslog.conf die oben schon bei der Einrichtug des Syslog Servers beschrieben ist.
Den Eintrag
*.*;auth,authpriv.none -/var/log/syslog
*.*;auth,authpriv,cron.none -/var/log/syslog
Diese Anleitung zeigt die einfache Basis Konfiguration. Die MRTG Webseite hat noch viele Tips wie man den grafischen Output weiter optimieren oder verändern kann.
Die CPU Last Anzeige im obigen Screenshot bekommt man z.B. in die Ausgabe wenn man die mrtg.cfg Datei um die folgenden Zeilen ergänzt:
# Monitor the Cisco CPU usage
Target[router-inet1-CPU]: 1.3.6.1.4.1.9.2.1.58.0&1.3.6.1.4.1.9.2.1.58.0:public@<ip_adresse>:
MaxBytes[router-inet1-CPU]: 100
UnScaled[router-inet1-CPU]: dwmy
Options[router-inet1-CPU]: integer gauge noo
Title[router-inet1-CPU]: CPU Load on Internet 1
PageTop[router-inet1-CPU]: <H1>CPU Load</H1>
Analog lassen sich so auch bei Microsoft und Linux Servern und auch beim Management Server selber die CPU Last, Plattenfüllstände, NICs usw. abfragen.
Hilfreiches Tool zum troubleshooten von SNMP außer dem Bordmittel snmpwalk ist der auch kostenfreie SNMP_Tester von Paessler.
Wer eine richtig schicke Bedienoberfläche haben möchte für MRTG / RRD der installiert sich Observium.
Observium ist ähnlich wie Cacti, und MRTG bietet aber noch weitaus mehr grafische_Auswertemöglichkeiten.
Bequemerweise existiert hier ein einfaches Installationsskript das man einfach aufruft und das Observium gebrauchsfertig installiert.
wget http://www.observium.org/observium_installscript.sh
Dann macht man dieses Skript ausführbar mit: chmod +x observium_installscript.sh
Und startet dann das Installationsskript mit:
./observium_installscript.sh
Alle relevanten Parameter werden dann Menü geführt abgefragt.
Ist alles sauber und fehlerlos durchgelaufen, startet man einen Browser und gibt dort einfach die IP Adresse des Raspberry Pis ein um die Login Maske von Observium zu erhalten.
Über Device und +Add fügt man dann Netzwerk Geräte hinzu die man überwachen möchte. Hier gibt man einfach deren IP Adresse ein und den SNMP Community String und schon kann man loslegen.
Observium Live Screenshot (Ruckus Switch)
Netzwerk Traffic Analyse mit IPFIX, NetFlow oder sFlow
Sehr viel interessanter und detailierter wird die Auswertung wenn man IPFIX, NetFlow oder sFlow fähige LAN Switches oder Router im Netzwerk hat, denn Ntop wertet auch eingehende sFlow Pakete aus.
So ist man in der Lage Switch- und Router Ports im gesamten Netzwerk, sprich von allen Endgeräten und ihren IP Flows zu analysieren die nicht direkt mit dem eth0 Interface des Ntop Servers verbunden sind. Auch ein Traffic Accounting ist möglich mit kostenfreien Tools wie z.B. pmacct.
Mit sFlow / NetFlow bzw. IPFIX ist man so in der Lage sämtlichen Traffic eines Netzes quantitativ und qualitativ, egal wo, schnell und übersichtlich per Webbrowser zu analysieren.
Die Visualisierung mit NetFlow/IPFIX erklärt ein separates Forentutorial!
Eine Vielzahl derzeit aktueller Ethernet Switches am Markt supporten diese Flow Protocol Standards:
http://blog.sflow.com/2012/09/switch-configurations.html zeigt alle Hersteller.
Hier kann man auch gleich die zum jeweiligen Switch passende sFlow Konfig einsehen. Ntop bereitet diese sFlow Daten mit Hilfe des u.a. sFlow Toolkits auf und stellt sie entsprechend nach IP Adresse und Protokoll spezifisch grafisch dar.
Wem eine einfache, tabellarische und textbasierte Darstellung reicht kommt mit diesem einfachen Kommandotool, das sFlow Toolkit aus:
http://www.inmon.com/technology/sflowTools.php
bzw.
http://blog.sflow.com/2011/12/sflowtool.html
Das Tool und die Beispiel Scriptsammlung kann man entsprechend frei runterladen. Das geht am bequemsten direkt aus dem Github mit wget auf den RasPi:
wget https://github.com/sflow/sflowtool/archive/master.zip
wget http://www.inmon.com/bin/sflowutils.tar.gz
Wie üblich jetzt mit unzip master.zip entpacken und ins Verzeichnis sflowtool-master wechseln. Hier jetzt die folgenden Kommandos ausführen:
./boot.sh
./configure
make
make install
Fertig ! (Details dazu in der README Datei).
Damit das sFlow Tool die sFlow Daten des Switches an Ntop übergeben kann muss man den Ntop Dienst zunächst stoppen (ps -ax und dann Prozess ID mit kil stoppen)
Nun startet man Ntop neu mit:
sflowtool -4 -t | ntop -f -
Browser wieder wie oben mit http:/ /<ip_adresse_raspberry>:3000 auf NTop verbinden und schon sieht man nun sämtliche Teilnehmer, Protokolle und Lasten im Netzwerk grafisch sortiert gelistet und erhält so eine schnelle und umfassende Übersicht des eigenen Netzwerk Traffics im gesamten Netzwerk.
Für die erfolgreiche Ausführung der sFlow Analyse Beispiel Scripte (vorher entpacken mit tar xvzf sflowutils.tar.gz) ist mit apt install gawk noch die entsprechende awk Version zu installieren sofern nicht schon gemacht, damit die Scripte sauber laufen.
Zusätzlich muss man die Scripte noch editieren (nano) und das "#!/bin/awk -f in der ersten Zeile des Scripts durch ein #!/usr/bin/gawk -f ersetzen.
Der Skriptaufruf im Verzeichnis /home/pi :
sflowtool -4 | ./ipTrafficMatrix z.B. zeigt dann z.B. minütlich die IP Flows (Kommunikationspartner) oder die Top Talker (Stationen mit dem meisten Traffic Volumen) im Netzwerk auf dem sFlow Switch.
root@raspberrypi:/home/pi/utils# sflowtool -4 | ./ipTrafficMatrix
10:00 192.168.1.161 192.168.1.30 2
10:00 192.168.1.169 239.255.255.250 6
10:00 192.168.1.169 192.168.1.162 88
10:00 192.168.1.161 192.168.1.255 11
10:00 192.168.1.162 192.168.1.169 90
10:00 192.168.1.161 224.0.0.1 3
10:00 192.168.1.157 255.255.255.255 2
10:00 192.168.1.1 239.255.255.100 1 usw...
Wer möchte kann das auch im Hintergrund in eine Text Datei schreiben lassen mit sflowtool -4 | ipTrafficMatrix > traffic.txt &
sflowtool -h gibt einen Hilfstext aus und zeigt die gesamten Paramter die möglich sind.
(Der Parameter "-4" limitiert die Ausgabe auf IPv4 Traffic. Lässt man ihn weg wird IPv4 und IPv6 Traffic angezeigt.
IPv6 funktioniert im RasPi nur wenn es entsprechend wie im Kapitel "IPv6 ins Internet routen mit SixXS Tunnel" beschrieben, vorher aktiviert ist ! Im Default macht der RasPi nur IPv4.)
Grafische Netzwerk Protokollanalyse mit Ntop
Im Gegensatz zur obigen Performance- und Durchsatzanalyse kann man mit dem ntop Tool eine Protokoll Analyse fahren im Netzwerk und dort auch bestimmen wer Hauptnutzer ist mit welchen Protokollen.
Ideal ist das mit einer Kombination von LAN Switches die sFlow oder NetFlow supporten doch dazu später mehr...
Als allererstes installiert man wieder mit
apt install ntop rrdtool gawk
die dafür notwendigen Anwendungen. Hier werden während der Installation die Interfaces abgefragt und statt none kann man dort eth0 einsetzen und setzt zudem ein User Passwort womit die Installation abgeschlossen wird.
ntop bringt seinen eigenen Web Server mit ! Eine Installation des Apache ist also nicht erforderlich, stört aber auch nicht, da ntop einen eigenen Port TCP 3000 benutzt !
Ein Aufruf von http://<ip_adresse_raspberry>:3000 zeigt dann auch schon erste Ergebnisse:
Damit die RRD Tools in ntop sauber laufen ist noch etwas Handarbeit erforderlich und unbedingt folgende Anpassung zu machen:
chmod 755 /var/lib/ntop
mkdir /var/lib/ntop/rrd
chown -R nobody:nogroup /var/lib/ntop/rrd
Damit funktionieren dann auch die Statistik Übersichten und grafischen Top Talker Auswertungen:
Netzwerk Performance Test mit NetIO und iPerf3 / JPerf
Der Raspberry lässt sich ebenso als Benchmark Testserver für die Messung von Netzwerkdurchsatz und Performance im LAN, WAN und WLAN verwenden.
Natürlich ist das nur machbar mit Ethernet Geschwindigkeiten bis 100 Mbit, da der Raspberry nur einen Fast Ethernet Adapter onboard hat. Gigabit bleibt also außen vor, es sei denn man verwendet einen USB Gigabit Ethernet Adapter.
Auch dieser Adapter Workaround ist im Gigabit Umfeld aber nur bedingt nutzbar, da die USB 2.0 Schnittstelle des RasPi nicht mehr als 480 Mbit/s = 60 MByte/s hergibt. Technisch funktioniert es aber bis zu dieser Geschwindigkeitsgrenze.
Bei WLAN Durchsatztests wird es durch den verfügbaren Standard .11g, .11n, .11a usw. des USB WLAN Adapters und der aktuellen Feldstärke Situation bestimmt.
Viele kleine Netze und Heimnetze, insbesondere WLAN Netze, sind oft 100 Mbit/s Netze und lassen sich so sehr aussagekräftig überprüfen was die grundlegenden Übertragungsgeschwindigkeiten in der Praxis wirklich hergeben.
Insbesondere bei WLAN mit seinen dynamischen Geschwindigkeitsraten je nach Feldstärke Situation, sind diese Messungen immer sehr aufschlussreich !
NetIO und auch iPerf benutzt bewusst keine File Sharing Protokolle für die Messung, da diese mehr oder weniger die reine netzwerk Effizienz beeinflussen und damit das Messergebnis. Es misst rein auf UDP oder TCP Basis.
So ist auch eine Aussage über die Effektivität und Performance einzelner Filesharing und Übertragungsprotokolle im verwendeten Netz möglich, denn das ist die Differenz der mit NetIO gemessenen reinen Netzwerk Performance und dem Ergebnis mit einem File Sharing Protokoll.
Das NetIO Tool findet man zum Download auf der Webseite des Programmierers:
https://web.ars.de/netio/
Nach dem Entpacken findet man im Verzeichnis /bin die ausführbaren Programme für fast alle Betriebssysteme. Allerdings nicht direkt für den Raspberry, da der auf ARM CPU Basis arbeitet und das i386 Binary von Linux nicht funktioniert.
Das ist aber in Sekundenschnelle korrigiert, denn bequemerweise kommt der Quellcode im ZIP File gleich mit.
Man kopiert entweder mit "wget <Download URL>" gleich direkt oder mit WinSCP oder SCP das ZIP File auf den Raspberry in ein Verzeichnis z.B. "netio" was man vorher mit mkdir netio z.B. im Verzeichnis /home/pi erstellt hat.
Ein unzip netio132.zip entpackt es dort. Anschliessend übersetzt man den Quellcode auf dem Raspberry mit:
make linux
Ein anschliessendes ls -l zeigt das es nun eine ausführbare Programmdatei (x=executable) mit dem Namen netio im Verzeichnis gibt.
Mit ./netio kann man diese nun aufrufen und sieht die Kommandosyntax.
Wie man NetIO bedient für ein Testszenario ist unter anderem hier nachzulesen:
http://www.nwlab.net/art/netio/netio.html
Die Hilfe beim Aufruf von netio ohne Parameter ist aber auch für Laien selbsterklärend.
Kopiert man mit cp netio /usr/bin NetIO ins /usr/bin Verzeichnis, hat man es immer verfügbar egal in welchem Verzeichnis man sich befindet. (Mit rm -rf /netio kann man dann das angelegte Verzeichnis im Ordner /home/pi dann wieder löschen.
Auf einem Raspberry mit der IP 10.1.1.1 kann man nun z.B. NetIO in der Serverfunktion mit UDP mit ./netio -u -s starten.
Ein Test Client gibt dann in der Eingabeaufforderung netio 10.1.1.1 an und die Durchsatz Messung beginnt automatisch für unterschiedliche Paketgrößen.
Die Messergebnisse werden während der Messung aktuell auf Server und Client angezeigt !
Kommando Syntax ist ja bekanntlich nicht jedermanns Sache und Anfänger bevorzugen lieber eine grafische Oberfläche zur Bedienung. Das erfüllt das Tool iPerf3 in Kombination mit jPerf. Auch diese Installation ist wie immer im Handumdrehen auf dem RasPi erledigt:
iPerf befindet sich im Standard Software Repository und wird wie gewohnt mit
apt install iperf3 openjdk-8-jre
installiert. Ein "man iperf3" erklärt dann die komplette Syntax. Es gibt diverse Tutorials im Internet wie z.B. dieses hier.
Einfacher arbeitet man mit der grafischen Oberfläche jPerf die iPerf entsprechend steuert. Diese findet man unter https://code.google.com/archive/p/xjperf/downloads und muss zusätzlich zu iPerf installiert werden ! Auch das ist schnell gemacht....
Mit wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.goo ... kopiert man sie ins Verzeichnis z.B. /home/pi und entpackt das Archiv mit dem Kommando "unzip jperf-2.0.2.zip"
Wichtig: Nach dem Entpacken muss man die jperf Datei (Java) unbedingt noch ausführbar machen, was das Kommando
chmod 755 jperf*
In der grafischen Windows Oberfläche oder von remote mit VNC oder RDP Viewer, öffnet man ein Root Terminal und startet jetzt einfach ./jperf.sh oder gibt unter Start --> Run dann im Fenster /home/pi/jperf.sh ein und bedient dann iPerf bequem grafisch:
Verlässlicher Internet Speedtest mit dem RasPi
Mit dem RasPi lässt sich sehr gut und verlässlich die Internet Down- und Upload Speed eines Netzwerkes bestimmen. Dazu verwendet man das Tool speedtest-cli
https://github.com/sivel/speedtest-cli
Das Tool sucht automatisch nach einem Download Server in der Nähe um Provider Limitierungen zu minimieren und nutzt einen Protokoll unabhängigen Socket Speedtest.
Das Tool ist mit
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
root@raspi:/home/pi# ./speedtest-cli
Retrieving speedtest.net configuration...
Testing from COLT Technology Services Group Limited (1.2.3.4)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Duck Telekom (Entenhausen) [39.06 km]: 68.968 ms
Testing download speed................................................................................
Download: 11.34 Mbit/s
Testing upload speed................................................................................................
Upload: 5.59 Mbit/s
Ein Wort zur RasPi LAN Performance !
Hat man Internet Speeds >100Mbit ist der RasPi eine schlechte HW Wahl, denn durch die interne Anbindung des Ethernet LAN Interfaces an den internen USB Hub ist dessen Geschwindigkeit begrenzt. Es macht auch einen Unterschied ob man einen USB Gig Adapter benutzt oder das onboard LAN. Siehe hier:
https://notenoughtech.com/raspberry-pi/raspberry-pi-internet-speed/
Für die meisten der privaten DSL und Kabel TV Anschlüsse reicht es aber.
Netzwerk Sicherheit
Radius Zugangskontrolle für LAN oder WLAN Netze mit 802.1x
Die Installation des FreeRadius Servers zur Absicherung von LANs (802.1x) und vor allen Dingen WLANs beschreiben 3 detailierte Tutorials hier im Forum:
- Freeradius Management mit WebGUI
- Sichere 802.1x WLAN-Benutzer Authentisierung über Radius
- Netzwerk Zugangskontrolle mit 802.1x und FreeRadius am LAN Switch
Los gehts...
Man muss nach der o.a. Paketinstallation (apt install freeradius) und dem o.a. Radius Tutorial hier lediglich die etwas andere Verzeichnisstruktur beachten in dem die Konfigurationsdateien beim Raspberry Pi liegen. Das ist schon alles.
Alle FreeRadius Konfig Dateien liegen hier im Verzeichnis /etc/freeradius und unterhalb davon und müssen gem. o.a. Tutorial angepasst werden.
Die Zertifikatsdateien zum Generieren der individuellen Zertifikate findet man hier /usr/share/doc/freeradius/examples/certs/ Die Generierung läuft hier auch wieder gemäß o.a. Tutorial !
Hier die wichtigsten Schritte:
Die Zertifikats Erstellung muss man nur durchführen wenn man den Radius Server per Zertifikat überprüfen will. Das ist optional!
- Mit cd /usr/share/doc/freeradius/examples/certs/ ins Zertifikats Verzeichnis wechseln
- Hier zuerst mit rm -f *.pem *.der *.csr *.crt *.key *.p12 serial* index.txt* alle ggf. vorhandenen aten Zertifikatsdatenen löschen.
- Mit nano ca.cnf die Zertifikats Profil Datei editieren.
Im Bereich [ CA_default ] kann man den Parameter default_days auf 1826 Tage (5 Jahren) Gültigkeit setzen.
Im Bereich [certificate_authority] dann die entspr. Settings:
[certificate_authority]
countryName = DE
stateOrProvinceName = Radius
localityName = Frankfurt
organizationName = Firma-Meier
emailAddress = admin@meier.de
commonName = "Mein Radiustest"
Datei mit "ctrl o" und "ctrl x" sichern.
- WICHTIG: Im Bereich [ req ] die Radius Passwörter unter input_password und output_password identisch setzen ! Das sind die Passwörter die nachher auch auf Switch, Router oder AP gesetzt werden müssen !
- Jetzt kommt das eigentliche Server Zertifikat indem man mit nano server.cnf die Server Profil Datei editiert
- Dort ist lediglich im Bereich [CA_default] der Gültigkeitszeitraum identisch zum o.a. Root Zert. einzutragen (hier im Beispiel 1826, 5 Jahre)
- Ebenso identisch dort wieder unter [ req ] die Radius Passwörter unter input_password und output_password genau so setzen wie oben !
- Auch unbedingt sicherstellen das die Land, Email etc. Einstellungen im Bereich [server] wirklich identisch zu den obigen in ca.conf ist !!
- Das Kommando ./bootstrap ausführen das sämtliche Zertifikate erzeugt.
- Mit nano client.cnf wieder Profildatei editieren.
- Hier wieder alles input_password und output_password ,Gültigkeit, Land, Email etc. identisch setzen wie oben !
- Achtung: Hier im Bereich [client] den "Common Name" So setzen wie der Username dieses Clients für den Login lautet.
- make client.pem erzeugt das Client Zertifikat was dann unter "emailAddress.pem" ("user@example.com.pem") zu finden ist.
- Fertig, das wars.
Der Start des Radius Servers im Troubleshooting Modus erfolgt hier mit freeradius -X. Ansonsten lässt er sich über /etc/init.d/freeradius start | stop normal als Dienst starten und stoppen.
FreeRadius Server in Microsoft Server Active Directory Domain integrieren
WICHTIG: Für die FreeRadius Abfrage über ein angekoppeltes Active Directory ist es zwingend notwendig alle Konfigurations- und Testschritte wie sie unten im Kapitel 3 ("David u. Goliath") beschrieben sind umzusetzen !
Für die FreeRadius Konfiguration mit Microsoft AD ist dies erforderlich und wird hier vorausgesetzt.
Sofern also nicht alles so funktioniert wie im Kapitel 3 beschrieben, muss man hier nicht weitermachen !
Funktioniert alles so wie unten beschrieben sind folgende Dateien zu editieren und anzupassen:
/etc/freeradius/eap.conf
- Die Zeile default_eap_type = md5 ist zu ersetzen mit default_eap_type = peap
- Weiter zum Abschnitt #EAP-TLS und hier im Bereich "tls" die Zeile random_file = ${raddbdir}/certs/random ersetzen mit random_file = /dev/urandom .
- Unter dem Abschnitt "peap" sicherstellen das default_eap_type = mschapv2 entkommentiert ist.
- Die Zeile "ntlm_auth..." folgendermassen setzen
exec ntlm_auth { wait = yes program = "/usr/bin/ntlm_auth --request-nt-key --domain=PRIVAT --username=%{mschap:User-Name} --password=%{User-Password}" }
- Datei /etc/freeradius/users
DEFAULT Auth-Type = ntlm_auth
testweise ganz an den Anfang gesetzt.
Später, sollte man Mischbetrieb mit statischen User fahren, kann man diese wieder auskommentieren.
Möchte man statische User in der "users" Datei belassen die NICHT mit mschap authentisiert werden sollen, konfiguriert man diese VOR dem "Default Auth" Eintrag wie z.B.
testuser Cleartext-Password := "testuser", MS-CHAP-Use-NTLM-Auth := No
Das Statement "MS-CHAP-Use-NTLM-Auth := No" schaltet hier die Authentisierung gegen das AD aus so das der User lokal authentisiert wird.
Will man ausschliesslich nur gegen das Windows AD authentisieren, muss man noch die Datei mschap im Verzeichnis /etc/freeradius/modules mit dem nano editieren.
Dort muss im Kommentar Bereich # If ntlm_auth is configured below... die Konfig Zeile:
ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key......
entkommentiert werden (# davor entfernen) und der korrekte Pfad zur ntlm_auth Datei (hier /usr/bin) eingetragen werden.
Alle mschap Authentisierungen werden dann vom FreeRadius gegen das Windows Active Directory authentisiert !
Fast geschafft....
Zu allerletzt sind die beiden Dateien defaults und inner-tunnel unter /etc/freeradius/sites-enabled/ anzupassen.
Hier ist die Zeile ntlm_auth im Bereich "authenticate" hinzuzufügen:
authenticate {
...
ntlm_auth
...
}
Jetzt startet man FreeRadius mit /etc/init.d/freeradius restart neu oder noch besser erstmal zum Testen mit "freeradius -X" im Debugging Mode.
Bevor man nun gleich die Authentisierung mit Radius gegen das AD testet, ist es sehr wichtig das NTLM_AUTH Modul separat VORHER zu testen, denn das übergibt die Radius Daten an den AD Server !
Funktioniert das fehlerfrei wird auch der Rest dann fehlerfrei funktionieren !
root@raspberry:/home/pi# ntlm_auth --request-nt-key --domain=PRIVAT --username=user --password=test123
NT_STATUS_OK: Success (0x0)
Kommt die obige "Success" Meldung steht dem Radius Test mit dem ntradping_Tool nichts mehr im Wege.
Ebenso muss ein Test mit dem bordeigenen Test Tool radtest erfolgreich verlaufen:
root@raspberry:/etc# radtest user test123 localhost 0 radiustest
Sending Access-Request of id 138 to 127.0.0.1 port 1812
User-Name = "user"
User-Password = "test123"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=138, length=20
Entsprechend meldet der Debug Output des FreeRadius ebenfalls die korrekte Funktion:
Found Auth-Type = ntlm_auth
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group authenticate {...}
[ntlm_auth] expand: --username=%{mschap:User-Name} -> --username=user
[ntlm_auth] expand: --password=%{User-Password} -> --password=test123
Exec-Program output: NT_STATUS_OK: Success (0x0)
Exec-Program-Wait: plaintext: NT_STATUS_OK: Success (0x0)
Exec-Program: returned: 0
++[ntlm_auth] returns ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 138 to 127.0.0.1 port 48617
Finished request 1.
Läuft alles sauber durch (NT_STATUS=OK, Access Accept) ist der FreeRadius Server mit Microsoft AD Kopplung jetzt einsatzklar fürs LAN oder WLAN !
Er stellt damit eine einfache zentralisierte Benutzer Verwaltung im Netzwerk zur Verfügung das LAN oder WLAN entsprechend sicher macht und sehr einfach managebar für eine größere Anzahl von Usern.
Weitere Details dazu bietet das hiesige Tutorial zur Integration des FreeRadius in eine Microsoft AD Umgebung:
Ubuntu 14.04 - 16.04 - 18.04 - 20.04 LTS Server - Freeradius mit AD-Anbindung
TACACS+ Server zur Admin Zugriffskontrolle auf aktive Netz Komponenten
(Ab Debian Bullseye ist das u.a. tacacs+ Package nicht mehr im Repository enthalten. Vermutlich wegen der alten tcp_wrapper. Man muss also selber compilieren https://shrubbery.net/tac_plus/ oder einen alternativen Tacacs Server nutzen. https://www.pro-bono-publico.de/projects/tac_plus-ng.html)
TACACS+ ist der etablierte Standard nahezu aller Hersteller aktiver Netzwerk Komponenten um den Zugriff auf die Konfiguration von Routern, Switches usw. im Netzwerk nutzerabhängig zu steuern. Insbesondere um den Kommandoumfang für zusätzliche Administratoren oder Abteilungsadministratoren zu regeln und auch Änderungen zu dokumentieren.
Den Quellcode des TACACS+ Servers findet man auf dem FTP Server von Cisco ( ftp://ftpeng.cisco.com/pub/tacacs/ ) Ein Übersetzen ist allerdings nicht erforderlich, denn alle gängigen Linux Distros bringen ihn mit wie natürlich auch unsere auf dem Raspberry Pi Server.
Damit ist auch diese Installation im Handumdrehen gemacht.
Mit dem bekannten apt install tacacs+ installiert man alles Nötige auf dem Server.
Unter /etc/tacacs+ findet man eine gut dokumentierte Konfig Datei. Weitere Details zur TACACS+ Konfiguration findet man z.B. bei tacacs.org oder www.shrubbery.net/tac_plus/.
Ein einfaches TACACS+ Konfigurationsbeispiel für die Konfig Datei unter /etc/tacacs+/ ist z.B.:
accounting file = /var/log/tac-plus/account.txt
key = 123-my_tacacs_key
group = netadmin {
default service = permit
login = file /etc/passwd
service = exec {
priv-lvl = 15
}
}
user = test {
member = netadmin
}
Eine TACACS+ Konfiguration auf einem Netzwerk Switch oder Router sieht z.B. so aus:
!
aaa new-model
aaa authentication login default group tacacs+ local
aaa authentication enable default group tacacs+
aaa authorization exec default group tacacs+ local
!
tacacs-server host 192.168.255.254 key 123-my_tacacs_key
!
line con 0
login authentication default
!
line vty 0 15
login authentication default
!
Die TACACS man Pages auf dem Server und die oben zitierten Webseiten beschreiben weitere Optionen.
Terminal Server für den Zugriff auf eine serielle Konfig Konsole (Cisco, HP, Switches etc.)
Damit ist eine sog. reverse Telnet Session möglich die auf dem seriellen Adapter landet.
So kann man mit einem oder mehreren Standard USB-Seriell Adaptern einen seriellen Terminal Server im Miniformat betreiben.
Für Administratoren die öfter auf serielle Konsolen zur Konfiguration von Netzwerkgeräten wie Switches und Router oder auch Server, KVM etc. zugreifen müssen, ergibt sich so eine sehr bequeme Möglichkeit außerhalb des lärmenden RZ zu arbeiten.
Mit dem oben vorgestellten WLAN Accesspoint hostapd ist das dann sogar auch bequem drahtlos über WLAN möglich !
Zusätzlich zur Installation des ser2net Paketes, wie oben beschrieben, erfordert dieser Dienst noch einen Telnet Server den man jetzt mit
apt install telnet
installiert.
Nun die Konfiguration:
Man steckt ein Standard USB-zu-Seriell Kabel (Adapter) wie z.B. DIESES hier in einen der Pi USB Ports.
Das bekannte lsusb zeigt wieder, wie schon bei der WLAN Stick Installation, an ob der Adapter richtig erkannt wird:
root@raspberry:/etc/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Viele am Markt befindlichen USB-Seriell Adapter basieren auf dem Prolific PL2303 oder Silicon Labs Chipset, so das man davon ausgehen kann das alle Adapter dieser Art sicher automatisch erkannt werden.
Damit man nun eine serielle Switch oder Router Konsole am Cisco oder Komponenten anderer Hersteller erreichen kann, muss wieder die Konfig Datei dazu angepasst werden.
Wie immer findet man sie im Verzeichnis /etc unter /etc/ser2net.conf und passt dort wieder mit dem nano Editor eine Zeile an:
2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
2001:telnet:600:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner
2002:telnet:600:/dev/ttyUSB1:9600 8DATABITS NONE 1STOPBIT banner <-- (Optional bei zweitem Adapter)
3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
Die vierstellige Ziffer vor dem Parameter gibt an mit welchem Telnet TCP Port (Default ist 23) man die serielle Konsole (9600 Baud N,8,1) am Switch oder Router erreichen kann.
Nun muss der ser2net Prozess noch neu gestartet werden um die obigen Änderungen zu aktivieren. Das geht mit systemctl restart ser2net oder einem Reboot.
Öffnet man jetzt z.B. PuTTY oder TeraTerm auf dem PC , startet eine remote Telnet Session von irgendeinem Rechner auf den Pi Server mit dem Telnet Port TCP 2001 erreicht man direkt die serielle Konsole des am Pi und dem USB-Seriell Kabel angeschlossenen seriellen Endgerätes (Switch/Router Konsole).
Noch eleganter bekommt man es mit einem zusätzlichen User hin den man z.B. mit adduser konsole einrichtet.
Dann erstellt man eine kleine Batch Datei mit dem nano Editor:
/home/pi# cat /usr/local/bin/serial_login.sh
#!/bin/sh
/usr/bin/telnet 127.0.0.1 2001
exit
konsole:x:1001:1001:Seriell,,,:/home/konsole:/usr/local/bin/serial_login.sh
Das hat zur Folge das nach dem Telnet oder SSH Login des Benutzers "konsole" der Zugang zur seriellen Schnittstelle direkt gestartet wird.
So ist im Notfall ohne IP oder Zugriff via Netzwerk oder fürs direkte Troubleshooting ein Router oder Switch über seine Konsole sicher erreichbar.
Alternativ lässt sich auch ein kleines Terminal wie dem bekannten MiniCom auf dem Pi Installieren um direkt Zugang zu einer seriellen Konsole zu bekommen. Das geht mit apt install minicom.
Beim allerersten Mal ruft man Minicom mit dem Parameter -s auf (minicom -s) um den Terminalport von /dev/modem auf /dev/ttyUSB0 zu ändern.
OSPF, RIP, BGP Router für das Netzwerk oder Training mit Cisco Kommando CLI
Netzwerk Admins oder auch IT Auszubildende und Schüler, die die Funktionsweise von dynamischen Routing Protokollen im LAN erlernen oder auch in einem Labor Testnetzwerk vorab ausprobieren möchten, benötigen einen Router der auch diese dynamischen Protokolle wie OSPF, BGP, RIPv2, PIM usw. "sprechen" kann.
Idealerweise mit einem Cisco Kommando Set um kompatibel zu "großen" Routern zu sein.
Auch das ist schnell und unkompliziert mit dem Raspberry Pi Server zu lösen der mit entsprechender Software zu einem Router mutiert. Natürlich lässt sich der RasPi auch als "richtiger" Router einsetzen aber man sollte bedenken das die Ethernet Interfaces im RasPi allesamt am USB Bus hängen und dessen Durchsatz recht eingeschränkt ist.
Für das Heimnetz mag das OK sein aber nicht im kommerziellen Umfeld. Hier sind Router wie sie z.B. den hiesigen Router_Tutorials beschrieben sind (Mikrotik etc.) besser geeignet.
Für dieses Beispiel hier erweitern wir den RasPi Server um ein (oder 2) zusätzliches WLAN oder Ethernet Interfaces z.B. mit einem preiswerten USB_Ethernet_Adapter, so das wir nun 3 Netzwerk Interfaces im Server haben: eth0=eingebautes Ethernet, eth1=USB Ethernet, wlan0=WLAN Interface. Diese aktivieren wir dann mit dem OSPF Routing Protokoll um diese Routen dynamisch anderen Routern im Netz per OSPF bekannt zu machen.
Zusätzlich kann, wer will, auch RIP, RIPv2, BGP oder weitere Routing Protokolle parallel aktivieren.
Hier die ToDos:
Wie immer Hardware Check der USB Geräte mit lsusb:
root@raspberry:> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter --> Hier der WLAN Stick
Bus 001 Device 005: ID 0b95:7720 ASIX Electronics Corp. AX88772 --> Hier der USB Ethernet Adapter
Unsere /etc/network/interfaces Datei sieht dann wieder so aus wie oben schon beschrieben (ggf. an eigene IP Adressen anpassen):
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
gateway 192.168.0.1
iface eth1 inet static
address 10.1.0.254
netmask 255.255.255.0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid Bitschleuder
wpa-psk 12345abcdefg
iface default inet dhcp
Beispiel IP Netze hier: eth0=192.168.0.0 /24, eth1=10.1.0.0 /24, wlan0=DHCP (dynamisch vom WLAN Router)
Will man mit dem Server auch real routen muss man hier auch wieder das Routing aktivieren wie schon in diesem_Tutorial beschrieben !
Hierzu editiert man die Datei /etc/sysctl.conf und entkommentiert die Zeile net.ipv4.ip_forward=1 indem man wieder das "#" davor entfernt.
Jetzt installiert man die dynamische Router Software mit dem Kommando
apt install quagga
Ist das erfolgreich durchgelaufen, gilt es vorab zwei Dateien im Verzeichnis /etc/quagga mit dem altbekannten nano Editor einzurichten.
Es müssen 2 Dateien, nämlich zebra.conf und ospfd.conf, angelegt werden, die folgenden einfachen Inhalt haben: password test123
Wichtig: Mit den Kommandos:
chown quagga:quagga *.conf
chmod 644 *.conf
Diese beiden Dateien sind zwingend wichtig, damit der Router aktiviert werden kann !!
Nun gilt es noch dem Router zu sagen das er OSPF sprechen soll !
Mit dem nano editiert man dazu die Datei /etc/quagga/daemons und setzt ein yes hinter die beiden Einträge zebra=yes und ospfd=yes. (Wer will kann hier weitere Protokolle aktivieren muss aber darauf achten das dann auch die zu den Route Protokollen entsprechenden Dateien wie z.B ripd.conf vorhanden sind !!)
Fertig... ! Nun muss man den Quagga Prozess noch neu starten um die neuen Einstellungen zu aktivieren. Das geht wie immer im Verzeichnis /etc/init.d/ mit dem Kommando ./quagga restart
Tip: Da dieser Router ggf. nur temporär genutzt wird, kann man mit dem oben beschrieben Tool "rcconf" den Quagga Prozess beim Booten des RasPi ausgeschaltet lassen. So kann man wenn man möchte bei Bedarf diesen Router "per Hand" starten mit /etc/init.d/quagga start.
Wenn nun alles fehlerfrei rennt kann man daran gehen den OSPF Router zu konfigurieren. Das geht mit der bekannten Cisco_CLI_Syntax.
Auf die Router Konfigurationsoberfläche gelangt man vom RasPi mit dem Kommando nc localhost 2604. (Wir machen als Beispiel OSPF)
Die anderen Protokollports lauten entsprechend:
RIP: 2602 | RIPv2: 2603 | OSPF: 2604 | OSPFv6: 2606 | BGP: 2605 |
Bei der jetzigen Passwort Abfrage kommen nun die Passwörter aus den obigen Konfig Dateien ins Spiel !
Mit Eingabe dieser und dem Kommando "enable" ist man wie bei einem Cisco Router auf der Command Line Oberfläche was man am "#" im Eingabe Prompt erkennt.
Das CLI Kommando "show run" zeigt jetzt die aktuelle Konfiguration unseres Routers, die natürlich noch leer ist. Wir passen sie jetzt nach Eingabe von conf t (Konfig Modus) mit den einzelnen Kommandos unten auf unsere Beispiel IP Netze an, so das sie am Ende so aussieht:
raspberry# sh run
Current configuration:
!
service advanced-vty
!
password test123
!
interface eth0
!
interface eth1
!
interface lo
!
interface wlan0
!
router ospf
redistribute connected
passive-interface lo
passive-interface wlan0
network 192.168.0.0/24 area 0.0.0.0
network 10.1.1.0/24 area 0.0.0.0
!
line vty
end
Mit dem Kommando "exit" beendet man den Konfigurations Modus.
Cisco CLI Kundige fühlen sich hier sofort zuhause Ein "?" zur Kommando Übersicht funktioniert analog wie bei Cisco.
Ein "wr" am Schluss der Konfig ist zwingend wichtig, denn das sichert unsere OSPF Konfiguration in der Konfig Datei das sie nach einem Reboot nicht verloren geht !
Da das WLAN ein dynamisches IP Netz ist (DHCP), ist hier mit dem "passive" Kommando OSPF ausgeschaltet, ebenso auf dem localhost 127er Loopback Interface wo wir kein aktives OSPF machen wollen.
Ein show ip ospf neigbor zeigt uns nun unsere OSPF Nachbarn an (hier ein Mikrotik mit OSPF) die im Netz gesehen werden:
raspberry# sh ip ospf nei
Neigbor ID Pri State Dead Time Addr. Interface RXmtL RqstL DBsmL
10.1.0.1 1 Full/DR 30.180s 10.1.1.254 eth1:10.1.0.254 0 0 0
Hier kann man sich jetzt frei auch mit anderen dynamischen Routing Protokollen auslassen, experimentieren und testen.
Ein apt install tcpdump installiert z.B. einen Kommandozeilen Sniffer wo man sich z.B. mit dem Kommando tcpdump -i eth1 sich die OSPF Pakete am eth1 Interface auch mal live ansehen kann. (ctrl-c stoppt ihn)
Die Konfig Dateien oben sind immer auf die IP Adress Belange oder Routing Protokolle wie RIP, RIPv2 usw. entsprechend individuell anzupassen.
Kapitel 3. Netzwerk Funktionen
David und Goliath: Der Raspberry als Mitglied einer Windows Domäne mit Active Directory
Es hat ein bisschen was von David und Goliath was es aber umso interessanter macht, nämlich die Kopplung des Raspberry Pi Servers an einen Domain Controller Windows 2008 R2 Server (oder neuere Version) mit Active Directory.
Wer FreeRadius auf dem Raspberry laufen lässt kann so eine Benutzer Authentisierung über das AD Userverzeichnis auf dem Windows Server machen….und natürlich noch andere spannende Sachen.
Grundlage ist spacyfreaks hiesiges Tutorial:
Debian Linux in eine Active Directory Domäne integrieren
und ein weiteres HowTo
Beispiel IP Adresse des Windows Servers 192.168.1.100 und Domaine MYDOMAIN.INTERN (Hinweis: .LOCAL Domains sollte man besser vermeiden, weil Bonjour (mDNS) und Apple Macs damit einige Probleme bekommen !)
Welche Pakete brauchen wir auf dem Raspberry:
apt install krb5-user samba samba-common-bin winbind
...installiert alles Nötige dafür !
Wer die obige 802.1x Port- und WLAN Authentisierung will installiert den FreeRadius mit apt install freeradius gleich mit dazu
Nun müssen ein paar Dateien per Hand angepasst werden. Der bekannte nano Editor ist da wieder unser Freund... !
Da geht man exakt so vor, wie es am Ende in den letzten Threads des o.a. Tutorials beschrieben ist.
Hier sind nochmals die wichtigsten Punkte
- Raspberry Hostnamen und IP ins Windows Server 2008 DNS als Host eintragen. Desgleichen den Windows Server mit seiner IP Adresse in die Datei /etc/hosts am Raspberry.
- Die Dienste Samba und Winbind mit /etc/init.d/samba stop und /etc/init.d/winbind stop stoppen.
- Datei /etc/krb5.conf wie in Spacyfreaks Tutorial beschrieben anpassen. Überflüssige Hosts und Domains unter "realms" dort und "domain_realm" löschen.
- Datei /etc/nsswitch.conf anpassen (Parameter winbind hinzufügen)
- Datei /etc/samba/smb.conf (Default) ggf. als Backup sichern und die smb.conf Datei wie sie im Tutorial_Thread steht kopieren als smb.conf. IPs und Namen ggf. auf eigene Belange und Settings anpassen !
- Optional: in die Datei /etc/pam.d/common-session kann, wer will ,folgende Zeile ergänzen: session required pam_mkhomedir.so umask=0022 skel=/etc/skel
Fertig… ! Damit sind alle Konfigurationen erledigt....
Los geht's mit der Aufnahme des Raspberrys in die Microsoft Domäne:
net ads join -U Administrator ---> (Wobei "Administrator" hier der Administrator Account auf dem Windows Server ist !)
Hat man oben alles richtig gemacht erscheint diese Meldung:
root@raspberry:# net ads join -U Administrator
Enter Administrator's password:
Using short domain name -- MYDOMAIN
Joined 'RASPBERRY'; to realm 'mydomain.intern'
Nun kann man mit /etc/init.d/samba start und /etc/init.d/winbind start die Dienste Samba und Winbind wieder starten.
Ob alles sauber arbeitet kann man mit den folgenden Kommandos auf dem RasPi testen:
wbinfo -u --> zeigt die AD Userliste
wbinfo -g --> zeigt die Liste aller AD Gruppen
wbinfo -a username%password --> authentisiert einen AD Benutzer
Windows PE (ct' Notfall Windows) per PXE / TFTP via Netzwerk booten
Das Windows Original PE (Preinstallation Environment) dient zum Erstellen von Rettungsdatenträgern und zum Reparieren bestehender Installationen mit recht einfachen und limitierten Funktion rein auf Windows bezogen.
Auf Basis dieses PE ist aber im Forum theoven eine Alternative entstanden die erheblich mächtiger ist und erweiterte Tools wie das Lesen von Bitlocker Laufwerken und vieles mehr zur Verfügung stellt.
Das Computermagazin ct' hat dieses Tool als Basis genommen ein dazu noch umfangreicheres Notfall Windows 8.1 mit zusätzlichen Tools zu erstellen unter anderem der kompletten Sysinternals Suite.
Der komplette Artikel ist auf der ct' Projektseite zum Notfall Windows beschieben und kann dort nachgelesen werden. Details würden die Anleitung hier sprengen.
Was braucht man dazu...?:
Wer erst einmal einen Eindruck bekommen möchte läd sich das Win8.1SE Tool von der Win8.1SE_Projektseite herunter und entpackt es in einem Verzeichnis seines Rechners.
Als weiteres wird eine Win 8.1 Installations DVD benötigt. Wer keine DVD besitzt läd sich als Ersatz eine Win8.1_Demoversion herunter.
Der hier angegebene Link lädt eine 32Bit Version die universeller ist, da sie auf älteren Systemen rennt und gleichzeitig auch auf moderner 64Bit Hardware. Zusätzlich ist das Image erheblich kleiner und bootet schneller.
Hier muss man sich aber final entscheiden ob 64 oder 32 Bit..
Die Win8.1 Installations DVD bzw. das ISO Image kopiert man ebenfalls in ein eigenes, leeres Verzeichnis z.B. c:\win81inst, Das ISO Image muss aber noch zwingend extrahiert werden, was wieder das bekannte Tool 7z erledigt.
Dazu kopiert man die 7z.exe und die 7z.dll Datei aus dem 7z Programmordner in das ISO Verzeichnis der Win 8.1 Demo Version und entpackt es dort mit dem folgenden Kommando: 7z x c:\win81inst\win81.iso
Ist das geschehen startet man im Win81SE Verzeichnis den Win81SE82_Builder.exe, klickt oben auf Source und gibt im entsprechenden Eingabefeld das Verzeichnis c:\win81inst der kopierten Install DVD oder der zuvor entpackten Win8.1 ISO Datei an. Fertig !
Jetzt nur noch das blaue Play Dreieck oben klicken und etwas Geduld mitbringen, denn das Tool braucht zum Erzeugen des fertigen ISO Images etwas Zeit.
Wer VirtualBox auf dem Rechner hat kann nach Abschluss direkt prüfen lassen ob das Win8.1SE ISO Image bootet und es ggf. auf bootbaren USB Stick oder CD kopieren.
In der Zwischenzeit den Raspberry Pi für PXE Boot vorbereiten....:
Mit dem bekannten...
apt install isc-dhcp-server
und
apt install tftpd-hpa (man achte hier auf das "d" um nicht den Client zu installieren!)
installiert man auf dem Raspberry Server die nötigen Komponenten für PXE Boot.
Der TFTP Server erzeugt automatisch das TFTP Download Verzeichnis /srv/tftp wo nachher alle Dateien hinkopiert werden.
Damit es beim Start des TFTP Servers auf dem RasPi nicht zu einer (IPv6) Fehlermeldung kommt ist noch kurz dessen Konfig Datei mit dem Editor anzupassen unter /etc/defaults/tftpd-hpa indem dort die TFTP_OPTIONS Zeile angepasst wird:
- TFTP_OPTIONS="--secure --ipv4"
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip
und
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
schnell geladen ist. (Wichtig ist unbedingt die Version 5.0.1 der Syslinux Tools zu verwenden !)
Beide ZIP Archive entpackt man dort mit unzip <Dateiname.zip>
Jetzt sind einige Verzeichnisse einzurichten und Dateien in das /srv/tftp Verzeichnis zu kopieren:
mkdir -p /srv/tftp/libs
mkdir -p /srv/tftp/boot
mkdir -p /srv/tftp/winpe
mkdir -p /srv/tftp/win81se
mkdir -p /srv/tftp/ctnotfall
mkdir -p /srv/tftp/pxelinux.cfg
cp /home/pi/syslinux-5.01/com32/lib/libcom32.c32 /srv/tftp/libs/
cp /home/pi/syslinux-5.01/com32/libutil/libutil.c32 /srv/tftp/libs/
cp /home/pi/syslinux-5.01/com32/modules/linux.c32 /srv/tftp/libs/
cp /home/pi/syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32 /srv/tftp/
cp /home/pi/syslinux-5.01/com32/menu/vesamenu.c32 /srv/tftp/
cp /home/pi/syslinux-5.01/core/pxelinux.0 /srv/tftp/
cp /home/pi/syslinux-5.01/memdisk/memdisk /srv/tftp/
cp /home/pi/syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32 /srv/tftp/
cp /home/pi/wimboot-2.4.1/wimboot /srv/tftp/libs/
Desweiteren benötigt man noch ein paar Windows Dateien aus dem oben mit 7z entpackten c:/win81inst Verzeichnis
\bootmgr —> /srv/tftp/
\boot\bcd —> /srv/tftp/
\boot\boot.sdi —> /srv/tftp/
\sources\boot.wim —> /srv/tftp/winpe/
Diese Datei findet sich immer im Verzeichnis: \ISO\Targetimage\WIM\sources.
Die boot.wim von Win8.1SE kopiert man unter /srv/tftp/win81se
Die boot.wim des ct’ Notfall Windows 2014 kopiert man unter /srv/tftp/ctnotfall
Als vorletzten Schritt erzeugt man im Verzeichnis /srv/tftp/pxelinux.cfg mit dem nano Editor noch eine Datei default mit folgendem Inhalt:
DEFAULT vesamenu.c32
PATH libs
LABEL Win8.1PE
COM32 linux.c32 libs/wimboot
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,winpe/boot.wim
LABEL Win8.1SE
COM32 linux.c32 libs/wimboot
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,win81se/boot.wim
LABEL ctNotfall
COM32 linux.c32 libs/wimboot
APPEND initrdfile=bootmgr,boot/bcd,boot/boot.sdi,ctnotfall/boot.wim
Das ISO Image booten statt wim.boot:
Mit etwas weniger Aufwand als das obige wimboot kann man aber auch das komplette Win8.1 ISO Image und damit auch jedes ISO Image booten.
Im Win8.1.SE ISO Verzeichnis des Tools wo nachher das fertige ISO Image steht, ist im Verzeichnis unter \ISO\Targetimage\WIM die Datei menu.lst zu finden die Infos für den Bootloader enthält.
Diese Datei kopiert man z.B. mit WinSCP auf den Raspberry und benennt sie in default um.
Im TFTP Root Verzeichnis /srv/tftp/ erzeigt man jetzt ein Verzeichnis mit dem Namen menu.lst (mkdir /srv/tftp/menu.lst) und kopiert diese default Datei in dieses Verzeichnis.
Mit dem nano Editor ediert man sie und ändert den Eintrag title Win8.1SE folgendermaßen:
title Win8.1SE
map --mem (pd)/Win8.1SE_x86.ISO (0xff)
map --hook
root (0xff)
chainloader /BOOTMGR
LABEL Win8.1SE ISO
KERNEL memdisk keeppxe
APPEND initrd=Win8.1SE_x86.ISO iso raw
und schon bootet der PXE Server auch das ISO Image.
Dem DHCP Server beibringen was er den PXE Clients mitgeben muss...:
Weiter untem im Tutorial findet sich die universelle Einrichtung des ISC DHCP Servers auf dem RasPi. Um dem DHCP den PXE Boothost und File mitzugeben ist die Konfig Datei zu erweitern (PXE Bootserver hier 10.2.0.100):
allow booting;
allow bootp;
next-server 10.2.0.100;
filename "pxelinux.0"
# PXE Boot Test Laptop
host tftpclient {
hardware ethernet 00:21:85:AD:12:34;
fixed-address 10.2.0.30;
next-server 10.2.0.100;
filename "pxelinux.0";
https://www.winhistory-forum.net/showthread.php?tid=12466
Um den PXE Boot beim Starten des Rechners zu aktivieren gibt es mehrere Methoden die Hersteller abhängig sind.
Entweder geht man ins BIOS um diese Funktion zu aktivieren.
Bei den meisten Rechnern reicht es aber mit ESC, F11 oder F12 in das BIOS Boot Auswahlmenü zu gehen und hier den Netzwerk Boot im Bootmenü zu wählen.
ct' Desinfect Viren DVD via PXE booten
Eine weitere sinnvolle Verwendung des PXE Bootservers bietet sich für Besitzer der ct' Desinfect Viren Boot DVD. Diese läßt sich bequem zum Viren Scannen und Entfernen via Netzwerk auf beliebigen Rechnern booten.
Die Installation ist im wesentlichen identisch zur oben beschriebenen, bietet aber auch eine sehr einfache Installations Option mit Dnsmasq.
Alle Schritte die aktuelle ct' Desinfect via Netz zu booten findet man hier:
http://www.heise.de/security/artikel/Desinfec-t-vom-Linux-Server-booten ...
Ein eigener Cloudserver mit NextCloud
Siehe HIER.
NAS mit iSCSI oder Windows Share (CIFS/SMB) anbinden
Wenn der Server größere Datenmengen speichern muss wie z.B. oben bei der Anwendung als Syslog Server und für die Hotspot Überwachung oder das Sammeln von Performancedaten mit MRTG ist es oft sinnvoll die Daten nicht auf der begrenzten SD Flashkarte zu sichern sondern auf einer USB Festplatte oder noch eleganter per iSCSI auf einem NAS z.B. von QNAP, Synology oder anderer Hersteller im Netzwerk.
Ersteres ist recht einfach und bedarf keiner Erklärung hier da USB Platten automatisch erkannt werden. Letzters ist etwas spannender und beschert dem Raspberry letztlich Zugriff auf GB oder TB Laufwerke ohne eigene Resourcen zu belasten.
Es gibt einen Wermutstropfen: Auch wenn man mit apt install open-iscsi den iSCSI Initiator installiert bringt man ihn nicht zum Laufen. Grund sind die fehlenden Kernelmodule im Standardkernel...
Es ist daher erforderlich sich einen neuen Kernel zu bauen der diese Module beinhaltet. Die genaue Beschreibung würde den Rahmen und das Thema des Tutorial sprengen und ist HIER umfassend und wasserdicht erklärt.
Ein so customizter Kernel wird also vorausgesetzt wie ebenso ein entsprechend eingerichtetes iSCSI Target auf einem der o.g. NAS Systeme. Letzteres ist mit dem dort vorhandenen Wizzard mit ein paar Mausklicks erledigt.
Der Rest ist dann schnell gemacht:
- apt install open-iscsi installiert das Paket
- In der Datei /etc/iscsi/iscsid.conf den Eintrag "node.startup = automatic" setzen.
- /etc/init.d/open-iscsi restart ausführen.
- iscsiadm -m discovery -t st -p <ip_adresse_nas> sollte jetzt den Target Namen anzeigen, ebenso iscsiadm -m node
- iscsiadm -m node --targetname "<target_namw>" --portal "<ip_adresse_nas>" --login verbindet das iSCSI NAS
- Mit fdisk -l "sieht" man nun das Laufwerk unter /dev/sda1 und mkfs.ext4 /dev/sda1 formatiert es mit ext4 das es dann mit mount /dev/sda1 /mnt ins Dateisystem gehängt werden kann.
Das NAS ist dann im Verzeichnis /mnt zu finden.
Noch einfacher ist das Einhängen eines bestehenden Windows Shares auf einem NAS oder einem Windows Fileserver oder PC oder auch einen am Router (FritzBox etc) im Netz freigegebenem USB Stick oder Platte mit Windows SMB/CIFS.
Der Mount Befehl supportet auch direkt das Windows CIFS Filesystem.
Als Beispiel dient hier ein Windows Server oder NAS System mit einem Freigabeordner "Public" und der IP 192.168.1.100, dann lautet das entsprechende Kommando auf dem Raspberry Pi:
mount.cifs //192.168.1.100/Public /mnt/ -o user=<username>,password=<passwort>
Auch andersherum (Zugriff von Windows PC auf ein vom RasPi freigegebenes Verzeichnis oder Platte) ist diese Freigabe mit dem Samba Server kinderleicht. Samba emuliert einen Windows Fileserver unter Unix/Linux.
So kann man sehr einfach Dateisysteme für beide Systeme über das Netzwerk zugänglich machen. (Samba HowTo ist in der Linksammlung am Ende des Tutorials)
Zentraler DHCP Server im LAN und auch VLAN Umfeld
In segmentierten LAN und VLAN Umgebungen macht es Sinn einen zentralen DHCP Server zu verwenden, der alle IP Netze in den LANs oder VLANs zentral bedient.
Um von einem zentralen DHCP Server IP Adressen in mehrere Segmente eines Netzes zu verteilen konfiguriert man auf dem Router oder Layer 3 Switch, der diese LANs oder VLANs routet, dann sog. "IP Helper Adressen“ (DHCP Forwarder) auf den Gateway IP Interfaces.
Diese IP Helper Adressen forwarden DHCP Client Broadcasts dieser IP Netz Segmente dann direkt an den zentralen DHCP Server.
Da sie auf einem UDP Broadcast basieren, würden diese DHCP Requests sonst nicht über Routergrenzen übertragen werden.
Oft machen diese DHCP Forwarder Adressen oder deren Einrichtung Probleme und mit einem DHCP Testserver auf dem RasPi, der mehrere DHCP Subnetz Bereiche supportet, kann man sowas sehr gut troubleshooten.
Natürlich spricht auch nichts dagegen den RasPi DHCP Server in kleinen Netzen als zentralen DHCP Server zu betreiben !
So ein DHCP Server ist schnell eingerichtet...:
apt install isc-dhcp-server
installiert wieder das notwendige Packet für den Server. Der DHCP Server hat hier im Beispiel selber die LAN IP Adresse 10.2.1.254 was man ggf. auf eigene IP Adressbealnge wieder anpassen muss.
Jetzt konfiguriert man die Datei /etc/dhcp/dhcpd.conf entsprechend. Hier mit im Beispiel mit 3 LAN / VLAN IP Bereichen 10.2.1.0, 10.3.1.0 und 10.4.1.0.
# Sample configuration file for ISC dhcpd for Debian
#
ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Ping the IP address that is being offered to make sure it isn't
# configured on another node. This has some potential repercussions
# for clients that don't like delays.
ping-check true;
# option definitions common to all supported networks...
option domain-name "raspi.home.arpa";
option domain-name-servers 192.168.1.1, <weitere_dns_ip> ;
default-lease-time 600;
max-lease-time 7200;
# Use this to send dhcp log messages.
log-facility local7;
# DHCP Ranges for different Subnets
subnet 10.2.1.0 netmask 255.255.255.0 {
range 10.2.1.10 10.2.1.20;
option domain-name "vlan2.home.arpa";
option routers 10.2.1.1;
}
subnet 10.3.1.0 netmask 255.255.255.0 {
range 10.3.1.10 10.3.1.20;
option domain-name "vlan3.home.arpa";
option routers 10.3.1.1;
}
subnet 10.4.1.0 netmask 255.255.255.0 {
range 10.4.1.10 10.4.1.20;
option domain-name "vlan4.home.arpa";
option routers 10.4.1.1;
}
# Fixed IP addresses can also be specified for hosts.
host winsrv2012 {
hardware ethernet 08:00:08:26:c0:c3;
fixed-address 10.4.1.100;
}
Eine entsprechende Layer 3 Switch Beipiel Konfig für die VLANs sähe so aus. (Cisco IOS). HP Switches und andere sind mehr oder weniger identisch.
!
interface Vlan1
description VLAN-1 (Hier ist der DHCP Server mit der 10.2.1.254 verbunden)
ip address 10.2.1.1 255.255.255.0
!
interface Vlan3
description VLAN-3 (Client Netzwerk)
ip address 10.3.1.1 255.255.255.0
ip-helper address 10.2.1.254
!
interface Vlan4
description VLAN-4 (Client Netzwerk)
ip address 10.4.1.1 255.255.255.0
ip-helper address 10.2.1.254
!
Ein DHCP Request von einem PC Client im VLAN 3 der an den zentralen DHCP Server im VLAN 1 geforwardet wird aus dem VLAN 3 sieht man in der Log Datei dann folgendermaßen: tail -f /var/log/messages
Apr 10 17:05:38 raspberry dhcpd: DHCPDISCOVER from 00:21:85:dd:06:5c via 10.3.1.1
Apr 10 17:05:39 raspberry dhcpd: DHCPOFFER on 10.3.1.10 to 00:21:85:dd:06:5c (win-pc) via 10.3.1.1
DHCP Im Netzwerk absichern mit Option 82 (DHCP Snooping)
Ein spannendes Kapitel im Bereich DHCP ist die Absicherung des Netzwerks mit DHCP Snooping und Option 82 auf dem Netzwerk Switch.
Kurz beschrieben "sieht" der Switch dann in DHCP Pakete hinein, die er von Clients auf seinen Ports empfängt. Der Switch trägt dann eigene Informationen und die des Clients in diese Pakete ein bevor er sie an den DHCP Server weiterleitet.
Und dieses Weiterleiten macht er auch nur auf Ports die in der Switchkonfiguration als trusted, also vertrauenswürdig, definiert sind wo z.B. der DHCP Server angeschlossen ist oder die Uplinks zum DHCP Server.
Auf untrusted Ports blockiert er alle DHCP Server Replies so das "wilde" DHCP Server im Netz kein Chaos anrichten können.
Dieses Switchfeature bietet dem Netzwerk Admin eine sehr weitreichende Übersicht wer, wann an welchem Switchport welche IP Adresse bekommen hat.
So ist es möglich ein wasserdichtes DHCP Netz zu definieren OHNE das nicht authentisierte Server automatisch DHCP Adressen im Netzwerk zugeteilt bekommen und ohne z.B. die oben beschrieben 802.1x Port Authentisierung implementieren zu müssen.
Los gehts mal wieder mit dem Setup...
Zuallererst aktiviert man global das Logging von Option 82 markierten DHCP Paketen im DHCP Server mit
# Option 82 Logging (DHCP Snooping aktiv !)
if exists agent.circuit-id {
log ( info,
concat(
"Lease ", binary-to-ascii (10, 8, ".", leased-address),
"verbunden via ", binary-to-ascii(10, 8, "/", suffix( option agent.circuit-id, 2)), ", VLAN ", binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)),
"Relay ", binary-to-ascii(10, 8, ".", packet(24, 4)),
"(", binary-to-ascii (16, 8, ":", substring( option agent.remote-id, 2, 6)), ")"
)
);
}
Ein Beispiel für eine dedizierte Adress Vergabe für Windows User oder Switchport spezifisch sieht dann z.B. so aus:
# Assign IP address by group or switchport
subnet 172.30.0.0 netmask 255.255.255.0 {
option broadcast-address 172.30.0.255;
option subnet-mask 255.255.255.0;
class "WinUser" {
match if substring(dhcp-client-identifier, 0, 7)="windows";
}
pool {
range 172.30.0.50 172.30.0.60; # If single host "range <host_address>;" only
option routers 172.30.0.1;
allow members of "WinUser";
}
class "SWITCH-2-PORT2"{
match if (
binary-to-ascii (10, 8, ".", packet(24, 4)) = "192.168.1.254"
and
binary-to-ascii (10, 8, "/", suffix(option agent.circuit-id, 2)) = "0/2"
and
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)) = "1" );
}
pool {
range 172.30.0.70 172.30.0.80;
# option ntp-servers 194.25.134.196;
option routers 172.30.0.1;
allow members of "SWITCH-2-PORT2";
}
pool {
range 172.30.0.100 172.30.0.150;
option ntp-servers 194.25.134.196;
option routers 172.30.0.1;
}
}
ACHTUNG:
DHCP Snooping muss immer vorher auf dem LAN Switch gemäß Handbuch aktiviert werden !! Als Beipiel hier die Konfigurationsschritte für einen Cisco IOS Switch:
ip dhcp snooping => schaltet DHCP Snooping global auf dem Switch ein.
Möchte man DHCP Snooping nur dediziert für ein bestimmtes VLAN machen kann man das auch spezifisch nur für dieses VLAN mit:
ip dhcp snooping vlan <vlan id>
aktivieren.
Danach ist dann nur noch das trusted Interface an dem der DHCP Server hängt mit:
interface FastEthernet0/1
description Port zum DHCP Server
ip dhcp snooping trust
zuzuweisen.
Sind mehrere Switchhops notwendig zum DHCP Server muss auf allen diesen Switch Uplinks dorthin "ip dhcp snooping trust" konfiguriert sein !
Zentraler Netzwerk Zeitserver (NTP) mit USB oder Bluetooth GPS
Jessie bzw. Buster installiert einen systemd Service mit gpsd der mit dem eigentlich Daemon Port kollidiert. Ein netstat -lntp zeigt das. Nach der Installation von gpsd muss dieser bei Jessie deinstalliert werden mit
systemctl stop gpsd.socket
systemctl disable gpsd.socket
Die korrekte Uhrzeit ist in heutigen Netzwerken speziell Windows Umgebungen mit AD Domain Login und Kerberos Authentisierung essentiell wichtig.
Für einen kleinen preiswerten NTP Time Server im Netz, der unabhängig vom Internet ist, kann man recht einfach eine preiswerte Standard_GPS_Maus oder einen GPS_Stick mit USB oder auch Bluetooth an den RasPi anschliessen um die Atomuhren der GPS Satelliten zu nutzen mit ihrer sehr genauen Zeit.
Auch der direkte Anschluss eines DCF-77_USB Empfängers (Amtliche Zeit der PTB) ist problemlos möglich.
Bei Ausfall von Internet Zeitservern ist man so autark.
Bei einer USB GPS Maus ist nichts weiter erforderlich, bei Bluetooth installiert man schnell den Bluetooth Stack mit:
apt install bluetooth bluez-utils bluez-compat blueman
Damit wird dann jeder handelsübliche Bluetooth_USB_Microstick supportet. (Bevorzugt Class 1 oder 2 und V.4.0)
Steckt der Bluetooth Stick oder die USB GPS Maus hilft wieder ein lsusb :
root@raspberrypi:/home/pi# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
um zu checken das der Adapter richtig erkannt wurde. Direkte USB GPS Mäuse oder Sticks zeigen in der Regel den Prolific Chipsatz hier wie oben bei der seriellen Cisco Konsole mit dem USB-Seriell RS232 Adapter.
Ein hcitool scan sollte nun alle BT Geräte in Reichweite anzeigen.
root@raspberrypi:/home/pi# hcitool scan
Scanning ...
00:6A:4B:22:1D:EB BT GPS
Wer es jetzt ganz einfach haben will geht auf die Windows Oberfläche lokal oder per VNC und startet den "Bluetooth Manager" über das Bluetooth Symbol und mappt sein Bluetooth Gerät auf eine serielle Verbindung. Direkte USB Mäuse werden automatisch erkannt.
Über die Konsole sind es 2 Kommandos:
bluetoothctl
dort dann scan on und dann sollte man die GPS Maus dort sehen mit [NEW] Device 00:6A:4B:22:1D:EB BT-GPS
pair 00:6A:4B:22:1D:EB ## --> Verbindet die BT Maus, PIN:0000
Mitexitverlässt man das Programmbluetoothctldann wieder.
Mit
rfcomm bind /dev/rfcomm0 00:6A:4B:22:1D:EB --> weist man der Maus eine serielle Schnittstelle zu
Damit ist die Verbindung dann erfolgt !
Das Kommando cat /dev/rfcomm0 (Bluetooth) oder cat /dev/ttyUSB0 (direct USB) zeigt nun sofort eingehende NMEA Daten der GPS Maus oder des GPS Moduls an.
Sollten hier "Hieroglyphen" kommen läuft das Modul im Hersteller Binary Mode und muss mit gpsctl -n /dev/ttyUSB0 in den NMEA Mode geschaltet werden. ( gpsctl -b /dev/ttyUSB0 schaltet wieder zurück in Binary)
Ggf. muss auch die Baudrate bei seriellen USB GPS Mäusen mit stty -F /dev/ttyUSB0 4800 oder stty -F /dev/ttyUSB0 raw 4800 auf 4800 Baud geändert werden.
Ist das erfolgreich, kann man nun mit
apt install gpsd gpsd-clients
die GPS Software installieren...
und mit gpsd -n /dev/rfcomm0 (Bluetooth) bzw. bei USB GPS mit gpsd -n /dev/ttyUSB0 den GPS Empfang starten.
Das Kommando cgps -s zeigt dann die Live GPS Daten in Tabellenform an.
Nackte NMEA vom GPS sieht man mit gpscat /dev/ttyUSB0 (USB GPS)
Wer es grafisch haben möchte, der startet xgps auf der grafischen Windows Oberfläche. (Screenshot oben)
Der gpsd Daemon hat bequemerweise eine geräteinterne Netzwerk Schnittstelle für den NTP Server an Bord des Raspberry. Um diese zu aktivieren editiert man die Datei /etc/ntp.conf und fügt die folgenden Zeilen hinzu:
# GPS Uhrzeit mit gpsd setzen
server 127.127.28.0
fudge 127.127.28.0 time1 0.135 refid GPS stratum 1
server 127.127.28.1 prefer
fudge 127.127.28.1 refid PPS
#
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Wer Versionen älter ntp-4.2.5p138 benutzt z.B. mit älteren Debian oder Ubuntu Versionen muss die folgenden Zeilen einsetzen:
# GPS Uhrzeit mit gpsd setzen
server 127.127.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 time1 0.135 refid GPS stratum 1
server 127.127.28.1 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.1 refid PPS
#
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Läuft alles fehlerfrei sollte man mit dpkg-reconfigure gpsd den gpsd entsprechend auf seine Schnittstelle und Parameter anpassen, das man ihn nicht händisch starten muss, sondern er so fertig gleich beim Hochfahrent des RasPis korrekt startet.
Mit /etc/init.d/ntp restart wird nun noch der NTP Server neu gestartet um die o.a. Konfig zu aktivieren und ein ntpq -p zeigt dann den aktiven Server an.
remote refid st t when poll reach delay offset jitter
==============================================================================
*SHM(0) .GPS. 0 l 3 16 377 0.000 42.267 3.496
SHM(1) .PPS. 0 l - 16 0 0.000 0.000 0.000
+ntps1-1.cs.tu-b .PTB. 1 u 37 64 377 49.740 2.626 24.683
+ntp3.rrze.uni-e .PPS. 1 u 43 64 377 77.054 -8.083 20.708
Die Zeichenerklärung bei "ntpq -p":
- * Die Quelle mit der der Zeitserver aktuell syncronisiert ist.
- # Quelle ausgewählt aber Distance zu groß
- + Aktive Quelle die in der Auswahl ist.
- - Quelle mit schlechter Qualtität
- leer Quelle nicht aktiv
Ein tolles Addon des gpsd Servers ist eine fertige PHP Webseite die man lokal auf dem RasPi unter /usr/share/doc/gpsd-clients/examples/ findet.
Dort ist eine Datei mit dem Namen gpsd.php.gz die man mit
gunzip gpsd.php.gz
entpackt und dann mit
cp gpsd.php /var/www
ins Dokumentenverzeichnis des Webservers kopiert. Voraussetzung ist natürlich man hat auf dem Raspberry den Apache2 Webserver installiert und das PHP5 Package wie oben beschrieben.
Ruft man nun über einen Browser diese Webseite auf mit http://<ip_raspi>/gpsd.php bekommt man den aktuellen GPS Satellitenstatus als Webseite:
Setzt man in der .php Datei noch den Parameter autorefresh aktualisiert sich diese Webseite automatisch. Zusätzlich kann man auch über den Maps Parameter eine Google Map des Standort einblenden lassen.
Damit ist dann ein Internet unabhängiger, GPS basierter NTP Timeserver aktiv, der von jedem Endgerät mit jedem beliebigen Betriebssystem im Netzwerk angesprochen werden kann um sekundengenau und unabhängig die Uhrzeit abzugleichen.
In Windows Domänen Netzen ist dies z.B. für die Kerberos Authentisierung zwingende Voraussetzung.
Der Raspberry Server spricht Cisco CDP
Das Cisco Discovery Protokoll wird bei Cisco Komponenten global genutzt um Geräte (Router, Switches etc.) untereinander mit ihren Features bekannt zu machen. Es ist sehr hilfreich bei der Verkabelung von Netzen, denn ein show cdp neig auf dem Cisco CLI zeigt die Komponenten und die Ports mit denen sie untereinander verbunden sind. Viele andere Hersteller im LAN Bereich supporten ebenfalls Cisco CDP wie HP, Brocade, Extreme, Mikrotik usw.
Da sollte ein Rasberry Pi natürlich nicht fehlen ! Es gibt ein fertiges Package das man mit apt install cdpr installieren kann.
Wermutstropfen: Leider steht das "r" für Receive und dieses Tool kann nur empfangen aber nicht senden. Es schadet aber nicht es parallel zu installieren da es sehr genau ( -vv Schalter) den Inhalt der CDP Pakete anzeigt die im 60 Sekunden Intervall kommen.
Natürlich kann man CDP Pakete auch senden mit dem RasPi:
Zum CDP Senden nutzt man die CDP-Tools die allerdings nicht Teil der Rasbian Distribution sind, deshalb übersetzt man es wieder schnell selber. Oben haben wir ja schon gesehen wie das zu machen ist....
apt install libnet1-dev libpcap-dev installiert dafür wieder die notwendigen Komponenten.
Dann lädt man das Quell Paket mit wget http://gpl.internetconnection.net/files/cdp-tools.tar.gz herunter und entpackt es mit
tar xvzf cdp-tools.tar
Jetzt wechselt man mit "cd cdp-tools" in das damit erzeugte Verzeichnis und führt ein make aus.
Ist die Übersetzung fehlerfrei durchgelaufen sieht mal mit ls -l jetzt 3 Dateien cdp-send, cdp-listen und cdp-routmgr im Verzeichnis die man mit cp <datei_name> /usr/local/sbin/ ins lokale Programmverzeichnis kopiert.
Jetzt steht einem ersten CDP Test nichts mehr im Wege !
Ein einfacher Aufruf von cdp-send startet CDP und ein Check mit dem o.a. Cisco Kommando:
cat3550-2#sh cdp nei
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID Local Intrfce Holdtme Capability Platform Port ID
raspberry Gig 0/2 143 H armv6l eth1
cat2960 Gig 0/1 130 S I WS-C2960- Gig 0/2
Ein cdp-send eth0 & schiebt den Aufruf in den Hintergrund und der RasPi sendet so zyklisch CDP Frames an seinem Port.
Wer es permanent haben will bringt dieses Kommando in ein Autostart Skript so das CDP auch ein Booten überlebt.
Serverdienste mit Bonjour (mDNS) routen u. automatisch bekannt machen im Netz
Mit Bonjour (auch als mDNS bekannt) kann man einige der o.a. Dienste automatisch im lokalen Netzwerk bekannt machen. Das erspart einem dann das oft mühsame Abtippen der einzelnen IP Adresse, bzw. sofern der Raspi eine DHCP Adresse hat muss man diese nicht unbedingt wissen.
Bonjour basiert auf Multicast und läuft über die Multicast-Adressen 224.0.0.251 (bei IPv4) und FF02::FB (bei IPv6), jeweils über den UDP- Port 5353. Es benutzt die im Standard IANA zugewiesene TLD .local (weshalb man .local niemals anderweitig verwenden sollte ! Siehe auch hier !)
Diese Multicast Adressen sind aber sogenannte Local Multicast Gruppen dessen TTL Feld im IP Paket fest auf 1 gesetzt ist und Multicast fähige Router es damit nicht routen können mir PIM dense oder PIM sparse.
Man braucht also einen Proxy um mDNS / Bonjour in Subnetze routen zu können.
Details zum AVAHI Server Setup (mDNS/Bonjour) auch HIER.
Wieder startet man den Installer nach dem bekannten apt update und apt dist-upgrade um die erforderlichen Komponenten zu installieren. Mit
apt install libnss-mdns avahi-utils
hat man dann alles an Bord.
Ein avahi-browse -at zeigt dann schon ggf. vorhandene Bonjour Dienste im Netzwerk an.
Möchte man nun selber vom RasPi Dienste anbieten fügt man lediglich diese Dientse im Verzeichnis /etc/avahi/services mit dem Texteditor nano hinzu. Die Dateien müssen als Datei Suffix immer .service haben und werden wie auch oben z.B. mit nano apache.service erzeugt.
Die folgenden Beispiele können mit Cut and Paste übernommen werden.(Ggf. auf die eigenen Belange editieren)
Diese Datei apache.service macht den Webserver des RasPi bekannt:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h HTTP</name>
<service>
<type>_http._tcp</type>
<port>80</port>
</service>
</service-group>
Der Raspberry Pi kann so auch Webseiten von anderen Komponenten im Netzwerk bekannt machen.
Dazu trägt man einfach in die Datei hosts unter etc/avahi die IP Adresse ein und einen Namen. Z.B. um seinen WLAN Accesspoint zu managen dann 192.168.1.200 wlanap.local
Dann erzeugt man wieder unter /etc/avahi/services eine Datei wlanap.service mit folgendem Inhalt:
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>WLAN AP</name>
<service>
<type>_http.\_tcp</type>
<host-name>wlanap.local</host-name>
<port>80</port>
</service>
</service-group>
Die folgende Datei propagiert den SSH Server:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h SSH</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_smb._tcp</type>
<port>139</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
Dieser Eintrag bestimmt welches Symbol für das File Share im Finder gezeigt wird. Ersetzt man es z.B. mit "Macmini" wird ein Mac mini Symbol angezeigt. Nähere Infos dazu auch hier.
Und als letztes Beispiel die Bekanntgabe des VNC Servers im Netz:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h VNC</name>
<service>
<type>_rfb._tcp</type>
<port>5901</port>
</service>
</service-group>
Mit dem Bonjour Daemon ist es auch sehr einfach einen Bonjour Proxy im Netzwerk zu realiseren um Bonjour damit in andere IP Segmente zu routen.
Generell ist das nicht möglich mit Multicast Routern, da Bonjour eine sog. Link local Multicast Gruppe verwendet (224.0.0.251 bzw. IPv6 FF02::FB). Gem. Standard bleiben diese Gruppen immer in einer lokalen Layer 2 Broadcast Domain.
Die genaue Einrichtung eines solchen Proxys sprengt den Rahmen des Tutorial und ist detailiert in einem ct' Artikel beschrieben:
https://www.heise.de/ct/ausgabe/2013-15-Bonjour-Dienste-jenseits-von-Sub ...
bzw.
MikroTik - Bonjour routing
DVB TV Fernsehen im Netzwerk streamen
Eine interessante Anwendung ist auch das Streamen von DVB Fernsehen im lokalen Netzwerk mit einem einfachen und preiswerten USB DVB Stick.
Hierzu gibt es die bekannten fertigen Raspberry Distributionen mit XBMC die einen kompletten Plug and Play Media Server realisieren. Dies soll hier aber nicht Grundlage sein, sondern nur das reine, resourcenschonende DVB Streaming auf Basis der Tvheadend Lösung.
Der RasPi bleibt auch so noch offen für andere Anwendungen.
Wie immer ist die Installation mit wenigen Schritten erledigt und dem Fernsehgenuss mit Laptop, iPhone/iPad oder Android bequem von der Couch per WLAN steht nichts mehr im Wege.
Los gehst indem man einfach erstmal den USB DVB Stick in den RasPi steckt und mit lsusb prüft ob er erkannt wird:
root@raspi:/etc/apt# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 2040:9301 Hauppauge WinTV NOVA-T USB2 (warm)
Die meisten der aktuellen Sticks (Beispiel hier Haupauge Stick) werden automatisch vom Kernel erkannt. Mit dmesg sieht man dann sowas:
( 12.785455) usb 1-1.3: dvb_usb_v2: found a 'Dexatek DK DVB-T Dongle' in warm state
( 12.811514) usbcore: registered new interface driver dvb_usb_rtl28xxu
( 12.857245) usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
Oftmals benötigen sie auch noch eine Firmwaredatei. Ist das der Fall, prüft man das wieder mit dem Kommando dmesg und sucht nach Meldungen wie:
( 7.298837) dvb-usb: found a 'Hauppauge Nova-T Stick' in cold state, will try to load a firmware
( 8.035155) dvb-usb: did not find the firmware file. (dvb-usb-nova-t-usb2-02.fw) Please see linux/Documentation/dvb/ for more details on firmware-problems. (-2)
Die Firmware Dateien sind im Internet frei erhältlich z.B. bei http://linuxtv.org. Oder wie im Falle der bekannten Hauppauge Hardware hier auf den Seiten der Hersteller. Google ist wie immer erste Anlaufstelle. Die entsprechende xyz.fw Firmware Datei kopiert man einfach ins Verzeichnis /lib/firmware.
Nach einem Reboot zeigt der Aufruf von dmesg dann folgendes und der Stick wurde erfolgreich aktiviert:
( 6.640643) dvb-usb: found a 'Hauppauge WinTV-NOVA-T usb2' in cold state, will try to load a firmware
( 6.843069) dvb-usb: downloading firmware from file 'dvb-usb-nova-t-usb2-02.fw'
( 9.409970) dvb-usb: found a 'Hauppauge WinTV-NOVA-T usb2' in warm state.
( 9.439662) dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
( 9.488241) DVB: registering new adapter (Hauppauge WinTV-NOVA-T usb2)
Oder hier bei einem Kernel embedded Treiber ohne Firmware:
[ 5.792242] usb 1-1.3: dvb_usb_v2: found a 'Trekstor DVB-T Stick Terres 2.0' in warm state
[ 5.813616] usbcore: registered new interface driver dvb_usb_rtl28xxu
[ 5.885168] usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 5.911852] DVB: registering new adapter (Trekstor DVB-T Stick Terres 2.0)
[ 5.970630] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[ 6.033848] i2c i2c-0: e4000: Elonics E4000 successfully identified
[ 6.178963] usb 1-1.3: dvb_usb_v2: 'Trekstor DVB-T Stick Terres 2.0' successfully initialized and connected
Nun kann man mit der eigentlichen Installation der Tvheadend Software weitermachen.
Die Pakete befinden sich leider nicht im Standard Rasbian Repository und müssen von der Entwickler Seite geladen werden, was aber RasPi üblich schnell erledigt ist und den Vorteil hat das man immer up to date ist.
Man editiert mit dem nano die Datei /etc/apt/sources.list und fügt den Eintrag:
deb http://apt.tvheadend.org/stable wheezy main
Da die Sources mit einem Key gesichert sind muss man diesen noch mit
curl http://apt.tvheadend.org/repo.gpg.key | sudo apt-key add -
Ein apt update integriert diese Source und ein apt install tvheadend installiert dann final die Software auf dem RasPi und startet sie korrekt.
Keine Angst Tvheadend benötigt viele Libraries, die lange Install Liste ist völlig normal.
Ist die Installation abgeschlossen startet man einen Webbrowser entweder lokal oder im Netz mit dem URL http://<ip_adresse_raspi:9981>
Hier meldet sich dann schon die interne Webseite zum Konfigurieren von Tvheadend:
Als allererstes legt man einen User an mit User: "test" Passwort: "test" und lässt ihn fürs Streamen und Videorekorder und Webinterface zu (Haken setzen) und speichert mit Klick auf "Save". Wer möchte kann den Zugriff bei der IP auch auf sein Heimnetz limitieren.
In den Reitern wählt man nun unter "Configuration -> DVB Inputs -> TV Adapters" seinen USB Stick aus und setzt den Haken bei "Enabled".
Links klickt man jetzt "Add DVB network by location" und wählt seinen Empfangsbereich aus. Bei Satelliten dann z.B. "Astra-19,2E" und bei DVB-T der lokale Empfangsbereich nach Bundesland.
Mit dem anschliessenden Klick auf "Save" fängt der Scanner an den TV Bereich abzusuchen nach empfangbaren Sendern. Erreicht der Zähler "Muxes awaiting initial scan" den Wert 0 ist der Scan fertig !
Wer Tvheadend bei der Arbeit zusehen möchte klickt die Doppelpfeile in der linken unteren Ecke.
WICHTIG: Daraufhin klickt man "Map DVB Services to Channels" und der Scanner sortiert alle empfangbaren Kanäle. Unter "Services" kann man nun das Ergebnis kontrollieren und feinjustieren.
Über den Browser sind nun die Fernsehprogramme gleich fertig zum Ansehen sofern man VLC installiert hat und das VLC Plugin für den Browser ebenfalls.
Im Apple App Store und für Android gibt es entspreche Apps um Tvheadend zu steuern und den Fernsehstream auch auf mobilen Geräten anzusehen.
Der Klassiker VLC ist für alle erdenklichen Betriebssystem Plattformen und Smartphones erhältlich und spielt die Streams im Netz problemlos ab indem man einfach mit http://<ip_adresse>:9981/playlist die Playlist URL in VLC eingibt.
Für iPad und iPhone empfiehlt sich natürlich auch die VLC App oder andere wie z.B. Blackbox.
Damit steht dem gemütlichen Fernsehvergnügen mit dem Tablet oder Laptop auf der Couch mit dem RasPi als Streaming Server nichts mehr im Wege !
Das Tvheadend natürlich auch gleichzeitig als digitaler Videorekorder funktioniert sei hier nur nebenbei erwähnt.
Raspberry Pi Server als WebCAM
Natürlich kann der Raspberry Server auch nebenbei noch den Serverraum mit einer Webcam überwachen.
Das kann mit Einzelbildern oder auch als Video Stream passieren. Die folgenden Konfigurationsschritte zeigen die Einrichtung am Beispiel einer preiswerten Allerwelts Webcam wie der Logitech_C170
Nachdem die Logitech Kamera an den Raspi USB Port angeschlossen ist checkt man mit
root@raspberrypi:# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 009: ID 046d:082b Logitech, Inc. <---
Bus 001 Device 008: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
ob sie korrekt erkannt wurde.
Nun lädt man 2 Pakete nach:
apt install fswebcam motion
Ist das geschehen prüft man mit dem Kommando:
fswebcam -r 640x480 -p YUYV -v /home/pi/testbild.jpg
ob die Kamera fehlerfrei ein Bild aufnimmt.
Ggf. die Auflösung mit "800x600" oder "1280x720" variieren bei z.B. Logitech C270 u.a. um eine höhere Auflösung zu erzielen.
Das Bild kann man, sofern kein Monitor und Tastatur am Raspi ist, mit WinSCP aus dem /home/pi Verzeichnis kopieren und extern auf dem PC betrachten. scp pi@<ip_adresse_Pi>:testbild.jpg . erledigt das unter Linux / OS-X.
Noch einfacher gehts natürlich wer eine remote Windows Session mit RDP oder VNC auf den RasPi macht und es sich gleich "online" ansieht.
Das Tool "fswebcam" bietet noch weitreichendere Möglichkeiten. Ein Blick in die man Page kann also nicht schaden. Details sprengen aber den Rahmen dieses Tutorials.
Liefert die Kamera ein Bild geht es weiter mit dem Live Streaming. Dazu muss man die Konfiguration von "motion" etwas anpassen.
1.) Als erstes editiert man die Datei /etc/default/motion und passt den Parameter:
start_motion_daemon=yes
an.
2.) Im nächsten Schritt erzeugt man ein Datenverzeichnis für motion:
mkdir /srv/motion
chown motion.motion /srv/motion
3.) Im dritten Schritt passt man die Datei /etc/motion/motion.conf an die Logitech C170 an und die Optionen von motion:
daemon on
v4l2_palette 6
width 640
height 480
framerate 5
quality 75
output_normal off
ffmpeg_cap_new off
text_right %d-%m-%Y\n%T
target_dir /srv/motion
webcam_quality 75
webcam_maxrate 15
webcam_localhost off
Danach ist der Motion Prozess (Daemon) neu zu starten um die Settings zu aktivieren mit systemctl restart motion
Öffnet man nun den Webbrowser Firefox etc. und verbindet sich per http://<Raspi_IP>:8081 mit dem Raspberry sieht man den Live Stream der Kamera im Browser.
Der Parameter output_normal off kann auch auf "ON" gesetzt werden !
motion speichert dann bei Erkennung von Bewegung im Bild unter /srv/motion Bilder ab die die Bewegung im Kamerabereich sichern. Quasi eine "Einbrecherfunktion".
Achtung: Bei einem Raspberry mit SD Flash und der Aufnahme von Bäumen im Wind muss man hier entsprechend vorsichtig sein mit dem Ändern was den verfügbaren Speicherplatz angeht !
Wie man motion in eine Webseite einbindet (Cambozola, Apache Proxy etc.) und weitere Optionen findet man unten in der Linksammlung.
Weiterführende Links
mSata als SSD verwenden statt SD Karte:
https://shop.heise.de/katalog/pi-desktop-gehause-kit
Gute Allgemeinübersicht und Projekte zum Raspberry Pi:
http://jankarres.de/uebersicht-aller-raspberry-pi-artikel/
http://raspberrycenter.de/handbuch
Fragen zum Tutorial und Installation:
Netzwerk Management Server mit Raspberry Pi - Fragen eines Anfängers
Integrierter Gehäuse Touchscreen für Raspberry Pi:
http://www.watterott.com/de/RPi-Display
Per Bluetooth Terminal auf den RasPi zugreifen:
Raspbian Autologin via serieller Konsole verhindern
Microsoft Active Directory Integration:
Debian Linux in eine Active Directory Domäne integrieren
Mit Samba bzw. Samba Shares:
https://raymii.org/s/tutorials/SAMBA_Share_with_Active_Directory_Login_o ...
Einfache Nagios Installation auf Raspberry Pi:
https://www.heise.de/ratgeber/Netzwerkueberwachung-fuer-Zuhause-Nagios-a ...
Windows Fileserver (Samba) mit Raspberry Pi:
http://jankarres.de/2013/11/raspberry-pi-samba-server-installieren/
Windows RDP Thinclient mit Raspberry Pi:
https://www.youtube.com/watch?v=rUhSR2xPmuw&index=1&list=PLHX2AZ ...
Anleitung als PDF dazu:
https://www.dropbox.com/s/4gnfnl09vwjwgva/Raspberry%20Pi%20as%20Thinclie ...
Mehrere RDP Sessions auf Windows 7:
https://blog.tim-bormann.de/windows-7-remotedesktopverbindung-home-premi ...
VPN Server für alle onboard VPN Clients in Windows, Apple, Linux und Smartphones:
IKEv2 VPN Server für Windows und Apple Clients mit Raspberry Pi
PXE Bootserver einrichten:
http://www.howtogeek.com/162070/it-geek-how-to-network-boot-pxe-the-win ...
Komfortable Ticketverwaltung für Hotspot Gastnetz Lösung:
Voucher für pfSense online verwalten und optional Voucher per SMS verschicken
FreeRadius Installation und AD Integration:
Sichere 802.1x WLAN-Benutzer Authentisierung über Radius
Radius Anmeldung über freeradius 3 filtert Attribute, soll aber nicht!
http://wiki.freeradius.org/guide/FreeRADIUS-Active-Directory-Integratio ...
http://deployingradius.com/documents/configuration/active_directory.htm ...
und auch
ClearOS 5.2 Freeradius 2 LDAP ntlm auth Active Directory
Debian Linux in eine Active Directory Domäne integrieren
VNC Server Installation:
http://elinux.org/RPi_VNC_Server
FritzBox Daten per Shellscript auslesen:
Powershell: FritzBox über TR-064 im Netzwerk konfigurieren und auslesen
Informationen aus dem Webinterface einer Fritz!Box via Shellscript auslesen
WhatsApp User mit dem Raspberry Pi verfolgen:
https://gitlab.maikel.pro/maikeldus/WhatsSpy-Public/wikis/getting-starte ...
Netzwerk Traffic live anzeigen mit NetFlow/IPFIX:
Netzwerkverkehr mit NetFlow bzw. IPFIX visualisieren
RaspberryPi als Standalone Netzwerk Sniffer
http://williamknowles.co.uk/?p=16
RasPi in gerouteten Multicast (IP PIM) VLAN Segmenten als mDNS (Bonjour) Proxy:
UPNP mit Mikrotik Routerboard hEX PoE und D-Link DGS-1210-24 Switch
Einrichtung von Nagios und erste Schritte:
Ubuntu 14.04. LTS Server - Nagios installieren und einrichten
Raspberry Pi als OpenVPN Server:
http://jankarres.de/2013/05/raspberry-pi-openvpn-vpn-server-installiere ...
Raspberry Pi als PPTP VPN Server:
http://blog.rlandolt.com/2013/01/raspberry-pi-als-vpn-server/
Eigener Cloud Server mit Owncloud auf dem Raspberry Pi:
http://blog.ulibauer.de/?p=239
Unix Netzwerk Tool iftop
Iftop ! Des Admins kleine Helferlein
(Muss a.d. RasPi mit "apt install iftop" installiert werden !)
Fertige RasPi Cloudserver Ionas, ArkOS mit grafischer Webadministration:
https://wiki.arkos.io/wiki/Getting_Started
https://www.ionas-server.com
Apple Time Machine Backup mit Raspberry Pi
http://www.mclustig.de/post/27475964315
http://hackintosh-forum.de/index.php?page=Thread&threadID=6432
iSCSI für Raspberry Pi aktivieren
http://elinux.org/RPi_iSCSI_Initiator
Raspberry Pi als WebCAM
http://derkev.in/262/raspberry-pi-fswebcam-ncftp-webcamserver/
http://www.laub-home.de/wiki/Raspberry_Pi_als_Webcam_Server
Wake on LAN (WoL) Server mit Raspberry Pi
http://www.jeremyblum.com/2013/07/14/rpi-wol-server/
VPN Server für L2TP VPN Clients:
http://www.jacco2.dds.nl/networking/freeswan-l2tp.html
OSPF, RIP, BGP Routing Suite Quagga:
http://www.nongnu.org/quagga/index.html
NTP und GPS Integration:
http://blog.retep.org/2012/06/18/getting-gps-to-work-on-a-raspberry-pi/
Raspberry Infos bei Netzmafia (DCF 77 etc.):
http://www.netzmafia.de/skripten/hardware/RasPi/
Flugbewegungen grafisch monitoren mit dem RasPi:
http://www.satsignal.eu/raspberry-pi/dump1090.html
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 191718
Url: https://administrator.de/tutorial/netzwerk-management-server-mit-raspberry-pi-191718.html
Ausgedruckt am: 24.12.2024 um 13:12 Uhr
110 Kommentare
Neuester Kommentar
Der Daumen ist oben. Aber sowas von
Eventuell vielleicht noch http://www.heise.de/hardware-hacks/meldung/Raspberry-Update-bringt-Turb ... einbauen, damit auch die volle Leistung genutzt werden kann.
Eventuell vielleicht noch http://www.heise.de/hardware-hacks/meldung/Raspberry-Update-bringt-Turb ... einbauen, damit auch die volle Leistung genutzt werden kann.
Hr hr hr, ich habe mir das hier geholt, weil ich dann doch ein wenig mehr Leistung brauche...
Damit laufen dann auch andere Applikationen etwas smoother, und auch der Versand war nach 4 Werktagen wesentlich besser als beim Pi (der hat bei mir 2 Monate gebraucht, geht ja mal gar nicht xD )
Lonesome Walker
Damit laufen dann auch andere Applikationen etwas smoother, und auch der Versand war nach 4 Werktagen wesentlich besser als beim Pi (der hat bei mir 2 Monate gebraucht, geht ja mal gar nicht xD )
Lonesome Walker
Zitat von @Lochkartenstanzer:
Wieviel kostet denn der hackberry, bis er betriebsberiot ist (netzteil & gehäuse, evtl. Zubehör) und ist gibt es
Lieferanten/distributoren in DE oder EU?
Wieviel kostet denn der hackberry, bis er betriebsberiot ist (netzteil & gehäuse, evtl. Zubehör) und ist gibt es
Lieferanten/distributoren in DE oder EU?
Hm, also ich habe den DIREKT in China bestellt, und der kam eigentlich ZIEMLICH flott.
Das Krimskrams, was man so noch braucht, war bei knapp 60 Euro (inkl. SD-Card).
Ich habe beim RaspBerry halt den Fehler gemacht, beim falschen Grossisten zu bestellen.
Ich dann wahrscheinlich auch.
Ich will ja nix gegen den Pi sagen, er is ja auch eine andere Liga als as Hackboard, und die Community ist auch WESENTLICH größer.
Für mich als eingefleischten Debianer hingegen ist Hardware-zum-Laufen-bringen jedoch nicht das Problem, da da ja schon Android drauf lief
Von der Performace her einfach klasse
Grüße
Lonesome Walker
PS: den anderen Mini-Androiden habe ich auch gleichzeitig geordert, aber auf den warte ich noch heute...?
Zitat von @aqui:
.@Lochkarte...
Definitiv bei Farnell ordern, da kommt der Pi in 1 bis 2 Wochen !
RS-Components hat Lieferzeiten von 10 bis 15 Wochen Wochen und oft noch mehr, das ist untragbar !
.@Lochkarte...
Definitiv bei Farnell ordern, da kommt der Pi in 1 bis 2 Wochen !
RS-Components hat Lieferzeiten von 10 bis 15 Wochen Wochen und oft noch mehr, das ist untragbar !
Das weiß ich inzwischen auch.
Mal sehen, wenn die noch lange brauchen, storniere ich ggf meien Bestellung.
lks
Hallo aqui,
klasse Anleitung, hoffentlich findest Du auch noch die Zeit für die Fortsetzung(en), wäre auf jeden Fall
toll.
Vielleicht noch interessant zu diesem Artikel Paspberry Pi erhält mehr Speicher.
Gruß
Dobby
klasse Anleitung, hoffentlich findest Du auch noch die Zeit für die Fortsetzung(en), wäre auf jeden Fall
toll.
Vielleicht noch interessant zu diesem Artikel Paspberry Pi erhält mehr Speicher.
Gruß
Dobby
Hallo Zusammen,
finde ich wirklich doll was Ihr da alles zusammenbaut. Aber wäre es nicht einfacher wenn Ihr zum beispiel einfach Spiceworks benutzt. Ist alles dabei kann mit ein paar klicks auf server oder WST Funktion umgestellt werden hat ein GUI dabei und mann wird per mail oder SMS über den zustand seines Nwtzwerks Informiert. nur mal so
Übrigens mann hat ein Super Forum und Support Comunity und all for free
www.spiceworks.com
grüsse aus Emmenbrücke - CH
goliat
finde ich wirklich doll was Ihr da alles zusammenbaut. Aber wäre es nicht einfacher wenn Ihr zum beispiel einfach Spiceworks benutzt. Ist alles dabei kann mit ein paar klicks auf server oder WST Funktion umgestellt werden hat ein GUI dabei und mann wird per mail oder SMS über den zustand seines Nwtzwerks Informiert. nur mal so
Übrigens mann hat ein Super Forum und Support Comunity und all for free
www.spiceworks.com
grüsse aus Emmenbrücke - CH
goliat
Zitat von @aqui:
Einfacher schon wenn man nur Klicki Bunti installieren will und NUR Monitoren will. Das ist aber genau nicht das Ziel dieses
Tutorials, denn SW rennt wieder nur auf einem großen Boliden der OS Lizenzkosten erfordert und versuche mal eine 802.1x WLAN
oder LAN User Authentisierung damit zu machen oder einen BGP Router damit zu simulieren...da wirst du kläglich scheitern. Vom
unbezahlbaren Lern- und Weiterbildungseffekt was das o.a. Projekt mit sich bringt mal ganz abgesehen.
Einfacher schon wenn man nur Klicki Bunti installieren will und NUR Monitoren will. Das ist aber genau nicht das Ziel dieses
Tutorials, denn SW rennt wieder nur auf einem großen Boliden der OS Lizenzkosten erfordert und versuche mal eine 802.1x WLAN
oder LAN User Authentisierung damit zu machen oder einen BGP Router damit zu simulieren...da wirst du kläglich scheitern. Vom
unbezahlbaren Lern- und Weiterbildungseffekt was das o.a. Projekt mit sich bringt mal ganz abgesehen.
aqui, aqui, leider gehst Du hier von falschen Vorraussetzungen aus, wie ich das früher auch getan habe.
Die meisten Mitglieder hier sind Hobby-Admins, vielleicht noch mit MS-Zertifizierung, aber was jetzt z.B. ein PEBKAC ist, wissen die meisten nur nach Google... (so, wieder ein paar erwischt!)
Du siehst, Firmen MÜSSEN heutzutage zwangsweise viel Geld für Lizenzen ausgeben, weil sie nicht mehr GUTE Admins, sondern vermeintlich billige Admins wollen.
Spiceworks ist zwar ein nettes Spielzeug, aber aufgrund seiner Nachhausetelefoniererei ist es bei mir im Netzwerk irgendwie nie so recht angekommen :-P
Lonesome Walker
PS: Interesse am Hackberry?
hallöle,
@goliat
setze doch selber schnell ein HowTo, Tutorial oder eine Anleitung auf und lass den aqui das hier mal schön weiter machen, bitte.
@aqui
Für 25 € gibt es jetzt sogar eine Kamera zu diesem Raspberry PI board.
PI Kamera
Außerdem finde ich persönlich gehört auch so ein System up to date gehalten und mit einem "alten Windows"
ist das halt so eine Sache, außer einem Windows Embedded System. Und Software gibt es satt für Linux,
zudem es bestimmt auch noch stabiler bei einem 24/7/365 Dauerbetrieb.
@goliat
setze doch selber schnell ein HowTo, Tutorial oder eine Anleitung auf und lass den aqui das hier mal schön weiter machen, bitte.
@aqui
Für 25 € gibt es jetzt sogar eine Kamera zu diesem Raspberry PI board.
PI Kamera
Außerdem finde ich persönlich gehört auch so ein System up to date gehalten und mit einem "alten Windows"
ist das halt so eine Sache, außer einem Windows Embedded System. Und Software gibt es satt für Linux,
zudem es bestimmt auch noch stabiler bei einem 24/7/365 Dauerbetrieb.
Hallo,
ich habe nun auch meinen RaspberryPI hier und versuche gerade nach eurer Anleitung einen SYSLOG-Server zu basteln. Hat auch soweit alles gut geklappt, doch nun habe ich ein Problem. Ich bekomme die folgende Fehlermeldung im Browser bei der LogAnalyzer Page:
"The file is not located in the allowed directories list (By default /var/log is allowed only).
Extra Fehler Details:
The file '/var/log/syslog' is not located in one of these directories: '/var/log/'"
Also ich habe geschaut und die datei syslog befindet sich im Verzeichnis /var/log/ .
Kann mir da vielleicht jemand helfen damit ich den Loganalyzer ans laufen bekomme.
Gruß
Hajo
ich habe nun auch meinen RaspberryPI hier und versuche gerade nach eurer Anleitung einen SYSLOG-Server zu basteln. Hat auch soweit alles gut geklappt, doch nun habe ich ein Problem. Ich bekomme die folgende Fehlermeldung im Browser bei der LogAnalyzer Page:
"The file is not located in the allowed directories list (By default /var/log is allowed only).
Extra Fehler Details:
The file '/var/log/syslog' is not located in one of these directories: '/var/log/'"
Also ich habe geschaut und die datei syslog befindet sich im Verzeichnis /var/log/ .
Kann mir da vielleicht jemand helfen damit ich den Loganalyzer ans laufen bekomme.
Gruß
Hajo
Hi,
ich habs nochmal deinstalliert und wie beschrieben installiert doch noch immer bekomme
ich den Fehler angezeigt. Ich werde mal die SD-Karte löschen und frisch das Raspberry
installieren.
Hoffe das ich dann nach einer sauberen installation den loganalyzer zum laufen bekomme.
Denn sonst lohnt es ja nicht auch weiter zumachen mit externen Geräten (Cisco ASA) den
zu nutzen.
Gruß
Hajo
ich habs nochmal deinstalliert und wie beschrieben installiert doch noch immer bekomme
ich den Fehler angezeigt. Ich werde mal die SD-Karte löschen und frisch das Raspberry
installieren.
Hoffe das ich dann nach einer sauberen installation den loganalyzer zum laufen bekomme.
Denn sonst lohnt es ja nicht auch weiter zumachen mit externen Geräten (Cisco ASA) den
zu nutzen.
Gruß
Hajo
Hi,
leider kan ich das nun erst später mal testen denn meine SD-Karte ist leider gestern ins
nirvarna gegangen. Sie wird zwar noch erkannt von Größe und partitionierung, doch sie
lässt sich nicht mehr löschen geschweige denn ein sauberes Image drauf bringen.
Doch sobald ich Ersatz habe, werde ich hier posten wie ich vorangekommen bin und ob ich dann
den Syslog incl. dem Loganalyzer zum laufen gebracht habe.
Wünsche noch ein schönes Silvester und guten Rutsch ins neue Jahr...
Gruß
Hajo
leider kan ich das nun erst später mal testen denn meine SD-Karte ist leider gestern ins
nirvarna gegangen. Sie wird zwar noch erkannt von Größe und partitionierung, doch sie
lässt sich nicht mehr löschen geschweige denn ein sauberes Image drauf bringen.
Doch sobald ich Ersatz habe, werde ich hier posten wie ich vorangekommen bin und ob ich dann
den Syslog incl. dem Loganalyzer zum laufen gebracht habe.
Wünsche noch ein schönes Silvester und guten Rutsch ins neue Jahr...
Gruß
Hajo
Zitat von @Hajo2006:
Hi,
leider kan ich das nun erst später mal testen denn meine SD-Karte ist leider gestern ins
nirvarna gegangen. Sie wird zwar noch erkannt von Größe und partitionierung, doch sie
lässt sich nicht mehr löschen geschweige denn ein sauberes Image drauf bringen.
Hi,
leider kan ich das nun erst später mal testen denn meine SD-Karte ist leider gestern ins
nirvarna gegangen. Sie wird zwar noch erkannt von Größe und partitionierung, doch sie
lässt sich nicht mehr löschen geschweige denn ein sauberes Image drauf bringen.
Das würde Deine Probleme erklären:
Wenn die kurz vorm abnibbeln war und manche zellen sich nicht mehr lesen ließen, kann das solche Probleme bereiten.
lks
Hi,
also ich habe nun da die defekte SD-Karte noch nicht getauscht wurde, eine meiner etwas
älteren 4GB SD-Karte genommen und alles frisch installiert. Doch noch immer bekomme ich
die Meldung das das syslog File nicht unter /var/log/ sein soll. Langsam bin ich am Ende
meines Wissens angekommen und frage mich woran es noch liegen könnte das er einfach nicht
den Zugriff auf die vorhandene Datei bekommt.
Denn es kamen bei der Installation vom Loganalyzer (Ver. 3.61) keine Fehlermeldungen.
Gruß
Hajo
also ich habe nun da die defekte SD-Karte noch nicht getauscht wurde, eine meiner etwas
älteren 4GB SD-Karte genommen und alles frisch installiert. Doch noch immer bekomme ich
die Meldung das das syslog File nicht unter /var/log/ sein soll. Langsam bin ich am Ende
meines Wissens angekommen und frage mich woran es noch liegen könnte das er einfach nicht
den Zugriff auf die vorhandene Datei bekommt.
Denn es kamen bei der Installation vom Loganalyzer (Ver. 3.61) keine Fehlermeldungen.
Gruß
Hajo
Hut ab. Das ist eine so gute Anleitung, dass ich die Hardware gleich geordert habe.
Hintergrund: Über google habe ich nach einer Lösung für mein Problem gesucht, habe dieses Forum gefunden und nach einigem Stöbern bin ich auf dieses Howto gestoßen.
In einem kleinen Unternehmen fand sich niemand sonst, der "sowas" schon mal gemacht hat, also war ich sehr schnell dazu auserkoren, dafür zu sorgen, dass das Netzwerk immer läuft. Aus Sicht von "oben" gut gelöst. Hohe Verfügbarkeit des Mitarbeiters und günstig(er als ein externer ITler)... Erlernt habe ich einen kaufmännischen Beruf, also nicht wirklich irgend etwas mit IT. Aber privat bin ich an den Entwicklungen sehr interessiert. Da ich mich nicht mehr als nötig mit kostenpflichtigen Windowsprodukten herumärgern möchte, nutze ich auf den meisten Rechnern Ubuntu. Als Umsteiger hat man da noch ziemlich viele Fragen, aber inzwischen läuft alles so wie es soll. Soweit zu mir.
Wir haben hier zwei Standorte, die über VPN verbunden sind. Insgesamt gibt es 4 Switches von HP, bei denen ich den Traffic auf den einzelnen Ports beobachten möchte. Der 2810G-24 und der 2615-8-PoE bringen diese Funktion im GUI mit. Aber es wird immer nur der Ist-Zustand angezeigt. Die beiden 1810G-24 (aufgeteilt in zwei Vlans) und 1810G-8 leider nicht.
Was ich suche, ist die Möglichkeit, den Trafficwert alle 10-15 Sekunden aufzuzeichnen und diesen dann als Verlaufsgrafik zu visualisieren.
So wie ich die Anleitung hier verstehe ist das dem Grunde nach möglich. Aber ist es auch möglich, dies für jeden einzelnen Port zu realisieren?
Hintergrund: Über google habe ich nach einer Lösung für mein Problem gesucht, habe dieses Forum gefunden und nach einigem Stöbern bin ich auf dieses Howto gestoßen.
In einem kleinen Unternehmen fand sich niemand sonst, der "sowas" schon mal gemacht hat, also war ich sehr schnell dazu auserkoren, dafür zu sorgen, dass das Netzwerk immer läuft. Aus Sicht von "oben" gut gelöst. Hohe Verfügbarkeit des Mitarbeiters und günstig(er als ein externer ITler)... Erlernt habe ich einen kaufmännischen Beruf, also nicht wirklich irgend etwas mit IT. Aber privat bin ich an den Entwicklungen sehr interessiert. Da ich mich nicht mehr als nötig mit kostenpflichtigen Windowsprodukten herumärgern möchte, nutze ich auf den meisten Rechnern Ubuntu. Als Umsteiger hat man da noch ziemlich viele Fragen, aber inzwischen läuft alles so wie es soll. Soweit zu mir.
Wir haben hier zwei Standorte, die über VPN verbunden sind. Insgesamt gibt es 4 Switches von HP, bei denen ich den Traffic auf den einzelnen Ports beobachten möchte. Der 2810G-24 und der 2615-8-PoE bringen diese Funktion im GUI mit. Aber es wird immer nur der Ist-Zustand angezeigt. Die beiden 1810G-24 (aufgeteilt in zwei Vlans) und 1810G-8 leider nicht.
Was ich suche, ist die Möglichkeit, den Trafficwert alle 10-15 Sekunden aufzuzeichnen und diesen dann als Verlaufsgrafik zu visualisieren.
So wie ich die Anleitung hier verstehe ist das dem Grunde nach möglich. Aber ist es auch möglich, dies für jeden einzelnen Port zu realisieren?
Vielen Dank für die prompte Antwort. Ich hoffe, dass der/die/das Kleine morgen eintrudelt. Ich werde nach deiner Anleitung vorgehen und alles wie beschrieben installieren. Ausgenommen den Anwendungen, die ich jetzt und in absehbarer Zeit nicht brauchen werde (Einmalpasswort, Wlan, Radius Server, Zugriffskontrolle, Terminal Server für remoten Zugang, OSPF, etc.)
Als Nichtlinuxer und Nichtprogrammierer hoffe ich darauf, dass alles auf Anhieb läuft, ansonsten werde ich euch mit vielen Fragen behelligen müssen ;)
Wenn alles soweit läuft, bräuchte ich Hilfe zum Thema: Wie stelle ich alle Ports der 4 Switche grafisch dar? Aber bis dahin habe ich wohl erstmal alle Hände voll zu tun...
Als Nichtlinuxer und Nichtprogrammierer hoffe ich darauf, dass alles auf Anhieb läuft, ansonsten werde ich euch mit vielen Fragen behelligen müssen ;)
Wenn alles soweit läuft, bräuchte ich Hilfe zum Thema: Wie stelle ich alle Ports der 4 Switche grafisch dar? Aber bis dahin habe ich wohl erstmal alle Hände voll zu tun...
Na dann will ich mit meinen Fragen mal beginnen ;)
Ich habe mir die Anleitung nun schon einige Male durchgelesen und so langsam wird es klarer, aber einige Fragen bleiben. Zur besseren Übersicht nummeriere ich mal durch.
1) Wie ich schrieb, haben wir zwei Standorte über VPN verbunden. Können die Werte der Switche von beiden Standorten abgefragt werden oder nur von einem?
2) Muss der Server die Daten am Switch aktiv abfragen oder werden diese vom Switch ins Netz gesendet, sobald die Funktion im Menü aktiviert wurde? Ich habe sie an allen 4 Switchen bereits aktiviert.
3) Ich werde den Kleinen vorerst auf DHCP stehen lassen und dem Router (FBF 7390) sagen, dass immer die selbe IP zugeordnet werden soll. Diese werde ich dann in die MRTG Konfigurationsdatei eintragen. Was ist aber nun, wenn ich den Server doch am anderen Standort installiere? Muss ich diese IP dann jedes Mal ändern oder kann ich einfach zwei IPs eintragen?
4) Die Sache mit MRTG und Crontab habe ich noch nicht ganz verstanden. Ich möchte die Daten alle, sagen wir mal 0,1 Minuten abrufen und visualisieren lasen. Wie müsste dann die Beispieldatei mrtg.cfg aussehen? Muss das Komma durch einen Punkt ersetzt werden?
5) Wie kann ich die 4 Switche auseinander halten? Wird automatisch für jeden Switch ein Link in der index.html erstellt?
6) Was ist, wenn der Server neu gestartet wird, muss ich dann den Befehl "crontab cronmrtg" jedes Mal erneut aufrufen? Du schreibst, dass jede Komponente eine MRTG Konfig Datei und einen Crontag Eintrag erhält. Wie aber ordne ich die einzelnen Dateien den Geräten zu und wie und wo erzeuge ich den Crontag Eintrag? Da habe ich einen Knoten in der Denke...
P.S. Laut Tracking sollte DHL heute mit den Paket eintreffen
edit: Er ist da
Ich habe das Gerät mit Zubehör bei Vesalia.de bestellt. Zu deren kostenlosem Service gehört, dass sich das Wheezy Image schon auf der SD-Card befindet. Wie kann ich feststellen, ob es sich um die aktuellste Version handelt? Oder ist die Imageversion egal, da mit dem Update sowieso alles auf den aktuellsten Stand gebracht wird?
Ich habe mir die Anleitung nun schon einige Male durchgelesen und so langsam wird es klarer, aber einige Fragen bleiben. Zur besseren Übersicht nummeriere ich mal durch.
1) Wie ich schrieb, haben wir zwei Standorte über VPN verbunden. Können die Werte der Switche von beiden Standorten abgefragt werden oder nur von einem?
2) Muss der Server die Daten am Switch aktiv abfragen oder werden diese vom Switch ins Netz gesendet, sobald die Funktion im Menü aktiviert wurde? Ich habe sie an allen 4 Switchen bereits aktiviert.
3) Ich werde den Kleinen vorerst auf DHCP stehen lassen und dem Router (FBF 7390) sagen, dass immer die selbe IP zugeordnet werden soll. Diese werde ich dann in die MRTG Konfigurationsdatei eintragen. Was ist aber nun, wenn ich den Server doch am anderen Standort installiere? Muss ich diese IP dann jedes Mal ändern oder kann ich einfach zwei IPs eintragen?
4) Die Sache mit MRTG und Crontab habe ich noch nicht ganz verstanden. Ich möchte die Daten alle, sagen wir mal 0,1 Minuten abrufen und visualisieren lasen. Wie müsste dann die Beispieldatei mrtg.cfg aussehen? Muss das Komma durch einen Punkt ersetzt werden?
5) Wie kann ich die 4 Switche auseinander halten? Wird automatisch für jeden Switch ein Link in der index.html erstellt?
6) Was ist, wenn der Server neu gestartet wird, muss ich dann den Befehl "crontab cronmrtg" jedes Mal erneut aufrufen? Du schreibst, dass jede Komponente eine MRTG Konfig Datei und einen Crontag Eintrag erhält. Wie aber ordne ich die einzelnen Dateien den Geräten zu und wie und wo erzeuge ich den Crontag Eintrag? Da habe ich einen Knoten in der Denke...
P.S. Laut Tracking sollte DHL heute mit den Paket eintreffen
edit: Er ist da
Ich habe das Gerät mit Zubehör bei Vesalia.de bestellt. Zu deren kostenlosem Service gehört, dass sich das Wheezy Image schon auf der SD-Card befindet. Wie kann ich feststellen, ob es sich um die aktuellste Version handelt? Oder ist die Imageversion egal, da mit dem Update sowieso alles auf den aktuellsten Stand gebracht wird?
Hallo,
ich habe mich hier gerade angemeldet, weil ich mit meinen ersten Linux-Versuchen nicht so recht klar komme.
Raspberry Pi besorgt, System drauf und los ging es, Hat super geklappt und ich war (bin) begeistert. Einfach super erklärt und gut verlinkt.
Zu meinen Problemchen:
1. Loganalyzer, bleibt im Step 7 hängen, ich kann die Konfiguration nicht erfolgreich beenden. Fehler:
"The following parameter were missing: logline type" <-- ich habe alle Einstellungen belassen.
Ich habe den loganalyzer 4 mal neu installiert, 3 mal die Version 3.6.3 und einmal die Version 3.6.2,
leider immer wieder der gleiche Effekt.
Wo liegt das Problem?
2. Webbasierte Voucher:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
funktioniert und sieht genauso aus, aber das nachfolgende Create wird mit ungenügenden Rechten abgelehnt?
Habe dann als "Root" weiter gemacht und auch die Parameterdatei entsprechend (mit Root) angepasst.
Im Browser komme ich nur auf eine Anzeige, wenn ich nach der IP-Adresse"/vouchergenerator/install.php" eingebe!
Fehlt da in der Anleitung das Verzeichnis "Vouchergenerator"?
Leider kommt dann aber auch nur die Anzeige "Datenbankzugriff abgelehnt"?
Der vorherige Check mit info.php funktioniert und meldet keine Fehler.
Was mache ich hier falsch, wo könnte der Fehler liegen?
3. VNC Zugriff
Auf dem Raspberry wie beschrieben installiert, keine Probleme. Dann an Win7-Maschine und Ultra VNC installiert,
keine Probleme. Ultra gestartet - IP Adresse mit PortNr. eingegeben - Kennwort Rückfrage beantwortet und dann kommt
ein graues leeeres Fenster mit einer Symbol-leiste. Ich sehe nichts und kann auch nichts weiter machen?
Was ist hier schief gelaufen?
Danke für die Hilfe
ich habe mich hier gerade angemeldet, weil ich mit meinen ersten Linux-Versuchen nicht so recht klar komme.
Raspberry Pi besorgt, System drauf und los ging es, Hat super geklappt und ich war (bin) begeistert. Einfach super erklärt und gut verlinkt.
Zu meinen Problemchen:
1. Loganalyzer, bleibt im Step 7 hängen, ich kann die Konfiguration nicht erfolgreich beenden. Fehler:
"The following parameter were missing: logline type" <-- ich habe alle Einstellungen belassen.
Ich habe den loganalyzer 4 mal neu installiert, 3 mal die Version 3.6.3 und einmal die Version 3.6.2,
leider immer wieder der gleiche Effekt.
Wo liegt das Problem?
2. Webbasierte Voucher:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
funktioniert und sieht genauso aus, aber das nachfolgende Create wird mit ungenügenden Rechten abgelehnt?
Habe dann als "Root" weiter gemacht und auch die Parameterdatei entsprechend (mit Root) angepasst.
Im Browser komme ich nur auf eine Anzeige, wenn ich nach der IP-Adresse"/vouchergenerator/install.php" eingebe!
Fehlt da in der Anleitung das Verzeichnis "Vouchergenerator"?
Leider kommt dann aber auch nur die Anzeige "Datenbankzugriff abgelehnt"?
Der vorherige Check mit info.php funktioniert und meldet keine Fehler.
Was mache ich hier falsch, wo könnte der Fehler liegen?
3. VNC Zugriff
Auf dem Raspberry wie beschrieben installiert, keine Probleme. Dann an Win7-Maschine und Ultra VNC installiert,
keine Probleme. Ultra gestartet - IP Adresse mit PortNr. eingegeben - Kennwort Rückfrage beantwortet und dann kommt
ein graues leeeres Fenster mit einer Symbol-leiste. Ich sehe nichts und kann auch nichts weiter machen?
Was ist hier schief gelaufen?
Danke für die Hilfe
Es ist zum heulen
Ich werde wohl kein Freund vom Linux, sorry aber ich habe das ganze Teil nun zum 3. mal neu aufgesetzt. Bis zum Loganalyzer klappt alles. Und natürlich gebe ich nach dem Start unter "pi" --> "sudo su" ein und nehme alle folgenden Installationen unter diesem User vor. Step 7 meldet jedoch immer noch den gleichen Fehler. Das macht so keinen Spaß mehr.
Ich werde wohl kein Freund vom Linux, sorry aber ich habe das ganze Teil nun zum 3. mal neu aufgesetzt. Bis zum Loganalyzer klappt alles. Und natürlich gebe ich nach dem Start unter "pi" --> "sudo su" ein und nehme alle folgenden Installationen unter diesem User vor. Step 7 meldet jedoch immer noch den gleichen Fehler. Das macht so keinen Spaß mehr.
Hallo,
besser geeignet! Denn die kostet nur ca. 50 - 60 € alles in allem und kann auch zu Notlösungen
heran gezogen werden und noch weit aus mehr Möglichkeiten bieten als der PRTG selber!
Obwohl der PRTG von Paessler schon eine schicke Software ist die zusammen mit Nagios ja auch irgend wie
die Landschaft beherrscht, aber bei der kleinen Lösung von @aqui kann man mit einem apt-get.....
schnell irgend etwas nachrüsten was der PRTG nicht einmal ansatzweise liefert.
- WireShark
- TCPDUMP
- Snort
- Suricata
- TFTP Server
- Nagios
- Scripting mit nahezu jeder verfügbaren Script Sprache
- Syslog Server oder handler
- Radius server
- FTP/SFTP/HTTP Server
- Backup oder Sicherungsserver für Konfigurationsdateien
- Mit angeschlossener USB Festplatte oder gemountetem externen Platz Installationsserver
- Mit angeschlossenem Modem Alarmnachrichten von Snort oder Nagios über SMS versenden
- VPN Server........
Also zu dem Preis ist das unschlagbar finde ich.
Gruß
Dobby
P.S. Die kleine Kiste passt auch in jeden Koffer und ist schnell überall mit hingeschleppt und angeschlossen.
anstelle sich das Leben derart schwierig zu machen: paessler.com.....
Für einen kleinen Betrieb oder eine kleine Heiminstallation ist die Lösung von @aqui aberbesser geeignet! Denn die kostet nur ca. 50 - 60 € alles in allem und kann auch zu Notlösungen
heran gezogen werden und noch weit aus mehr Möglichkeiten bieten als der PRTG selber!
Obwohl der PRTG von Paessler schon eine schicke Software ist die zusammen mit Nagios ja auch irgend wie
die Landschaft beherrscht, aber bei der kleinen Lösung von @aqui kann man mit einem apt-get.....
schnell irgend etwas nachrüsten was der PRTG nicht einmal ansatzweise liefert.
- WireShark
- TCPDUMP
- Snort
- Suricata
- TFTP Server
- Nagios
- Scripting mit nahezu jeder verfügbaren Script Sprache
- Syslog Server oder handler
- Radius server
- FTP/SFTP/HTTP Server
- Backup oder Sicherungsserver für Konfigurationsdateien
- Mit angeschlossener USB Festplatte oder gemountetem externen Platz Installationsserver
- Mit angeschlossenem Modem Alarmnachrichten von Snort oder Nagios über SMS versenden
- VPN Server........
Also zu dem Preis ist das unschlagbar finde ich.
Gruß
Dobby
P.S. Die kleine Kiste passt auch in jeden Koffer und ist schnell überall mit hingeschleppt und angeschlossen.
Super hilfreich!
Ich habe leider ein Problem.
Habe soeben mein Raspberry PI B in Betrieb genommen.
Wollte die Netzwerkeinstellungen festlegen und...der Ordner /etc/NETWORK/INTERFACES existiert nicht.
Habe nun schon einige Zeit gegooglet und Raspian neu installiert, leider ohne Erfolg, das Rasp zieht sich
momentan die IP vom DHCP (10.0.1.57) jetzt ist die Frage, wie bekomme ich die fest auf die 10.0.1.250 ohne diesen "Network" Ordner?
Ich habe leider ein Problem.
Habe soeben mein Raspberry PI B in Betrieb genommen.
Wollte die Netzwerkeinstellungen festlegen und...der Ordner /etc/NETWORK/INTERFACES existiert nicht.
Habe nun schon einige Zeit gegooglet und Raspian neu installiert, leider ohne Erfolg, das Rasp zieht sich
momentan die IP vom DHCP (10.0.1.57) jetzt ist die Frage, wie bekomme ich die fest auf die 10.0.1.250 ohne diesen "Network" Ordner?
Hallo zusammen,
so heute kam mein Raspberry Pi diesen gleich mal nach Aqui's Anleitung zum Syslog Server eingerichtet. Dieser funktioniert auch so wie er soll.
In der Pfsense unter Status > System logs > Settings hab ich dann ebenfalls den Syslogserver eingetragen und das Häckchen bei 'Portal Auth events' gesetzt.
Die Loging Meldungen sehe ich auch per LogAnalyzer.
Nun hab ich aber noch 2 Fragen dazu.
1. Die Einträge die Pfsense dort ablegt kann man doch sicherlich auch irgendwie als "Quelle" angeben bzw. in einer eigenen Datei speichern. Falls ja, wie lauten hier dann die Source Einträge in der config.php?
2. Reicht diese Protokollierung der Logins?
Ich meine irgendwo mal ein Bild gesehen zu haben wo mir auch anzeigt welche MAC/IP Adresse welche Internetseite besucht hat.
Falls es diese Möglichkeit auch gibt, wäre dies überhaupt erlaubt wenn man es in den AGBs auf der Login-Seite erwähnt? Falls ja, wie realisiert man dies?
Und dann hab ich mal vor längere Zeit (1 Jahr oder 2 Jahre) schon an Aqui die Frage zwecks Voucher generieren gestellt. (Vielleicht kannst dich ja noch dran erinnern ;) ). Damals hatte bzw habe noch, das Problem, das wenn ich alle Vouchercodes aufgebraucht habe und mir unter der gleichen Rolle einen neuen Voucher Satz generiere, dies genau wieder die gleichen Vouchercodes sind wie auch bei der vorherigen Generierung. Hier muss ich immer erst die Rolle löschen und dann Neuanlegen.
Ist dies bei euch auch so und somit ein normales Verhalten oder stimmt hier etwas bei mir nicht?
Grüße
Schwabe
so heute kam mein Raspberry Pi diesen gleich mal nach Aqui's Anleitung zum Syslog Server eingerichtet. Dieser funktioniert auch so wie er soll.
In der Pfsense unter Status > System logs > Settings hab ich dann ebenfalls den Syslogserver eingetragen und das Häckchen bei 'Portal Auth events' gesetzt.
Die Loging Meldungen sehe ich auch per LogAnalyzer.
Nun hab ich aber noch 2 Fragen dazu.
1. Die Einträge die Pfsense dort ablegt kann man doch sicherlich auch irgendwie als "Quelle" angeben bzw. in einer eigenen Datei speichern. Falls ja, wie lauten hier dann die Source Einträge in der config.php?
2. Reicht diese Protokollierung der Logins?
Ich meine irgendwo mal ein Bild gesehen zu haben wo mir auch anzeigt welche MAC/IP Adresse welche Internetseite besucht hat.
Falls es diese Möglichkeit auch gibt, wäre dies überhaupt erlaubt wenn man es in den AGBs auf der Login-Seite erwähnt? Falls ja, wie realisiert man dies?
Und dann hab ich mal vor längere Zeit (1 Jahr oder 2 Jahre) schon an Aqui die Frage zwecks Voucher generieren gestellt. (Vielleicht kannst dich ja noch dran erinnern ;) ). Damals hatte bzw habe noch, das Problem, das wenn ich alle Vouchercodes aufgebraucht habe und mir unter der gleichen Rolle einen neuen Voucher Satz generiere, dies genau wieder die gleichen Vouchercodes sind wie auch bei der vorherigen Generierung. Hier muss ich immer erst die Rolle löschen und dann Neuanlegen.
Ist dies bei euch auch so und somit ein normales Verhalten oder stimmt hier etwas bei mir nicht?
Grüße
Schwabe
Zitat von @banane31:
Super hilfreich!
Ich habe leider ein Problem.
Habe soeben mein Raspberry PI B in Betrieb genommen.
Wollte die Netzwerkeinstellungen festlegen und...der Ordner /etc/NETWORK/INTERFACES existiert nicht.
Habe nun schon einige Zeit gegooglet und Raspian neu installiert, leider ohne Erfolg, das Rasp zieht sich
momentan die IP vom DHCP (10.0.1.57) jetzt ist die Frage, wie bekomme ich die fest auf die 10.0.1.250 ohne diesen
"Network" Ordner?
Super hilfreich!
Ich habe leider ein Problem.
Habe soeben mein Raspberry PI B in Betrieb genommen.
Wollte die Netzwerkeinstellungen festlegen und...der Ordner /etc/NETWORK/INTERFACES existiert nicht.
Habe nun schon einige Zeit gegooglet und Raspian neu installiert, leider ohne Erfolg, das Rasp zieht sich
momentan die IP vom DHCP (10.0.1.57) jetzt ist die Frage, wie bekomme ich die fest auf die 10.0.1.250 ohne diesen
"Network" Ordner?
Hallo,
versuch es mal mit:
nano /etc/network/interfaces
Denn Interfaces ist kein Verzeichnis sondern eine Datei! ;)
Hallo aqui,
ich versuche gerade so einen genialen Raspberry-Server nach Deiner Anleitung zu erstellen. Bis zum Log Analyzer bin ich gekommen, aber dann bin ich mir etwas unsicher.
Wie bekomme ich pfsense auf den Raspberry?
Bisher dachte ich daß ich meinen Speicher (SD-Karte) formatieren muß um pfsense installieren zu können (kann aber eigentlich doch nicht sein), oder muss pfsense auf einem usb-stick mit dem Rasberry laufen?
Bis zu dieser Stelle ist die Installation für mich als absoluten Anfänger dank Deiner Anleitung ganz gut gelaufen.
Gruß autohoti
ich versuche gerade so einen genialen Raspberry-Server nach Deiner Anleitung zu erstellen. Bis zum Log Analyzer bin ich gekommen, aber dann bin ich mir etwas unsicher.
Wie bekomme ich pfsense auf den Raspberry?
Bisher dachte ich daß ich meinen Speicher (SD-Karte) formatieren muß um pfsense installieren zu können (kann aber eigentlich doch nicht sein), oder muss pfsense auf einem usb-stick mit dem Rasberry laufen?
Bis zu dieser Stelle ist die Installation für mich als absoluten Anfänger dank Deiner Anleitung ganz gut gelaufen.
Gruß autohoti
imho dadurch, daß Du Dir ein BSD-Image draufmachst und dann pfsense dazuinstallierst.
Soweit ich weiß, gibt es noch kein fertiges pfsense-Image für die Himbeere 3,14159.
lks
Hallo Schwabe,
in Deinem Beitrag hast Du erwähnt, daß Du die pfsense mit dem Syslogserver verwendest.
Meine Frage: Hast Du die pfsense auf dem Raspberry laufen, oder auf einem anderen Rechner (Alix ...), der an den Raspberry zum Logging angeschlossen ist?
Laut Lochkartenstanzer und aqui läuft pfsense nicht auf dem Rasberry (mit Linux-BS) sondern nur mit einem BSD-Image.
Ich wollte eigentlich nur ein Gerät als Netzwerk Management Server (für captive Portal und Logging) verwenden.
Gruß
autohoti
in Deinem Beitrag hast Du erwähnt, daß Du die pfsense mit dem Syslogserver verwendest.
Meine Frage: Hast Du die pfsense auf dem Raspberry laufen, oder auf einem anderen Rechner (Alix ...), der an den Raspberry zum Logging angeschlossen ist?
Laut Lochkartenstanzer und aqui läuft pfsense nicht auf dem Rasberry (mit Linux-BS) sondern nur mit einem BSD-Image.
Ich wollte eigentlich nur ein Gerät als Netzwerk Management Server (für captive Portal und Logging) verwenden.
Gruß
autohoti
Ich habe ein RasperryPi als DNS/DHCP/DHCPv6 Server eingerichtet. Mein roter AVM FritzBox ist leider nicht mit eine fehlerfreie Fimware bestückt. Mit der RPI werden einige Ungereimtheiten der FritzBox ausgebügelt, IPv6 wird nicht gerade vorbildlich unterstützt.
Ein gravierenden Problem ist das der RPI Unterumständen keine Default Route mehr hat. Dies geschieht wen die FritzBox aus irgend ein Grund neu startet oder die Ethernet Schnittstelle deaktiviert und reaktiviert.
Weiß Jemanden eine Lösung ?
kksa
Ein gravierenden Problem ist das der RPI Unterumständen keine Default Route mehr hat. Dies geschieht wen die FritzBox aus irgend ein Grund neu startet oder die Ethernet Schnittstelle deaktiviert und reaktiviert.
Weiß Jemanden eine Lösung ?
kksa
Alles ist natürlich statisch konfiguriert. Aktueller Stand ist, dass ich Heute einige Reboot der Fritzbox oder ähnliches hatte. Damit das Netzwerk läuft muss ich immer wieder der RPI reboot, ist am schmerzfreiesten). Nach ein Reboot der FB fehlt die IPv4 default Route auf der RPI und das Netzwerk geht nicht mehr wie gewünscht.
Auszug der Datei /etc/network/interfaces.
iface eth0 inet static
hwaddress B8:27:EB:DD:F5:BE
address 192.168.178.2
netmask 255.255.255.0
network 192.168.178.255
broadcast 192.168.178.255
gateway 192.168.178.1
dns-nameservers 8.8.8.8
dns-search example.org
iface eth0 inet6 static
address 2001:db8:1:1::2
netmask 64
gateway 2001:db8:1:1:abcd:abcd:abcd:abcd
dns-nameservers 2001:4860:4860::8888
Die IPv6 Adresse und Domaene lauten ein wenig anders und sind korrekt
jjsa
Auszug der Datei /etc/network/interfaces.
iface eth0 inet static
hwaddress B8:27:EB:DD:F5:BE
address 192.168.178.2
netmask 255.255.255.0
network 192.168.178.255
broadcast 192.168.178.255
gateway 192.168.178.1
dns-nameservers 8.8.8.8
dns-search example.org
iface eth0 inet6 static
address 2001:db8:1:1::2
netmask 64
gateway 2001:db8:1:1:abcd:abcd:abcd:abcd
dns-nameservers 2001:4860:4860::8888
Die IPv6 Adresse und Domaene lauten ein wenig anders und sind korrekt
jjsa
Zitat von @aqui:
Das mit der nicht vorbildlichen Unterstützung war sicher auf die FB bezogen, denn bei der Himbeere ist es, wie generell bei
Linux, vorbildlich !
Das mit der nicht vorbildlichen Unterstützung war sicher auf die FB bezogen, denn bei der Himbeere ist es, wie generell bei
Linux, vorbildlich !
Klar bis auf das einen Problem läuft das RPI tadellos. Wäre es nicht der Fall, hätte ich es nicht aufgesetzt.
jjsa
Vielen Dank für den Hinweis, ich frage mir wie man so blind sein kann (network)
Die Datei resolv.conf ist schon mit den richtigen Einträge versehen, sollte aber nicht stören wenn das blöde Automatismus der /etc/resolv.conf überschreibt zuschlägt.
Die Probleme hatte ich als ich der Server aufsetzte. Debian ist halt nicht Fedora mit den ich normalerweise hantiere.
jjsa
Die Datei resolv.conf ist schon mit den richtigen Einträge versehen, sollte aber nicht stören wenn das blöde Automatismus der /etc/resolv.conf überschreibt zuschlägt.
Die Probleme hatte ich als ich der Server aufsetzte. Debian ist halt nicht Fedora mit den ich normalerweise hantiere.
jjsa
Hallo!
Erstmals vielen Dank für das tolle Tutorial. Hat mir sehr gehofen.
Leider komme ich bei einem Punkt nicht weiter:
Ich habe den LOGANALYZER entsprechend der Anleitung erstellt. Das funktioniert auch soweit. Sobald ich jedoch das Log-Verzeichnis in den Speicher verlege, funktioniert der Loganalyzer nicht mehr.
Ich habe folgenden Eintrag in der Datei /etc/fstab eingetragen:
tmpfs /var/log tmpfs defaults,noatime,mode=1777,size=128m 0 0
Kommentiere ich den Eintrag mit # aus, klappt es wieder. Wo liegt der Fehler?
Besten Dank für Eure Hilfe!
LG
esquir1968
Erstmals vielen Dank für das tolle Tutorial. Hat mir sehr gehofen.
Leider komme ich bei einem Punkt nicht weiter:
Ich habe den LOGANALYZER entsprechend der Anleitung erstellt. Das funktioniert auch soweit. Sobald ich jedoch das Log-Verzeichnis in den Speicher verlege, funktioniert der Loganalyzer nicht mehr.
Ich habe folgenden Eintrag in der Datei /etc/fstab eingetragen:
tmpfs /var/log tmpfs defaults,noatime,mode=1777,size=128m 0 0
Kommentiere ich den Eintrag mit # aus, klappt es wieder. Wo liegt der Fehler?
Besten Dank für Eure Hilfe!
LG
esquir1968
Ich würde gerne meinen PI zum Netwerkmonitoring in Verbindung mit meiner EasyBox 904 LTE sowie einer 803 LTE einsetzen, d.h. meine Geräte verbinden sich per LAN oder WLAN mit einer der beiden LTE Router.
Nach meinem Verständnis müsste ich erstmal dafür sorgen, dass der gesamte Netzwerktraffic auf den RaspPI geroutet wird. In einem anderen Artikel habe ich gelesen, dass man dazu statische Routen in den LTE Routern anlegt und dort als Gateway den PI angibt. Im PI konfiguriert man das Bridging, um die Pakete je nach DHCP-Client an einen der beiden LTE Router zu leiten.
Leider kann man in der Easybox keine statischen Routen anlegen. Einen Menüpunkt dazu gibt es nicht und googlen hat das bestätigt.
Benötige ich diese statischen Routen in den LTE Routern ,die auch als WLAN Access Points dienen, oder gibt es eine andere Möglichkeit den traffic über den RaspPI zu leiten?
Nach meinem Verständnis müsste ich erstmal dafür sorgen, dass der gesamte Netzwerktraffic auf den RaspPI geroutet wird. In einem anderen Artikel habe ich gelesen, dass man dazu statische Routen in den LTE Routern anlegt und dort als Gateway den PI angibt. Im PI konfiguriert man das Bridging, um die Pakete je nach DHCP-Client an einen der beiden LTE Router zu leiten.
Leider kann man in der Easybox keine statischen Routen anlegen. Einen Menüpunkt dazu gibt es nicht und googlen hat das bestätigt.
Benötige ich diese statischen Routen in den LTE Routern ,die auch als WLAN Access Points dienen, oder gibt es eine andere Möglichkeit den traffic über den RaspPI zu leiten?
Hallo aqui,
vielen Dank. Ich habe das ganze mit einem LTE Router ans Laufen bekommen. Mit bandwidthd kann ich den Traffic aller Clients sehen. Nur mit zwei LTE Routern funktioniert es leider noch nicht. Der gesamte Traffic aller Clients geht dann leider immer über den LTE-Router am Interface eth0:2.
DHCP funktioniert einwandfrei. Die einen Clients bekommen eth0:1 und die anderen eth:3 als Gateway. Normalerweise müsste die Bridge dafür sorgen, dass der Traffic von eth0:1 an eth0 bzw. von eth0:3 and eth0:2 überbrückt wird. Leider läuft der gesamte Traffic über eth0:2.
Ich vermute, dass ich einen Fehler in der Datei /etc/network/interfaces habe, den ich leider nicht finde. Hast Du eine Idee, was ich falsch mache?
vielen Dank. Ich habe das ganze mit einem LTE Router ans Laufen bekommen. Mit bandwidthd kann ich den Traffic aller Clients sehen. Nur mit zwei LTE Routern funktioniert es leider noch nicht. Der gesamte Traffic aller Clients geht dann leider immer über den LTE-Router am Interface eth0:2.
DHCP funktioniert einwandfrei. Die einen Clients bekommen eth0:1 und die anderen eth:3 als Gateway. Normalerweise müsste die Bridge dafür sorgen, dass der Traffic von eth0:1 an eth0 bzw. von eth0:3 and eth0:2 überbrückt wird. Leider läuft der gesamte Traffic über eth0:2.
Ich vermute, dass ich einen Fehler in der Datei /etc/network/interfaces habe, den ich leider nicht finde. Hast Du eine Idee, was ich falsch mache?
## Interface zum LTE-Router 1
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
## Nameserver
dns-nameservers 192.168.11.1 192.168.11.2 192.168.1.1 8.8.8.8
## Interface für Clients des LTE-Router 1
auto eth0:1
iface eth0:1 inet static
address 192.168.11.1
netmask 255.255.255.0
## Interface zum LTE-Router 2
auto eth0:2
iface eth0:2 inet static
address 192.168.1.253
netmask 255.255.255.0
gateway 192.168.1.2
## Interface für Clients des LTE-Router 2
auto eth0:3
iface eth0:3 inet static
address 192.168.11.2
netmask 255.255.255.0
## Bridging zum LTE-Router 1
iface br0 inet dhcp
bridge_ports eth0 eth0:1
pre-up ifconfig eth0 0.0.0.0 up
pre-up ifconfig eth0:1 0.0.0.0 up
pre-up brctl addbr br0
pre-up brctl addif br0 eth0
post-down ifconfig eth0:1 0.0.0.0 down
post-down ifconfig eth0 0.0.0.0 down
post-down brctl delif br0 eth0
post-down brctl delbr br0
## Bridging zum LTE-Router 2
iface br1 inet dhcp
bridge_ports eth0:2 eth0:3
pre-up ifconfig eth0:2 0.0.0.0 up
pre-up ifconfig eth0:3 0.0.0.0 up
pre-up brctl addbr br1
pre-up brctl addif br1 eth0:2
post-down ifconfig eth0:3 0.0.0.0 down
post-down ifconfig eth0:2 0.0.0.0 down
post-down brctl delif br1 eth0:2
post-down brctl delbr br1
Abend,
als aller erstes wollte ich mich mal für das super Tutorial bedanken! Dieses hat mir bei vielem extrem geholfen! Kannst du mir ungefähr sagen wann du den Teil für Nagios weiter machen moechtest ? Dort bin ich naemlich gerade dran, hab es auch am laufen aber bei deinen tollen Anleitungen kann ich so sicherlich noch viel lernen.
LG
als aller erstes wollte ich mich mal für das super Tutorial bedanken! Dieses hat mir bei vielem extrem geholfen! Kannst du mir ungefähr sagen wann du den Teil für Nagios weiter machen moechtest ? Dort bin ich naemlich gerade dran, hab es auch am laufen aber bei deinen tollen Anleitungen kann ich so sicherlich noch viel lernen.
LG
Hey, erstmal danke für den Guide hat mir bis jetzt schon viel geholfen!
Allerdings hänge ich immoment an dem Schritt Gesamt Netzwerk Traffic Analyse mit sFlow fest.
Ich bin Schritt für Schritt deiner Anleitung gefolgt, bekomme jedoch immer folgenden Fehler, wenn ich sflowtool -4 -t | ntop -f - ausführe:
Dazu muss ich sagen, dass ich den Prozess ntop nicht über ps -ax finden konnte und es letztlich mit service ntop stop versucht. Allerdings hat das auch nur denselben Fehler produziert. Habe ich etwas übersehen? Als Router kommt bei mir eine Fritzbox 7390 zum Einsatz.
Allerdings hänge ich immoment an dem Schritt Gesamt Netzwerk Traffic Analyse mit sFlow fest.
Ich bin Schritt für Schritt deiner Anleitung gefolgt, bekomme jedoch immer folgenden Fehler, wenn ich sflowtool -4 -t | ntop -f - ausführe:
Thu Mar 12 13:10:54 2015 Initializing gdbm databases
Thu Mar 12 13:10:54 2015 **ERROR** '-'
Thu Mar 12 13:10:54 2015 ntop will be started as user nobody
Thu Mar 12 13:10:54 2015 ntop v.4.99.3 (32 bit)
Thu Mar 12 13:10:54 2015 Configured on Mar 4 2013 5:17:46, built on Mar 4 2013 05:25:53.
Thu Mar 12 13:10:54 2015 Copyright 1998-2012 by Luca Deri <deri@ntop.org>
Thu Mar 12 13:10:54 2015 Get the freshest ntop from http://www.ntop.org/
Thu Mar 12 13:10:54 2015 NOTE: ntop is running from 'ntop'
Thu Mar 12 13:10:54 2015 NOTE: (but see warning on man page for the --instance parameter)
Thu Mar 12 13:10:54 2015 NOTE: ntop libraries are in '/usr/lib/ntop'
Thu Mar 12 13:10:54 2015 Initializing ntop
Thu Mar 12 13:10:54 2015 Creating dummy interface, 'none'
Thu Mar 12 13:10:54 2015 Resetting traffic statistics for device -
Thu Mar 12 13:10:54 2015 Initializing device none (0)
Thu Mar 12 13:10:54 2015 DLT: Device 0 [none] is 1, mtu 1514, header 14
Thu Mar 12 13:10:54 2015 Initialized events [mask: 0][path: ]
Thu Mar 12 13:10:54 2015 Initializing gdbm databases
Thu Mar 12 13:10:54 2015 VENDOR: Loading MAC address table.
Thu Mar 12 13:10:54 2015 VENDOR: Checking for MAC address table file
Thu Mar 12 13:10:54 2015 VENDOR: File '/usr/share/ntop/specialMAC.txt' does not need to be reloaded
Thu Mar 12 13:10:54 2015 VENDOR: ntop continues ok
Thu Mar 12 13:10:54 2015 VENDOR: Checking for MAC address table file
Thu Mar 12 13:10:54 2015 VENDOR: File '/usr/share/ntop/oui.txt' does not need to be reloaded
Thu Mar 12 13:10:54 2015 VENDOR: ntop continues ok
Thu Mar 12 13:10:54 2015 Fingerprint: Loading signature file
Thu Mar 12 13:10:54 2015 Fingerprint: Checking for Fingerprint file... file
Thu Mar 12 13:10:54 2015 Fingerprint: Loading file '/usr/share/ntop/etter.finger.os'
Thu Mar 12 13:10:54 2015 Fingerprint: ...loaded 1765 records
Thu Mar 12 13:10:54 2015 **WARNING** -m | local-subnets must be specified when the -f option is usedAssuming 0.0.0.0/0
Thu Mar 12 13:10:54 2015 Initializing external applications
Thu Mar 12 13:10:54 2015 THREADMGMT[t3051643728]: SFP: Started thread for fingerprinting
Thu Mar 12 13:10:54 2015 THREADMGMT[t3043255120]: SIH: Started thread for idle hosts detection
Thu Mar 12 13:10:54 2015 THREADMGMT[t3034866512]: DNSAR(1): Started thread for DNS address resolution
Thu Mar 12 13:10:54 2015 THREADMGMT[t3026477904]: DNSAR(2): Started thread for DNS address resolution
Thu Mar 12 13:10:54 2015 THREADMGMT[t3018089296]: DNSAR(3): Started thread for DNS address resolution
Thu Mar 12 13:10:54 2015 Calling plugin start functions (if any)
Thu Mar 12 13:10:54 2015 **ERROR** GeoIP: unable to load file GeoLiteCity.dat
Thu Mar 12 13:10:54 2015 **ERROR** GeoIP: unable to load ASN file GeoIPASNum.dat
Thu Mar 12 13:10:54 2015 THREADMGMT[t3034866512]: DNSAR(1): Address resolution thread running
Thu Mar 12 13:10:54 2015 THREADMGMT[t3026477904]: DNSAR(2): Address resolution thread running
Thu Mar 12 13:10:54 2015 THREADMGMT[t3051643728]: SFP: Fingerprint scan thread starting [p4357]
Thu Mar 12 13:10:54 2015 THREADMGMT[t3018089296]: DNSAR(3): Address resolution thread running
Thu Mar 12 13:10:54 2015 THREADMGMT[t3043255120]: SIH: Idle host scan thread starting [p4357]
Thu Mar 12 13:10:54 2015 NOTE: Interface merge enabled by default
Thu Mar 12 13:10:54 2015 INITWEB: Initializing web server
Thu Mar 12 13:10:54 2015 INITWEB: Initializing TCP/IP socket connections for web server
Thu Mar 12 13:10:54 2015 **ERROR** INITWEB: binding problem - 'Bad file descriptor'(9)
Thu Mar 12 13:10:54 2015 Check if another instance of ntop is running
Thu Mar 12 13:10:54 2015 or if the current user (-u) can bind to the specified port
Thu Mar 12 13:10:54 2015 **FATAL_ERROR** Binding problem, ntop shutting down...
Thu Mar 12 13:10:54 2015 CLEANUP[t3052617728]: ntop caught signal 2 [state=2]
Thu Mar 12 13:10:54 2015 ntop is now quitting...
Hey, danke für die schnelle Antwort. Ich habe nochmal nachgeschaut was ps ax ausspuckt und ich find leider nichts, was nach ntop aussieht. Hier der Log.
root@raspberrypi:/home/pi# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:02 init [2]
2 ? S 0:00 [kthreadd]
3 ? S 0:02 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
7 ? S 0:08 [rcu_preempt]
8 ? S 0:00 [rcu_sched]
9 ? S 0:00 [rcu_bh]
10 ? S< 0:00 [khelper]
11 ? S 0:00 [kdevtmpfs]
12 ? S< 0:00 [netns]
13 ? S< 0:00 [perf]
14 ? S 0:00 [khungtaskd]
15 ? S< 0:00 [writeback]
16 ? S< 0:00 [crypto]
17 ? S< 0:00 [bioset]
18 ? S< 0:00 [kblockd]
20 ? S< 0:00 [rpciod]
21 ? S 0:01 [kswapd0]
22 ? S 0:00 [fsnotify_mark]
23 ? S< 0:00 [nfsiod]
29 ? S< 0:00 [kthrotld]
30 ? S< 0:00 [VCHIQ-0]
31 ? S< 0:00 [VCHIQr-0]
32 ? S< 0:00 [VCHIQs-0]
33 ? S< 0:00 [iscsi_eh]
34 ? S< 0:00 [dwc_otg]
35 ? S< 0:00 [DWC Notificatio]
37 ? S 0:00 [VCHIQka-0]
38 ? S< 0:00 [SMIO]
39 ? S< 0:00 [deferwq]
41 ? S 0:07 [mmcqd/0]
43 ? S 0:01 [jbd2/mmcblk0p6-]
44 ? S< 0:00 [ext4-rsv-conver]
159 ? Ss 0:00 udevd --daemon
1672 ? S 0:16 /usr/sbin/ifplugd -i wlan0 -q -f -u0 -d10 -w -I
1705 ? S 0:16 /usr/sbin/ifplugd -i eth0 -q -f -u0 -d10 -w -I
1710 ? S 0:03 /usr/sbin/ifplugd -i lo -q -f -u0 -d10 -w -I
1730 ? S 0:13 [RTW_CMD_THREAD]
1752 ? Ss 0:01 /sbin/wpa_supplicant -s -B -P /var/run/wpa_supplicant
1864 ? Ss 0:00 /sbin/wpa_cli -B -P /var/run/wpa_action.wlan0.pid -i
2184 ? Sl 0:01 /usr/sbin/rsyslogd -c5
2205 ? S 0:00 /usr/sbin/ser2net -c /etc/ser2net.conf -P /var/run/se
2258 ? Ss 0:02 /usr/sbin/apache2 -k start
2292 ? S 0:00 /usr/sbin/apache2 -k start
2293 ? S 0:00 /usr/sbin/apache2 -k start
2294 ? S 0:00 /usr/sbin/apache2 -k start
2300 ? S 0:00 /usr/sbin/apache2 -k start
2301 ? S 0:00 /usr/sbin/apache2 -k start
2318 ? Ss 0:00 /usr/sbin/cron
2322 ? Ss 0:00 /usr/bin/dbus-daemon --system
2478 ? Ss 0:00 dhclient -v -pf /run/dhclient.wlan0.pid -lf /var/lib/
2765 ? SNs 0:36 /usr/sbin/nagios3 -d /etc/nagios3/nagios.cfg
2792 ? Ssl 0:00 /usr/sbin/freeradius
2842 ? Ss 0:04 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -c /var/lib/nt
2849 ? S 0:14 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I
2889 ? Ss 0:00 /usr/sbin/sshd
2917 ? Ss 0:00 /usr/sbin/thd --daemon --triggers /etc/triggerhappy/t
2947 tty1 Ss+ 0:00 /sbin/getty --noclear 38400 tty1
2948 tty2 Ss+ 0:00 /sbin/getty 38400 tty2
2949 tty3 Ss+ 0:00 /sbin/getty 38400 tty3
2950 tty4 Ss+ 0:00 /sbin/getty 38400 tty4
2951 tty5 Ss+ 0:00 /sbin/getty 38400 tty5
2952 tty6 Ss+ 0:00 /sbin/getty 38400 tty6
2953 ttyAMA0 Ss+ 0:00 /sbin/getty -L ttyAMA0 115200 vt100
3958 ? S 0:01 [kworker/u2:1]
4135 ? S 0:01 [kworker/u2:2]
4809 ? S 0:00 /usr/sbin/apache2 -k start
4810 ? S 0:00 /usr/sbin/apache2 -k start
4979 ? S 2:09 Xtightvnc :1 -desktop X -auth /root/.Xauthority -geom
4983 ? S 0:00 /bin/sh /root/.vnc/xstartup
4986 ? S 0:00 /usr/bin/ck-launch-session /usr/bin/dbus-launch --exi
5010 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/ck-launch-session /usr/bi
5012 ? Sl 0:00 /usr/sbin/console-kit-daemon --no-daemon
5079 ? Sl 0:00 /usr/lib/policykit-1/polkitd --no-debug
5087 ? Sl 0:00 /usr/bin/lxsession -s LXDE-pi -e LXDE
5090 ? S 0:00 /usr/bin/dbus-launch --exit-with-session x-session-ma
5091 ? Ss 0:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-add
5097 ? S 0:02 openbox --config-file /root/.config/openbox/lxde-pi-r
5099 ? Sl 0:30 lxpanel --profile LXDE-pi
5101 ? Sl 1:06 pcmanfm --desktop --profile LXDE-pi
5106 ? Sl 0:00 /usr/lib/arm-linux-gnueabihf/lxpolkit
5109 ? S 0:00 /usr/lib/gvfs/gvfsd
5111 ? Sl 0:00 /usr/lib/gvfs//gvfs-fuse-daemon -f /root/.gvfs
5118 ? S 0:00 udevd --daemon
5119 ? S 0:00 udevd --daemon
5124 ? Sl 0:00 /usr/lib/gvfs/gvfs-gdu-volume-monitor
5127 ? Sl 0:00 /usr/lib/udisks/udisks-daemon
5128 ? S 0:00 udisks-daemon: not polling any devices
5131 ? S 0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
5133 ? Sl 0:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
5138 ? Sl 0:00 /usr/lib/arm-linux-gnueabihf/libmenu-cache1/libexec/m
5142 ? Sl 0:00 /usr/lib/gvfs/gvfsd-trash --spawner :1.1 /org/gtk/gvf
5147 ? S 0:00 [jbd2/mmcblk0p3-]
5148 ? S< 0:00 [ext4-rsv-conver]
5286 ? Sl 0:01 /usr/lib/gvfs/gvfsd-http --spawner :1.1 /org/gtk/gvfs
5294 ? S 0:00 /usr/lib/gvfs/gvfsd-metadata
5472 ? Ss 0:00 sshd: pi [priv]
5476 ? S 0:01 sshd: pi@pts/0
5477 pts/0 Ss 0:01 -bash
5491 pts/0 S 0:00 sudo su
5492 pts/0 S 0:00 su
5493 pts/0 S+ 0:00 bash
5611 ? S< 0:00 [kworker/0:1H]
6087 ? S 0:00 [kworker/0:1]
6121 ? S 0:00 [kworker/0:2]
6191 ? S 0:00 [kworker/0:0]
6295 ? Ss 0:00 sshd: pi [priv]
6299 ? S 0:00 sshd: pi@pts/1
6300 pts/1 Ss 0:01 -bash
6314 pts/1 S 0:00 sudo su
6315 pts/1 S 0:00 su
6316 pts/1 S 0:00 bash
6317 pts/1 R+ 0:00 ps ax
Servus, ich habe ein Problem, den hostapd ans laufen zu bekommen. Ich benutze den Alfa AWUS036H Adapter. Hier mal meine Konfigs:
Wenn ich nun ein hostapd -dd /etc/hostapd/hostapd.conf ausführe, erscheint folgendes:
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
Line 16: unknown hw_mode 'g '
1 errors found in configuration file '/etc/hostapd/hostapd.conf'
Er meckert über den hw_mode, aber dieser stimmt doch. Dadurch lässt sich der Daemon natürlich auch nicht starten und quittiert das mit einem Fail
Ich finde den Fehler einfach nicht. Jemand eine Idee?
Gruß
TiTux
/etc/network/interfaces:
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.100.25
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.100.20
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
dns-nameservers 192.168.100.254
Hier die hostapd.conf:
interface=wlan0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ssid=RasPi
country_code=DE
hw_mode=g
channel=2
max_num_sta=32
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wmm_enabled=0
ap_max_inactivity=300
wpa=2
wpa_passphrase=Key
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa_group_rekey=600
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
Line 16: unknown hw_mode 'g '
1 errors found in configuration file '/etc/hostapd/hostapd.conf'
Er meckert über den hw_mode, aber dieser stimmt doch. Dadurch lässt sich der Daemon natürlich auch nicht starten und quittiert das mit einem Fail
Ich finde den Fehler einfach nicht. Jemand eine Idee?
Gruß
TiTux
Ich habs jetzt mal auskommentiert, dann kommt beim Versuch den Dienst zu starten dies hier:
root@raspberrypi:~# /etc/init.d/hostapd restart
[ ok ] Stopping advanced IEEE 802.11 management: hostapd.
[....] Starting advanced IEEE 802.11 management: hostapdrmdir[ctrl_interface]: No such file or directory
failed!
Ein hostapd -dd ergibt das hier:
root@raspberrypi:~# /etc/init.d/hostapd restart
[ ok ] Stopping advanced IEEE 802.11 management: hostapd.
[....] Starting advanced IEEE 802.11 management: hostapdrmdir[ctrl_interface]: No such file or directory
failed!
Ein hostapd -dd ergibt das hier:
hostapd -dd /etc/hostapd/hostapd.conf
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
Could not open file /sys/class/net/wlan0 /phy80211/name: No such file or directory
rfkill: initial event: idx=0 type=1 op=0 soft=0 hard=0
netlink: Operstate: linkmode=0, operstate=6
Could not read interface wlan0 flags: No such device
nl80211: Set mode ifindex 0 iftype 2 (STATION)
nl80211: Failed to set interface 0 to mode 2: -19 (No such device)
nl80211: Try mode change after setting interface down
Could not read interface wlan0 flags: No such device
nl80211: Interface mode change to 2 from 0 failed
nl80211 driver initialization failed.
rmdir[ctrl_interface]: No such file or directory
Tja, ich bekomme von einem iw list nur diese 3 Modes:
Supported interface modes:
Da ist leider kein AP-Mode mit dabei. Ich dachte der Wlan-Adapter könnte den, da Du diesen ja oben verlinkt hattest, ist wohl nicht der Fall.
Der Chipsatz ist ein Realtek "rtl8187"
Da komm ich wohl nicht weiter.
Supported interface modes:
- IBSS
- managed
- monitor
Da ist leider kein AP-Mode mit dabei. Ich dachte der Wlan-Adapter könnte den, da Du diesen ja oben verlinkt hattest, ist wohl nicht der Fall.
Der Chipsatz ist ein Realtek "rtl8187"
Da komm ich wohl nicht weiter.
Den Treiber in der Konfig von hostapd anzugeben wird nicht viel bringen, wenn er den AP-Modus schon überhaupt nicht kann.
Ich werde einfach den Wlan-Adapter wieder zurückschicken. Kannst Du mir ein Modell empfehlen (vielleicht mit direktem Link),
der den Monitor Modus und auch den AP-Modus unterstützt?
Ich werde einfach den Wlan-Adapter wieder zurückschicken. Kannst Du mir ein Modell empfehlen (vielleicht mit direktem Link),
der den Monitor Modus und auch den AP-Modus unterstützt?
Ich habs mit dem anderen Treiber in der hostapd.conf versucht, ohne Erfolg. Hast Du mal einen direkten Link von Deiner Karte? Wenn ich danach google, finde ich eigentlich genau meine Karte, ich habe diese hier:
http://www.amazon.de/Adapter-Alfa-AWUS036H-Leistung-Antenne/dp/B000WXSO ...
In einem anderen Forum hatte jemand diesen hier empfohlen u. konnte damit den AP-Modus nutzten:
http://www.jetztfunkts.de/alfa-network-wireless-lan-hardware/alfa-usb-w ...
Hat wohl eigentlich nur den schnelleren "N-Modus" mit an Bord und den Chip "RT3070"
http://www.amazon.de/Adapter-Alfa-AWUS036H-Leistung-Antenne/dp/B000WXSO ...
In einem anderen Forum hatte jemand diesen hier empfohlen u. konnte damit den AP-Modus nutzten:
http://www.jetztfunkts.de/alfa-network-wireless-lan-hardware/alfa-usb-w ...
Hat wohl eigentlich nur den schnelleren "N-Modus" mit an Bord und den Chip "RT3070"
Hi aqui,
hab's jetzt ans Laufen bekommen, habe mir den Adapter AWUS036NH besorgt, der hat einen Ralink RT2870/RT3070 Chipsatz
und der unterstützt den AP-Mode. Bei mir gab es noch 2 weitere Probleme. Ich habe Deine Konfig von hostapd.conf über putty
in die neue Config reinkopiert, dabei hat er hinter jeder Zeile ein Leerzeichen gemacht, dass war das erste Problem. Das zweite
betrifft Deine Konfig. So wie Du es gepostet hast, muss da noch der Eintrag "bridge=br0" mit rein und anschließend auch in der
/etc/network/interfaces eingetragen werden, mit der oben stehenden Config müsste man die Weiterleitung der Pakete ja per iptables vornehmen,
aber das taucht nirgends auf.
Ciao
TiTux
hab's jetzt ans Laufen bekommen, habe mir den Adapter AWUS036NH besorgt, der hat einen Ralink RT2870/RT3070 Chipsatz
und der unterstützt den AP-Mode. Bei mir gab es noch 2 weitere Probleme. Ich habe Deine Konfig von hostapd.conf über putty
in die neue Config reinkopiert, dabei hat er hinter jeder Zeile ein Leerzeichen gemacht, dass war das erste Problem. Das zweite
betrifft Deine Konfig. So wie Du es gepostet hast, muss da noch der Eintrag "bridge=br0" mit rein und anschließend auch in der
/etc/network/interfaces eingetragen werden, mit der oben stehenden Config müsste man die Weiterleitung der Pakete ja per iptables vornehmen,
aber das taucht nirgends auf.
Ciao
TiTux
Ich habe die Bridge rausgenommen und das Forwarding für IP4 aktiviert, ich bekomme zwar eine Verbindung vom Client zum Raspberry, aber keine Internetverbindung. Habe beim Windows Client ein gelbes Ausrufezeichen.
Hier mal meine interfaces:
wpa_supplicant wollte ich nicht nutzen, deshalb steht die WPA-Konfig direkt in der interface Datei.
Aber woran haperts jetzt noch? Wie gesagt, dass hier habe ich gesetzt, rebootet auch
Hier mal meine interfaces:
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.100.25
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
dns-nameservers 192.168.100.254
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.100.20
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
wpa-ssid wird_nicht_verraten
wpa-psk meine_passphrase
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
Aber woran haperts jetzt noch? Wie gesagt, dass hier habe ich gesetzt, rebootet auch
- Uncomment the next line to enable packet forwarding for IPv4
Hi aqui, hi Leute,
zum allerletzten weiterführenden Link "Flugbewegung" habe ich bei Thomas Wetzlaff (allgemeine Anleitung) noch ne Bauanleitung für eine bessere Antenne gefunden. Anleitung Antenne
Außerdem befasst sich Thomas auch noch mit dem Fork dump1090-mutability mutability und auch mit der Übermittlung dieser Daten an diverse externe Dienste (zB. PlanePlotter). externe Dienste
PS. Die Antenne habe ich nicht extra getestet, aber den dump1090-mutability Fork kann ich nur empfehlen. Sieht etwas schicker aus auf der (internen) Webseite.
Viel Spaß
kowa
zum allerletzten weiterführenden Link "Flugbewegung" habe ich bei Thomas Wetzlaff (allgemeine Anleitung) noch ne Bauanleitung für eine bessere Antenne gefunden. Anleitung Antenne
Außerdem befasst sich Thomas auch noch mit dem Fork dump1090-mutability mutability und auch mit der Übermittlung dieser Daten an diverse externe Dienste (zB. PlanePlotter). externe Dienste
PS. Die Antenne habe ich nicht extra getestet, aber den dump1090-mutability Fork kann ich nur empfehlen. Sieht etwas schicker aus auf der (internen) Webseite.
Viel Spaß
kowa
Hallo,
eine sehr schöne übersicht, danke dafür.
Wird es ein update für Rasbian jessie geben?
Dort ist einiges anders, z.B. Netzwerk Konfiguration, einige Wlan dongel funktionieren zur Zeit noch garnicht und einige Software läuft noch nicht. Auch Samba hat in v4 einige Befehle geändert, hier sind noch viele veraltete Anleitungen im Netz.
Schöne Grüße
Thomas
eine sehr schöne übersicht, danke dafür.
Wird es ein update für Rasbian jessie geben?
Dort ist einiges anders, z.B. Netzwerk Konfiguration, einige Wlan dongel funktionieren zur Zeit noch garnicht und einige Software läuft noch nicht. Auch Samba hat in v4 einige Befehle geändert, hier sind noch viele veraltete Anleitungen im Netz.
Schöne Grüße
Thomas
Hallo,
ich habe mal wieder ein kleines Problem mit dem Loganalyzer. Also ich habe ihn zum laufen bekommen, jedoch mußte ich die in der Anleitung beschriebenen Dateien ins Verzeichnis /var/www/html/log/ und nicht in /var/www/log/ kopieren um dann die Installation zu machen.
Doch irgendwie kann ich nur die SYSLOG Meldungen die in der datei syslog reinkommen (derzeit nur vom RaspPi) anzeigen. Und ich kann keine andere Quelle auswählen. Dabei habe ich folgende Zeilen in der Config.php hinzugefügt:
Kann mir da vielleicht jemand sagen warum ich die Quelle Cisco und Netzwerk nicht auswählen kann im Loganalyzer?
Beste Grüße
Hajo
ich habe mal wieder ein kleines Problem mit dem Loganalyzer. Also ich habe ihn zum laufen bekommen, jedoch mußte ich die in der Anleitung beschriebenen Dateien ins Verzeichnis /var/www/html/log/ und nicht in /var/www/log/ kopieren um dann die Installation zu machen.
Doch irgendwie kann ich nur die SYSLOG Meldungen die in der datei syslog reinkommen (derzeit nur vom RaspPi) anzeigen. Und ich kann keine andere Quelle auswählen. Dabei habe ich folgende Zeilen in der Config.php hinzugefügt:
$CFG['Sources']['Source3']['ID'] = 'Source3';
$CFG['Sources']['Source3']['Name'] = 'Cisco';
$CFG['Sources']['Source3']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source3']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source3']['LogLineType'] = 'syslog';
$CFG['Sources']['Source3']['DiskFile'] = '/var/log/cisco.log';
$CFG['Sources']['Source4']['ID'] = 'Source4';
$CFG['Sources']['Source4']['Name'] = 'Netzwerk';
$CFG['Sources']['Source4']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source4']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source4']['LogLineType'] = 'syslog';
$CFG['Sources']['Source4']['DiskFile'] = '/var/log/netzlog';
Kann mir da vielleicht jemand sagen warum ich die Quelle Cisco und Netzwerk nicht auswählen kann im Loganalyzer?
Beste Grüße
Hajo
Hallo nochmal,
hab den Fehler gefunden, bin mit dem nano Editor leider überlesen das es eine Section gibt mit "Example ..."
Nun habe ich es an der richtigen Stelle und nun kann ich diese Logs auch auswählen.
Beste Grüße
Hajo
PS: Allerdings ist der Installationspfad bei mir nicht /var/www/log sondern /var/www/html/log
hab den Fehler gefunden, bin mit dem nano Editor leider überlesen das es eine Section gibt mit "Example ..."
Nun habe ich es an der richtigen Stelle und nun kann ich diese Logs auch auswählen.
Beste Grüße
Hajo
PS: Allerdings ist der Installationspfad bei mir nicht /var/www/log sondern /var/www/html/log
Sorry,
ich bins wieder , ist es normal das folgendes nicht exitiert :
"Die Konfig Dateien zum Bearbeiten befinden sich unter /etc/nagios3/objects. Dort ist auch eine Default Datei switch.cfg die man für eine erste quick and dirty Installation anpassen kann"
Denn nach der installation von NAGIOS3 gibt es keinen Ordner objects und auch keine cfg-Dateien die ich mir mal anschauen kann.
Beste Grüße
Hajo
ich bins wieder , ist es normal das folgendes nicht exitiert :
"Die Konfig Dateien zum Bearbeiten befinden sich unter /etc/nagios3/objects. Dort ist auch eine Default Datei switch.cfg die man für eine erste quick and dirty Installation anpassen kann"
Denn nach der installation von NAGIOS3 gibt es keinen Ordner objects und auch keine cfg-Dateien die ich mir mal anschauen kann.
Beste Grüße
Hajo
Hi aqui,
also ich habe mal gesucht und folgenden Pfad gefunden:
/usr/share/doc/nagios3-common/examples/template-object/switch.cfg
doch in der nagios.cfg steht drin das man entweder:
cfg_file=/etc/nagios3/objects/switch.cfg
oder:
cfg_dir=/etc/nagios3/switches
cfg_dir=/etc/nagios3/routers
nutzen sollte. Denke somit mal das ich den/die Ordner erstellen muss und
dann anpassen für meine Umgebung wo der RaspberryPi dann genutzt werden
soll. Denn ich möchte gerne einen kleinen Server haben mit dem ich dann
folgendes abbilden und zeigen möchte.
1. SNMP Monitoring (Nagios)
2. http Webserver (Loganalyzer)
3. tftp (Tftp-server)
4. FTP (FTP-Server, muß mal schauen welchen ich nutze)
deswegen finde ich diese Anleitung auch mega gut, weil ich so nicht überall suchen
muß da hier alles zusammen gefasst ist.
Beste Grüße
Hajo
also ich habe mal gesucht und folgenden Pfad gefunden:
/usr/share/doc/nagios3-common/examples/template-object/switch.cfg
doch in der nagios.cfg steht drin das man entweder:
cfg_file=/etc/nagios3/objects/switch.cfg
oder:
cfg_dir=/etc/nagios3/switches
cfg_dir=/etc/nagios3/routers
nutzen sollte. Denke somit mal das ich den/die Ordner erstellen muss und
dann anpassen für meine Umgebung wo der RaspberryPi dann genutzt werden
soll. Denn ich möchte gerne einen kleinen Server haben mit dem ich dann
folgendes abbilden und zeigen möchte.
1. SNMP Monitoring (Nagios)
2. http Webserver (Loganalyzer)
3. tftp (Tftp-server)
4. FTP (FTP-Server, muß mal schauen welchen ich nutze)
deswegen finde ich diese Anleitung auch mega gut, weil ich so nicht überall suchen
muß da hier alles zusammen gefasst ist.
Beste Grüße
Hajo
Hey aqui,
Wow, vielen Dank für das teilen der Einleitung!
Ist die grafische Oberfläche von Raspbian dringend nötig? Oder kann ich auf alle Monitoroberflächen per http bzw https zugreifen?
also http://raspberry.pi:port ?
Grüße
oOHiggsOo
Edit: so wie ich es lese, verstanden habe, brauche ich keine grafische Oberfläche. Ich würde gerne Clients, die sich am Cisco AP anmelden/Datenmenge, monitoren. Welches tool würdest du da empfehlen?
Wow, vielen Dank für das teilen der Einleitung!
Ist die grafische Oberfläche von Raspbian dringend nötig? Oder kann ich auf alle Monitoroberflächen per http bzw https zugreifen?
also http://raspberry.pi:port ?
Grüße
oOHiggsOo
Edit: so wie ich es lese, verstanden habe, brauche ich keine grafische Oberfläche. Ich würde gerne Clients, die sich am Cisco AP anmelden/Datenmenge, monitoren. Welches tool würdest du da empfehlen?
Ich habe einen ISR4321 als Router, 1 c2960x-24ts-ll als Swtich und einen AIR-AP2802I mit Mobility Express als AP im Einsatz.
Wie gesagt, da würde ich gerne eine Übersicht haben, wer sich wann am AP angemeldet hat und wieviel MB er übertragen/empfangen hat.
Observium habe ich soeben auf dem PI installiert und bin am testen.
Danke für den Tipp!
Könnte ich so auch ein SPA112 überwachen? (kann ja SNMP)
Sprich die abgehenden und ankommende Gespräche mit Rufnummer/Zeit loggen?
Wie gesagt, da würde ich gerne eine Übersicht haben, wer sich wann am AP angemeldet hat und wieviel MB er übertragen/empfangen hat.
Observium habe ich soeben auf dem PI installiert und bin am testen.
Danke für den Tipp!
Könnte ich so auch ein SPA112 überwachen? (kann ja SNMP)
Sprich die abgehenden und ankommende Gespräche mit Rufnummer/Zeit loggen?
Zitat von @IT-Pro:
Hi,
Toll. Zum Thema TimeServer:
Kann ich diese Anleitug auch so verfolgen, wenn ich einen DCF77-Empfänger anstatt des GPS Empfängers verwende? Du beschreibst das ja immer nur mit GPS.
Hi,
Toll. Zum Thema TimeServer:
Kann ich diese Anleitug auch so verfolgen, wenn ich einen DCF77-Empfänger anstatt des GPS Empfängers verwende? Du beschreibst das ja immer nur mit GPS.
Moin,
Natürlich kannst du die Zeit auch von eine DCF77-Empfänger statt von GPS übernehmen. Wie man das macht ist z.B. in https://www.raspberry-pi-geek.de/ausgaben/rpg/2014/01/raspberry-pi-als-f ... und vielen anderen Artikeln beschrieben.
lks
Serie: Netzwerk Grundlagen
Freeradius Management mit WebGUI60Netzwerkverkehr mit NetFlow bzw. IPFIX visualisieren1Link Aggregation (LAG) im Netzwerk19Internet IP Adresse mit Windows Desktop Tool BGInfo anzeigen lassen17Netzwerk Management Server mit Raspberry Pi110Netzwerk Zugangskontrolle mit 802.1x und FreeRadius am LAN Switch96Sichere 802.1x WLAN-Benutzer Authentisierung über Radius121VLANs über 802.1q Trunk auf Windows und Linux Rechnern realisieren