aqui
Goto Top

Netzwerk Management Server mit Raspberry Pi

article-picture
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.

Inhaltsverzeichnis

back-to-topVorbemerkung


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.

back-to-topDie Hardware


Die Hardware Basis für den Server ist, wie oben schon erwähnt, ein "All in One" System: der Raspberry Pi.

raspi4

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.

back-to-topKapitel 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.
Generelle Infos zur SD Karten Installation für den RasPi findet man HIER
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.
An einem PC Monitor oder Fernseher kann man nun den Bootvorgang verfolgen und so gleich sehen ob die SD Karte OK ist.

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 !
Da man damit aus dem Konfig Programm springt und Ungeübte das erstmal verwirrt. Das wird später manuell nachgeholt !
Ü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. face-wink
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...!


back-to-topDen 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 !

back-to-topLokales LAN


back-to-topStatische 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 
Wer kein Fallback möchte um Server like eine feste statische IP Adresse zu vergeben geht folgendermaßen vor:
# 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
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.


back-to-topWeitere 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.

back-to-topWLAN


back-to-topWLAN 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
} 
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:
auto wlan0
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    wireless-power off 
(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.

back-to-topWLAN 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).

back-to-topRaspberry 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 
Sollte es wider Erwarten Probleme mit der o.a. Konfig geben kann man auch erstmal eine absolute Minimalkonfig mit offenem AP ausprobieren:
interface=wlan0 
driver=nl80211 
hw_mode=g
ssid=RaspberryPi-AP
channel=3 
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... face-smile
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 
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.

back-to-topWas 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 
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:
 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. 
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:
  • 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.

back-to-topWLANs 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 
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.

back-to-topNetzwerke 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 face-smile ))
04c047fb6359c61cc1d1299300659a03

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 // // 
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 !

back-to-topVLANs 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 
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:
# 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 
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 !

back-to-topNIC 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   
Die "andere" Seite auf dem RasPi ebenfalls:
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) 
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:
          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 
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:
  #   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 
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:
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# 
Sieht man sich jetzt an ob der Trunk aktiv ist:
HP-Switch# sh trunks
 Load Balancing
  Port | Name                             Type      | Group Type
  ---- + -------------------------------- --------- + ----- -----
  1   |                                  10/100TX  | Dyn1  LACP
  2   |                                  10/100TX  | Dyn1  LACP
HP-Switch# 
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
!
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 
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)
f06e0aaa8cbe5436c337f07cdf41fbb5

Durch Überprüfung des Trunk Status kann man sehen ob der LACP Trunk / LAG korrekt aufgebaut wurde und aktiv ist (UP):
29c1bcccba87ca73e86a2fff1dc2ceb0

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 !)
fda9ac4206df0ed5f06928b8ff20b8f2

back-to-topInternet 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 
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:
auto ppp0
iface ppp0 inet wvdial
provider umts
# pre-up /usr/local/bin/setPIN.sh 
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:
#!/bin/bash
echo "AT+CPIN=1234\n\r" > /dev/ttyUSB0 
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.



back-to-topKapitel 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.)

back-to-topRemoten Zugriff einrichten


back-to-topMit 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)
d93cfa21b7f999ace1f826bae884e9b7
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. face-wink
  • Update: Mit dem aktuellen Raspbian (Stand Juli 2019) taucht dieser Cursor Fehler nicht mehr auf so das der Fix obsolet ist.

back-to-topPer 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.

back-to-topMit 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" 
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.
termi

back-to-topNetzwerk Management und Monitoring Funktionen


back-to-topBrowser 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();
?> 
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:
2ef4199c1b6f64b890192ea54c4ed29b
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 
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
mysql -u admin -p 
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:
45c1c730c343c55af7447f921ec52181

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.:
13da083bb3b184868b95dbf83864359b
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:
2b1c54dc957cf4f0c30d1474a47f38cd
(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 !


back-to-topEin 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  
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:
# Logging external network devices
local7.*                        /var/log/cisco.log

# local4.* /var/log/netzlog
# local7.debug /var/log/netzlog
# local7.warn /var/log/netzlog 
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:
  • 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 genaue Anleitung zum Nachlesen findet man hier: http://loganalyzer.adiscon.com/doc/install.html

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:
08762a1b727544dd28adc554841baad4
(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.

back-to-topFritzBox Betriebsdaten per Script auslesen


Dafür hat Forumskollege @colinardo ein fertiges Script erstellt:
Informationen aus dem Webinterface einer Fritz!Box via Shellscript auslesen

back-to-topFritzBox Anschlußgüte grafisch überwachen

https://www.heise.de/select/ct/2022/19/2220609402015452837


back-to-topMit 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
       } 
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.

back-to-topNetzwerk 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:
a20597f6170ff960a69f13b94882c103
bzw. hier ein einfacher Trendnet Switch:
726fb0cfd60a374469835561e8dc545c
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:
4063331bcf406088d64d0c7e7af63983
(Hier mit zwei 10 Mbit/s Ethernet, VPN Tunnel und CPU Load)...und etwas wenig Traffic face-wink
Eine pfSense Firewall mit etwas mehr Traffic...:
891fd2233d7c4d58628a9c4f4d4f5c68

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 
erzetzt man mit
 *.*;auth,authpriv,cron.none             -/var/log/syslog 
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:
 # 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> 
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)
observ

back-to-topNetzwerk 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 
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.)

back-to-topGrafische 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:
5f8b4f7e0eaf10219f49f0cf5370920c
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:
ba17c74afb26f9d9d5ec6d5d65d09079
dbbcff64954a820ff7d5ea8f9c2ebeb7

back-to-topNetzwerk 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* 
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:
7b6bedb70e69dea8f3663867850bec04

back-to-topVerlä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 
Im Handumdrehen installiert. Mit chmod +x speedtest-cli macht man es ausführbar und startet es.
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 
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.


back-to-topNetzwerk Sicherheit


back-to-topRadius 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:
Weitere Hilfestellungen liefern externe Tutorials wie hier. Windows Nutzer sind hier fehl am Platze werden aber hier fündig.
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.
Hier wieder gem. Tutorial vorgehen:
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.
Wer noch ein Client Zertifikat für Endgeräte PCs etc. erzeugen will geht jetzt analog vor:
  • 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.
Ansonsten ist die restliche Vorgehensweise zur Installation des Radius Servers vollkommen identisch zu der in den 3 Tutorials beschriebenen.
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.

back-to-topFreeRadius 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.
Datei /etc/freeradius/modules/ntlm_auth editieren.
  • 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}"
    } 
Wobei hier "PRIVAT" wieder mit dem eigenen AD Domain Namen ersetzt werden muss !
  • Datei /etc/freeradius/users
Im Gegensatz zur statischen User Konfiguration in der Datei users wie in den obigen Tutorials beschrieben wird die Zeile:
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
        ...
} 
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 !
root@raspberry:/home/pi# ntlm_auth --request-nt-key --domain=PRIVAT --username=user --password=test123
NT_STATUS_OK: Success (0x0) 
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:
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 
(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:
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. 
Einen Screenshot des erfolgreichen Tests mit AD Authentisierung zeigt das folgende Bild:
197ef12b6f6b07d6d69294ad2382f9c9
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

back-to-topTACACS+ 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
} 
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.

back-to-topTerminal 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 
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.

back-to-topOSPF, 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 
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:
chown quagga:quagga *.conf 
chmod 644 *.conf  
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:
RIP: 2602RIPv2: 2603OSPF: 2604OSPFv6: 2606BGP: 2605
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 face-wink 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 
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.


back-to-topKapitel 3. Netzwerk Funktionen


back-to-topDavid 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.
Wichtiger Check bevor man weitermacht: Beide Maschinen müssen sich gegenseitig mit ihrem Namen anpingen lassen !!
  • 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
Damit bekommen dann Microsoft AD User die sich am Raspberry mit ihrem AD Account einloggen automatisch ein Home Verzeichnis erstellt. Dazu sollte man dann unter /home mit "mkdir MYDOMAIN" (MYDOMAIN mit eigenem Domain Namen ersetzen !) noch ein Directory mit dem Domain Namen erzeugen. Wer nur User authentisieren will, kann sich diesen Schritt sparen.
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' 
Der Raspberry Server ist nun vollwertiges Mitglied der Windows Domäne ! face-smile
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

back-to-topWindows 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"
Zusätzlich benötigt man noch die Syslinux Tools und das wimboot Tool aus dem iPXE Projekt was in das Raspi Homeverzeichnis /home/pi mit
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/ 
(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
\bootmgr             —> /srv/tftp/
\boot\bcd            —> /srv/tftp/
\boot\boot.sdi       —> /srv/tftp/
\sources\boot.wim    —> /srv/tftp/winpe/  
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:
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 
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:
title Win8.1SE
map --mem (pd)/Win8.1SE_x86.ISO (0xff)
map --hook
root (0xff)
chainloader /BOOTMGR 
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):
allow booting;
allow bootp; 
next-server 10.2.0.100;
filename "pxelinux.0"
Wer möchte kann das auch dediziert für ganz bestimmte Clients auf Basis der Mac Adresse machen:
# 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"; 
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.

back-to-topct' 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 ...

back-to-topEin eigener Cloudserver mit NextCloud


Siehe HIER.

back-to-topNAS 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.
Damit man dies beim Starten des Servers nicht alles manuell machen muss sollte noch die Zeile /dev/sda1 /mnt/iscsi ext4 defaults,auto,_netdev 0 0 in die Datei /etc/fstab hinzugefügt werden !
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> 
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)

back-to-topZentraler 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;
} 
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
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 

back-to-topDHCP 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)), ")"
      )
);
} 
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:
# 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;
          }

} 
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 !

back-to-topZentraler 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
Mit
exitverlä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 
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:
# 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 
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.
     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 
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":
  • * 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:
494ee2e60b44124840e1ad5155bd42a9
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.

back-to-topDer 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 
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.

back-to-topServerdienste 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> 
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:
<?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> 
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:
<?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> 
Wer eine SAMBA Freigabe (Windows File Sharing) auf dem Raspberry betreibt:
<?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> 
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:
<?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

back-to-topDVB 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 
hinzu.
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 - 
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:
3a0250d4e1876a8628fe037862f4c6b5
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.

back-to-topRaspberry 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.

back-to-topWeiterfü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

Content-ID: 191718

Url: https://administrator.de/contentid/191718

Printed on: November 5, 2024 at 03:11 o'clock

psannz
psannz Sep 28, 2012 at 14:55:53 (UTC)
Goto Top
Der Daumen ist oben. Aber sowas von face-smile

Eventuell vielleicht noch http://www.heise.de/hardware-hacks/meldung/Raspberry-Update-bringt-Turb ... einbauen, damit auch die volle Leistung genutzt werden kann.
Lochkartenstanzer
Lochkartenstanzer Sep 28, 2012 at 15:20:28 (UTC)
Goto Top
*schnüff* *neidisch sei*

Ich warte immer noch auf meinen.

lks
16568
16568 Sep 28, 2012 at 18:24:05 (UTC)
Goto Top
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
Lochkartenstanzer
Lochkartenstanzer Sep 28, 2012 at 19:40:08 (UTC)
Goto Top
Hai LW,

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?

Ich habe beim RaspBerry halt den Fehler gemacht, beim falschen Grossisten zu bestellen. face-sad

lks
16568
16568 Sep 29, 2012 at 23:17:48 (UTC)
Goto Top
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?

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. face-sad

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 face-wink

Von der Performace her einfach klasse face-smile


Grüße

Lonesome Walker
PS: den anderen Mini-Androiden habe ich auch gleichzeitig geordert, aber auf den warte ich noch heute...?
aqui
aqui Oct 07, 2012 updated at 15:49:52 (UTC)
Goto Top
.@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 !
Nächste Erweiterung oben wird ein TFTP Server sein und Bandbreitenüberwachung mit MRTG...
Das Bord von LW sieht auch spannend aus ist nur "out of stock" derzeit face-sad
Lochkartenstanzer
Lochkartenstanzer Oct 07, 2012 at 16:55:35 (UTC)
Goto Top
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 !

Das weiß ich inzwischen auch. face-sad

Mal sehen, wenn die noch lange brauchen, storniere ich ggf meien Bestellung.

lks
Sonnenscheinhasser
Sonnenscheinhasser Oct 08, 2012 updated at 19:40:23 (UTC)
Goto Top
Von mir auch +1!
Meinen Pi hatte ich im Juni bestellt und am 04.10. nach 15 Wochen Lieferzeit von RS Components bekommen.
Morgens kam eine Mail, dass 'Your Raspberry Pi order has been despatched today' und als ich abends nach hause kam lag das Päckchen schon da face-smile

Hach, der Basteltrieb bricht aus face-smile
108012
108012 Oct 15, 2012 at 17:10:42 (UTC)
Goto Top
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
aqui
aqui Oct 15, 2012 at 19:23:01 (UTC)
Goto Top
Ja sicher, in losen Abschnitten wird das hier fortgeführt. Feedback der Leser und Forumsteilnehmer per PM WAS noch interessant wäre ist auch willkommen. Es lohnt also immer mal beim Thread vorbeizuschauen face-wink
Das mit dem Speicher ist eine klasse Neuheit, denn mit 256 MB muss man schon arg knappsen.
Alles wird gut...
goliat
goliat Oct 29, 2012 at 13:15:51 (UTC)
Goto Top
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
aqui
aqui Oct 29, 2012 updated at 15:40:50 (UTC)
Goto Top
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.
Gut gemeint, aber du vergleichst hier Äpfel mit Birnen deshalb hinkt dein Vergleich !
goliat
goliat Oct 29, 2012 at 15:54:17 (UTC)
Goto Top
Die software läuft auf einem mini PC von www.pcengines.ch braucht keine Lizenz nur ein "altes Windows" und ich weiss immer was meine Server, PCs, Switches "alles Cisco", Printers sogar Tonerfüllstand für bestellungen, Vlans, Subnetze machen oder eben nicht mehr tun.
16568
16568 Oct 30, 2012 at 18:19:33 (UTC)
Goto Top
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.

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? face-wink
aqui
aqui Oct 30, 2012, updated at Nov 10, 2012 at 21:29:39 (UTC)
Goto Top
Das "nach Hause telefonieren" ist der gravierende Haken und bei verantwortungsvollen Firmen (keine Hobby) Admins deshalb ein NoGo, keine Frage. Nirgendwo auf der Welt gibt es Menschenfreunde die sowas völlig umsonst der IT Welt zur Verfügung stellen. Das ist eben der Nachteil an Spiceworks, Teamviewer und all diesen vermeintlich und tollen Tools mit eingebauter optionaler Schnüffelfunktion.... Full ACK.
Jedem halbwegs intelligenten ITler ist das ja auch ohne große Erklärungen bewusst, oder sollte es wenigstens sein !? Was man zuhause macht und dort akzeptiert steht auf einem ganz anderen Blatt Papier.
Du hast natürlich absolut Recht mit deinen Anmerkungen LW. Leider vergisst man im Eifer des Gefechts doch hin und wieder mal den Focus der Majorität der Mitglieder hier. "Administrator" ist eben halt doch arg relativ !! face-wink
Interesse am Hackberry IMMER !
108012
108012 Nov 25, 2012 at 03:58:33 (UTC)
Goto Top
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.
Hajo2006
Hajo2006 Dec 29, 2012 updated at 13:06:54 (UTC)
Goto Top
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
aqui
aqui Dec 29, 2012 updated at 13:36:20 (UTC)
Goto Top
Es kann sein das dein Webserveruser keine Leserechte hat auf die Datei.
Setz die mal mit chmod 644 syslog auf lesbar und check das nochmal !
Hajo2006
Hajo2006 Dec 29, 2012 at 15:07:12 (UTC)
Goto Top
Hi,

also chmod 644 hatte ich schon auf die Datei syslog gemacht, doch die Meldung
tauchte dann ebenfalls auf. Noch einen anderen Tip wie ich den loganalyzer
für die Grafische anzeige zum laufen bekommen kann.

Gruß
Hajo
aqui
aqui Dec 29, 2012 at 20:22:29 (UTC)
Goto Top
Setz die syslog Datei testweise mal unter "sudo su" (root) mit "chmod 664 syslog" auch schreibbar für die Group.
Wenn das nicht hilft ist da irgendwas schief gelaufen bei der Installation. Die Fehlermeldung ist ja absurd wenn die Syslog Datei /var/log/syslog wirklich vorhanden ist.
Am Besten du löschst du dann mal das komplette Verzeichnis in der Apache Document Root mit dem Syslog und installierst das Paket nochmal ganz neu.
Im Normalfalle sollte das sauber durchlaufen und wenn du keine Fehlermeldung beim Installieren über die install.php bekommst rennt das auch fehlerlos !
Hajo2006
Hajo2006 Dec 30, 2012 at 13:05:36 (UTC)
Goto Top
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
aqui
aqui Dec 30, 2012 updated at 14:21:25 (UTC)
Goto Top
Ist schon komisch, denn das funktioniert generell fehlerlos. Interessant wäre noch zu wissen ob der PHP Installer sauber durchrennt, denn der checkt das Vorhandensein und den Zugriff auf die Syslog Datei ebenfalls.
Wenn der Installer sauber durchrennt ist ja soweit auch alles OK.
Die Browsermeldung wäre dann absurd, da die Dateien ja vorhanden sind. Im Tutorial ist es mit Firefox und Safari getestet.
Hier noch Tips damit es sauber klappt beim nächsten Mal:
  • Nach dem Flashen der SD die Default Konfig durchgehen und rebooten
  • Einloggen als User "pi" und "sudo su" ausführen um Root Rechte zum Installieren zu bekommen
  • Vor dem Aufspielen der Pakete "apt-get update" und "apt-get upgrade" ausführen
  • Pakete Apache2 und PHP5 installieren und checken
  • Loganalyzer kopieren und installieren
  • Ggf. syslog Datei mit "chmod" in den Rechten anpassen.
Damit sollte es sicher klappen.
Hajo2006
Hajo2006 Dec 31, 2012 at 18:19:11 (UTC)
Goto Top
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
Lochkartenstanzer
Lochkartenstanzer Dec 31, 2012 at 18:28:46 (UTC)
Goto Top
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.



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
Hajo2006
Hajo2006 Jan 12, 2013 at 14:16:43 (UTC)
Goto Top
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
aqui
aqui Jan 12, 2013 updated at 21:35:22 (UTC)
Goto Top
Hallo Hajo
Keine Ahnung was du da machst aber irgendwas machst du garantiert falsch, sorry ! Ich habe die Anleitung an einem aktuellen frisch installierten "Wheezy" probiert und sie funktioniert fehlerfrei !!
Hier nochmal die Schritte:
  • SD Karte geflasht und das Wheezy beim Booten customized laut obiger Anleitung
  • Als Root User (sudo su) das System mit apt-get update und apt-get upgrade aktualisiert
  • Mit apt-get install apache2 und apt-get install php5 Apache und PhP5 installiert
  • Datei etc/rsyslog.conf gem. Anleitung angepasst und mit /etc/init.d/rsyslog restart den Syslog neu gestartet
  • Getestet mit dem Kommando logger Huhu Hier bin ich ! und dann mit tail -f /var/log/syslog gecheckt ob er funktioniert und die "Huhu" Meldung im Syslog steht, was der Fall war !
  • Logananlyzer .tgz Datei mit tar xzf logana... entpackt, in /var/www/ Verzeichnis "loganalyzer" erstellt und die Dateien im Archivverzeichnis /src mit mv * /var/www/loganalyzer kopiert. Mit ls -l /var/www/loganalyzer gecheckt ob sie vollständig angekommen sind und das gleiche mit den beiden Dateien im /contrib Verzeichnis gemacht. Nochmal gecheckt ob die auch angekommen sind. Die beiden Dateien mit chmod +x configure.sh secure.sh ausführbar bemacht und ./configure.sh ausgeführt !
  • Mit Browser (getestet mit Safari und Firefox) die install.php aufgerufen und die Installation gestartet und alles nur mit "Next" abgenickt.
Step 7 zeigt das an:
53f18711e3ea05921a21e0a1d3bb8e54
...allso alles OK !
"Next" geklickt und dann erscheint das:
e9d4ef395d009a270fec909e437fdb9d
Das ist aber kein Problem, denn der Datei /var/log/syslog fehlen die Group Leserechte !
OK, mit chmod 644 /var/log/syslog ist das ganz schnell gefixt
  • Dann die install.php aus dem /loganalyzer Verzeichnis mit rm gelöscht.
  • Browser gestartet und das /loganalyzer Verzeichnis aufgerufen...
Tataaa...
275fd607e6406cc6ca62a83e3caa621b
Die "Huhu" Testmeldungen sind nicht zu übersehen !!
Er braucht beim ersten Mal ca. 10-15 Sekunden bis ein Bild des Syslogs im Browser angezeigt wird also etwas Geduld beim Warten !!

Fazit: Funktioniert fehlerfrei !! Keine Ahnung wo oder was du da falsch tippst ?!
Hajo2006
Hajo2006 Jan 13, 2013 at 18:51:55 (UTC)
Goto Top
Hi,

nun klappt es auch bei mir. Es lag einfach nicht an falschen Eingaben, sondern an einem Bug
mit der Version 3.6.1 vom LogAnalyzer. Nun hab ich die Version 3.6.2 und nun klappt es auch
mit dem Syslog im LogAnalyzer.

Danke für die Hilfe und Tips.

Gruß
Hajo
aqui
aqui Jan 14, 2013 at 07:44:52 (UTC)
Goto Top
Alles wird gut...! face-smile
Neulinuxer
Neulinuxer Jan 24, 2013 at 13:44:31 (UTC)
Goto Top
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?
aqui
aqui Jan 24, 2013 at 16:46:39 (UTC)
Goto Top
Ja, natürlich und nicht nur "im Grunde nach" sondern ganz real ! Der Abschnitt oben mit MRTG (oder dessen Schwester Cacti) ist dann genau das was du suchst ! Dort kannst du dir dann traffic Statistiken für alle Ports ansehen, CPU Last, Broadcast Last, Errors usw. Eben alles was die Geräte per SNMP hergeben.
Die HP Gurken supporten auch noch sFlow.
Mit den sFlow Tools:
http://www.inmon.com/technology/sflowTools.php
Auch mit den Tools ist dann eine noch detailiertere Lösung möglich so das du auch in die Daten selber reinsehen kannst (Sampling).
4 Switches fackelt der Raspberry noch ohne Probleme mit MRTG ab aber wenns mal 40 werden, solltest du auf eine andere HW ausweichen aber das ist dir sicher selber klar...
Neulinuxer
Neulinuxer Jan 24, 2013 at 17:29:50 (UTC)
Goto Top
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...
aqui
aqui Jan 24, 2013 updated at 17:58:25 (UTC)
Goto Top
...für Fragen ist das Forum ja da face-wink Wie die Ports der 4 Switches grafisch dargestellt werden kannst du oben (Screenshot) an den 4 Routerports oder 3 FW Ports sehen. Das geht ganz simpel über den Webserver im Raspberry.
Dann viel Erfolg mit dem "Server" ! Für dich zum Lernen ist das eh unbezahlbar...
Neulinuxer
Neulinuxer Jan 25, 2013 updated at 19:15:54 (UTC)
Goto Top
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 face-smile

edit: Er ist da face-smile

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?
aqui
aqui Jan 25, 2013 updated at 20:31:45 (UTC)
Goto Top
Bitte mache dafür einen neuen Thread auf oder PM, damit wir das Tutorial bzw. den Tutorialthread hier nicht weiter aufblähen mit Basisfragen. Hier die Antworten:
1.) Die Frage solltest du dir als Netzwerker leicht selber beantworten können !!! Jeder Switch hat eine eindeutige Management IP, folglich kann man egal wo der steht auf der Welt auch dessen Daten abfragen ! Du kannst ja auch alle anderen IPs und Geräte via VPN erreichen !
2.) Lies dir bitte alles zum Thema SNMP durch dann kanst du auch diese Frage selbst beantworten:
http://de.wikipedia.org/wiki/Simple_Network_Management_Protocol
3.) Das ist so problemlos machbar. Wichtig ist das der Server eine feste, oder eben wie bei dir per Mac Adresse fest vergebene IP Adresse hat. Das gilt dann auch für das IP Netzwerk bzw. die Adressierung am anderen Standort !
4.) Ja die 5er Schritte musst du dann mit 1er Schritten ersetzen.
5.) Ja
6.) Nein der crontag wird im System fest gespeichert und startet nach einen Reboot immer wieder automatisch. Den Crontab tippst du als simple ASCII Textdatei z.B. mit den "nano" Editor und sagst dann crontab <dateiname> Bei Änderungen anderst du nur die Datei und wiederholst die Prozedur.
Jede MRTG Konfig datei hat einen von dir festgelegten individuellen Namen switch1.cfg , switch2.cfg usw.

Wenn du die Grundinstallation gemacht hast gibst du (wie es im Tutorial steht !)
apt-get update und danach apt-get upgrade ein, dann bist du immer auf dem neuesten Stand face-wink ( sudo su vorher)
Neulinuxer
Neulinuxer Jan 26, 2013 at 07:09:13 (UTC)
Goto Top
Curro1
Curro1 Mar 23, 2013 at 17:12:07 (UTC)
Goto Top
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
aqui
aqui Mar 24, 2013 updated at 16:26:14 (UTC)
Goto Top
Mmmhh, ist schon komisch. Vermutlich liegt es daran das du immer alles als "pi" User installiert hast... vermutlich ?!
Das geht natürlich nicht !!
Installationen und auch Konfiguration sämtlicher oben genannter Software Packete MUSST du immer als Root User (sudo su) machen !!
Ansonsten kann es zu den oben geschilderten Problemen kommen.
Ganz übel ist natürlich das du Teile als normaler User und Teile als Root User ausgeführt hast. Das geht nicht und solltest du niemals machen !
Der Logananlyzer ist mehrfach in diversen Versionen installiert und die Installation läuft immer fehlerlos ab. Es kann eigentlich nur sein das du es mit fehlenden Userrechten installiert und konfiguriert hast !

Was den Teil des Vouchergenerators anbetrifft: Ja natürlich muss das Paket von Eagle2 in einem separaten Verzeichnis im HTTP Document Root Verzeichnis /srv/www installiert sein.
Das Verzeichnis kannst du nennen wie du willst ob "vouchergenerator" oder "vouchergen" oder "vgen" ist Sache des eigenen Geschmacks !
Das .ZIP Archiv kannst du direkt in /srv/www kopieren und dort mit unzip entpacken. Meist wird dann schon ein Verzeichnis automatisch generiert was du (wenn du willst) mit "mv <alername> <neuername>" umbenennen kannst oder du verwendest es so wie es ist.
Im Browser gibst du zur Installation dann http://<ip_raspi>/vouchergenerator/install.php
Die Readme PDF datei im ZIP Archiv hat alle details zur Installation.
Eigentlich sollte da nix schief gehen ?!

Ebenso der Tightvnc Teil. Ganz wichtig ist das du Tightvnc einmal an der Konsole als "sudo su" aufrufen musst. Tightvnc fragt dann nach Usernamen und Passwort für den Zugriff und das wars. Es richtet danach einen 1024x768er Auflösung ein und funktioniert fehlerlos !
ACHTUNG: Tightvnc macht KEINEN Autostart !!
Wenn du den Raspberry also mit "shutdown -h now" ausgeschaltet hast oder einfach so den Strom ausgeschaltet hast, dann kommt VNC nach dem Einschalten nicht automatisch wieder hoch ! Du musst als "sudo su" einmal wieder den Befehl "tightvnc" oder "tightvncserver" ausführen, damit der wieder gestartet wird !
Dieser Hinweis fehlt ggf. im obigen Tutorial und auch der zum erstellen des Vocuherverzeichnises im HTTP Server Doc Root.
Ich check das und korrigier das ggf.
Curro1
Curro1 Mar 28, 2013 at 11:07:05 (UTC)
Goto Top
Es ist zum heulen face-sad

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.
aqui
aqui Mar 28, 2013 at 16:00:50 (UTC)
Goto Top
Irgendwo machst du einen gravierenden Fehler !
Um das Tutorial jetzt nicht weiter aufzublähen schildere bitten deinen "Step 7" (der fehlt nämlich oben nochmal per PM (personal Mail). Dann fackeln wir das offline ab.
Du kannst sicher sein, das das zum Laufen kommt face-wink
aqui
aqui Apr 06, 2013 updated at 17:58:39 (UTC)
Goto Top
Update:
Problem ist gelöst ! Scheinbar gibt es ein Problem mit dem bordeigenen Midori Webbrowser mit dem man die PHP Installation besser nicht ausführt.
Tip: Besser immer einen exteren Browser auf einem Netz PC zur Installation nutzen (Firefox, Safari, Chrome) und nicht den Onboard Browser auf dem Pi selber !!
Wer es dennoch machen will sollte mit apt-get remove midori den Midori Browser deinstallieren und mit apt-get install iceweasel den Iceweasel Browser stattdessen installieren. Der ist ähnlich sparsam im Resourcenverbrauch basiert aber auf dem allseits bekannten Firefox !
alecsoft
alecsoft Apr 09, 2013 at 08:24:59 (UTC)
Goto Top
Hallo,

anstelle sich das Leben derart schwierig zu machen: paessler.com. Die bieten ein komplettes Tool zur Verwaltung eines Netzwerkes.

Mit freundlichen Grüssen
alecsoft
aqui
aqui Apr 09, 2013 updated at 08:48:31 (UTC)
Goto Top
Der Einwand ist Unsinn und sinnfrei bzw. konterkariert zudem den Sinn einer Permanentüberwachung und kommt oft von Lesern mit wenig Kenntissen von Netzwerkmangement und solchen die nur die enge Welt dieser fertigen "Umsonsttools" kennen. Mal abgesehen davon das Paessler davon ja nicht leben kann... Die leben von den Klicki Buntis die ohne Kenntnisse daherkommen. Genau DAS ist auch ein Punkt des o.a. Projekts was bekanntermaßen unbezahlbar ist.
Außerdem hatten wir diese Diskussion schon oben (siehe "goliat") !
Abgesehen davon sucht man bei dem genannten nach einem Radius, NTP, FlowAnalyzer, Voucherserver, usw. usw. vergebens...
108012
108012 Apr 09, 2013 updated at 08:56:45 (UTC)
Goto Top
Hallo,

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 aber
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.
banane31
banane31 Jun 10, 2013 at 19:31:46 (UTC)
Goto Top
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?
Schwabe85
Schwabe85 Jun 14, 2013 at 19:55:28 (UTC)
Goto Top
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
Schwabe85
Schwabe85 Jun 14, 2013 at 19:57:29 (UTC)
Goto Top
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?

Hallo,

versuch es mal mit:
nano /etc/network/interfaces

Denn Interfaces ist kein Verzeichnis sondern eine Datei! ;)
aqui
aqui Jun 15, 2013 at 13:03:08 (UTC)
Goto Top
Richtig !! GROß- klein Schreibung ist unter Unix wichtig !
Das Verzeichnis heisst /etc/network/ und dort ist es die Datei interfaces. Steht aber eigentlich auch genau so oben im Tutorial !
Kleiner Tip: Du kannst immer die TAB Taste drücken bei der Kommandoeingabe, die Shell "autokomplettiert" immer die Eingabe wenn sie eindeutig ist.
Mit den up down Cursortasten hast du auch immer die letzten Befehle wieder !

@Schwabe85
Zu deinen Fragen:
1.) Ja, das sollte gehen je nachdem mit welchem Syslog LOCAL Level die Syslog Meldungen der pfSense reinkommen. Ggf. ist das einstellbar wie bei vielen Routern (muss ich selbst mal checken) oder sie kommen mit einem festen local Wert, den du aber in den Messages selbst sehen kannst.
Über die syslog.conf Datei kannst du diese local.x Messages in eine separate Datei laufen lassen und diese dann gesondert über einen zusätzlichen Menüpunkt anzeigen lassen.
Die Prozedur ist identisch zu der oben beschriebenen mit local.7 zum Cisco.
Alternativ filterst du ganz einfach mit dem Loganalyzer nach den Messages...das Resultat ist das gleiche face-wink
2.) Zur Störerhaftungs Beweisführung reicht diese Protokollierung völlig aus. Du musst nicht nachweisen wer wann welche Webseite besucht hat !
Bei der Generierung neuer Voucher Rollen solltest du natürlich immer die alte Rolle löschen um diese vollständig ungültig zu machen ! Auch eine neue Indizierung sollte zur Sicherheit immer erfolgen !
Es ist nicht ratsam immer den selben Index zu verwenden. Wenn du davon nicht lassen kannst solltest du besser die FW nach Löschung des Index einmal rebooten bevor du einen neuen gleichen anlegst.
Wie gesagt: besser bleiben lassen sowas und aufsteigende Indices verwenden. Das ist auch einfacher nachvollziehbar weil du zur abgelaufenden bestehenden eine neue erzeugen kannst und dann die alte löschst.
So hast du immer eine wasserdichte Prozedur !
autohoti
autohoti Jun 24, 2013 at 19:36:13 (UTC)
Goto Top
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
Lochkartenstanzer
Lochkartenstanzer Jun 25, 2013 at 07:44:59 (UTC)
Goto Top
Zitat von @autohoti:
Wie bekomme ich pfsense auf den Raspberry?

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
aqui
aqui Jun 26, 2013 at 18:34:52 (UTC)
Goto Top
Richtig, Kollege Lochkarte hat recht !
Was du machen kannst ist mit apt-get install iptables dir die Firewall auf den Raspi zu holen und dann so eine Firewall händisch zu realsisieren.
Den IPCop dürfte man ebenfalls problemlos darauf zum Laufen bringen. Allerdings erfordert das etwas Vorkenntnisse was die Bedinung der iptables auf der Kommandozeile anbetrifft.
Einfacher ist da doch die pfSense mit einer grafischen Oberfläche.

Besser du beschaffst dir ein kleines ALIX Minimainboard und bringst die pfSense darauf zum Fliegen.
Für diese HW ist sie maßgeschneidert....
Preiswerte, VPN fähige Firewall im Eigenbau oder als Fertiggerät
autohoti
autohoti Jun 29, 2013 at 15:01:19 (UTC)
Goto Top
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
aqui
aqui Jul 01, 2013 at 18:23:54 (UTC)
Goto Top
Nur als Management Server bist du mit dem Raspi am besten bedient.
Das obige Tutorial beschreibt dir ja ganz genau und einfach zum Aptippen wie du alle diese von dir geforderten Dienste damit umsetzt !
jj-sarton
jj-sarton Jul 24, 2013 at 13:28:07 (UTC)
Goto Top
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
aqui
aqui Jul 24, 2013 at 14:08:04 (UTC)
Goto Top
Ja, alles statisch einrichten auf dem RPI wie es sich für einen dedizierten Server in einem Netzwerk gehört. Dann ists egal was für einen Status die FB hat.
Das mit der nicht vorbildlichen Unterstützung war sicher auf die FB bezogen, denn bei der Himbeere ist es, wie generell bei Linux, vorbildlich !
jj-sarton
jj-sarton Jul 24, 2013 at 15:28:45 (UTC)
Goto Top
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
jj-sarton
jj-sarton Jul 24, 2013 at 15:31:00 (UTC)
Goto Top
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 !

Klar bis auf das einen Problem läuft das RPI tadellos. Wäre es nicht der Fall, hätte ich es nicht aufgesetzt.

jjsa
aqui
aqui Jul 24, 2013 updated at 16:18:08 (UTC)
Goto Top
Ein Kardinalsfehler ist in deiner Konfig: network 192.168.178.255 !! "255" ist falsch !
Die Netzwerk Adresse ist niemals eine Broadcast Adresse sondern dort sind per Definition alle Hostbits immer auf Null (siehe Tutorial)
Richtig muss es also heissen: network 192.168.178.0

Der DNS Nameserver gehört auch nicht in die Interface Config sondern immer in die Datei /etc/resolv.conf !

Eine Testkonfig damit auf einem RPI funktioniert fehlerlos mit den folgenden Routern:
WRT54 mit DD-WRT
pfSense Firewall
Cisco 2621
Edimax
Cisco 831
Auch wenn diese ausgeschaltet oder rebootet werden bleibt diese Konfig im RPI stabil erhalten für v4 und v6 !! Der Buhmann ist vermutlich die FB ?!
Mach mal ein apt-get install tcpdump und sehe dir mal an ob irgendwas vonn der FB an den RPI kommt wenn diese rebootet wird.
jj-sarton
jj-sarton Jul 24, 2013 at 16:29:34 (UTC)
Goto Top
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
eagle2
eagle2 Nov 23, 2013 at 19:45:40 (UTC)
Goto Top
Update zu meinem Webbasiertem Voucher-Management: Jetzt neu in Version 1.5 mit integriertem Login, schönerem Setup, besserer Einstellungsverwaltung und Mehrsprachigkeit! Die Installation hat sich etwas verändert, Upgrade ist möglich, bitte in jedem Fall die PDF-Anleitung beachten...
119110
119110 Dec 02, 2014 at 00:12:37 (UTC)
Goto Top
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
aqui
aqui Dec 02, 2014 at 15:55:02 (UTC)
Goto Top
Sobald ich jedoch das Log-Verzeichnis in den Speicher verlege
Was meinst du genau damit ??
Schreibst du den Syslog auf ein NAS oder ein SMB/CIFS Share ??
Du musst das ggf. in den Loganalyzer Konfig Dateien eintragen, denn der geht davon aus das das unter /vor/log liegt !
ZX81Freak
ZX81Freak Jan 12, 2015 at 22:53:05 (UTC)
Goto Top
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?
aqui
aqui Jan 15, 2015 updated at 19:52:08 (UTC)
Goto Top
Nach meinem Verständnis müsste ich erstmal dafür sorgen, dass der gesamte Netzwerktraffic auf den RaspPI geroutet wird.
Nein, nicht unbedingt. Es reicht auch wenn dein Router oder Switch den Standard NetFlow oder sFlow supporten. Mindestens aber den Standard SNMP.
Abgesehen davon wäre es kontraproduktiv den Traffic mit dem RasPi zu routen. Der RasPi ist zwar ein wahrer Tausendsassa aber im Netzwerk hat er auch seine Achillesferse, denn der Netzwerk Port ist über den internen USB2 Hub am System angekoppelt. Entsprechend mau ist also auch seine Packet Forwarding Performance. Für LTE würde es zwar knapp reichen aber wenn du noch weitere Programme für eine Echtzeitanalyse laufen lässt wäre er die falsche Hardware. Banana Pi oder ein Cubie Board oder der Odroid-C1 von Pollin wären netzwerktechnisch dann die bessere Wahl.
Im PI konfiguriert man das Bridging, um die Pakete je nach DHCP-Client an einen der beiden LTE Router zu leiten.
Ja das ist so richtig. Leider hast du das obige Tutorial nicht vollständig gelesen, denn dieser Link:
http://williamknowles.co.uk/?p=16
beschreibt die vollständige Lösung für eine fertige Box mit dem was du willst.
Leider kann man in der Easybox keine statischen Routen anlegen.
Das ist leider richtig denn das ist so ziemlich der übelste Billig- Schrottrouter den Providern an Kunden verschenken. Kundige Netzwerker tauschen die als erstes gegen was richtiges.
Aber um dich zu beruhigen: Du brauchst ja keine Routen !!
Du schreibst ja oben selber "Im PI konfiguriert man das Bridging." !!
Wie jeder Netzwerker weiss basiert ja Bridging auf Layer2 als den Mac Adressen und OHNE Routing. Folglich brauchst du also überhaupt kein Routing ! Vergiss den Unsinn also....
RasPi Probe mit 2 Interfaces im Bridging Mode dazwischen wie im Link beschrieben und fertig ist der Lack !
Dann kannst du auch mit allen obigen Tools wie Cacti, MRTG, nTop usw. usw. arbeiten um dein Netzwerk vollständig zu analysieren !
ZX81Freak
ZX81Freak Jan 17, 2015, updated at Mar 16, 2016 at 00:03:47 (UTC)
Goto Top
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?
## 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
aqui
aqui Jan 18, 2015 updated at 14:38:55 (UTC)
Goto Top
Der gesamte Traffic aller Clients geht dann leider immer über den LTE-Router am Interface eth0:2.
Das ist klar, denn da geht er ja strikt nach deiner Routing Regel.
Hier musst du zwingend Policy Based Routing anwenden oder ein anderen Load Balancing Daemon aktivieren, der den Traffic nach einem von dir definierten Regelwerk z.B. Roud Robin auf beide LTE Links verteilt.
So ohne weiteres geht das natürlich logischerweise nicht ! Da greift das normale Routing was du mit netstat -r siehst.
Dein Riesenfehler ist das du mit deinen ethx:y Interfaces mit Secondary IPs arbeitest. Ein NoGo im Router umfeld !!
Du fährst unterschiedliche IP Netze auf dem gleichen Draht. Das kann an sich schon nicht gehen da der das ICMP Handling nicht sauber funktioniert.
Besser du beschaffst ein zusätzliche physisches Interface wie das hier:
http://www.reichelt.de/LANKARTE-USB2-0/3/index.html?&ACTION=3&L ...
Damit gehst du dann auf Nummer sicher das das klappt.
Es ist auch kontraproduktiv das du den Bridge Memberports IPs vergibst. Sollte man nie machen. Wenn dann kannst du dem Bridge Interface IPs vergeben aber nicht den Member Ports.
Brauchen die ja nicht, denn dort passiert nur Bridging was ja bekanntlich nur die Mac Adressen verwenden aber keinerlei IPs.
dan0ne
dan0ne Mar 05, 2015 at 19:30:34 (UTC)
Goto Top
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
aqui
aqui Mar 06, 2015 at 08:19:57 (UTC)
Goto Top
Kommt die nächsten Tage face-wink
Ansonsten kannst du hier auch mal ein Blick reinwerfen:
https://www.heise.de/artikel-archiv/ct/2015/04/120_Weitblicker
Betrifft dort zwar nur Server und keinen Router, Switches, Firewalls aber gibt einen grundlegenden Einblick schonmal vorab.
Shellbash
Shellbash Mar 22, 2015, updated at Mar 16, 2016 at 00:04:19 (UTC)
Goto Top
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:
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...
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.
aqui
aqui Mar 22, 2015 updated at 22:09:08 (UTC)
Goto Top
Hallo Shellbash
So, habs sicherheitshalber nochmal gerade selber installiert und...es klappt alles wunderbar !
Du hast vermutlich wirklich den laufenden ntop Prozess nicht gestoppt.
Wenn du ps ax eingibst siehst du sowas wie
6053 ?        Ssl    0:00 /usr/sbin/ntop -d -L -u ntop -P /var/lib/ntop --access-log-file /var/log/ 
Das ist das laufende ntop was du dann mit
kill 6053 stoppen musst.

Dann starten die sflowtools und der ntop auch ohne Probleme:
root@raspiplus:/home/pi# sflowtool -4 -t | ntop -f -
Sun Mar 22 17:17:20 2015  Initializing gdbm databases
Sun Mar 22 17:17:20 2015  **ERROR** '-'
Sun Mar 22 17:17:20 2015  ntop will be started as user nobody
Sun Mar 22 17:17:20 2015  ntop v.4.99.3 (32 bit)
Sun Mar 22 17:17:20 2015  Configured on Mar  4 2013  5:17:46, built on Mar  4 2013 05:25:53.
Sun Mar 22 17:17:20 2015  Copyright 1998-2012 by Luca Deri <deri@ntop.org>
Sun Mar 22 17:17:20 2015  Get the freshest ntop from http://www.ntop.org/
Sun Mar 22 17:17:20 2015  NOTE: ntop is running from 'ntop'
Sun Mar 22 17:17:20 2015  NOTE: (but see warning on man page for the --instance parameter)
Sun Mar 22 17:17:20 2015  NOTE: ntop libraries are in '/usr/lib/ntop'
Sun Mar 22 17:17:20 2015  Initializing ntop
Sun Mar 22 17:17:20 2015  Creating dummy interface, 'none'
Sun Mar 22 17:17:20 2015  Resetting traffic statistics for device -
Sun Mar 22 17:17:20 2015  Initializing device none (0)
Sun Mar 22 17:17:20 2015  DLT: Device 0 [none] is 1, mtu 1514, header 14
Sun Mar 22 17:17:20 2015  Initialized events [mask: 0][path: ]
Sun Mar 22 17:17:20 2015  Initializing gdbm databases
Sun Mar 22 17:17:20 2015  VENDOR: Loading MAC address table.
Sun Mar 22 17:17:20 2015  VENDOR: Checking for MAC address table file
Sun Mar 22 17:17:20 2015  VENDOR: File '/usr/share/ntop/specialMAC.txt' does not need to be reloaded
Sun Mar 22 17:17:20 2015  VENDOR: ntop continues ok
Sun Mar 22 17:17:20 2015  VENDOR: Checking for MAC address table file
Sun Mar 22 17:17:20 2015  VENDOR: File '/usr/share/ntop/oui.txt' does not need to be reloaded
Sun Mar 22 17:17:20 2015  VENDOR: ntop continues ok
Sun Mar 22 17:17:20 2015  Fingerprint: Loading signature file
Sun Mar 22 17:17:20 2015  Fingerprint: Checking for Fingerprint file... file
Sun Mar 22 17:17:20 2015  Fingerprint: Loading file '/usr/share/ntop/etter.finger.os'
Sun Mar 22 17:17:20 2015  Fingerprint: ...loaded 1765 records
Sun Mar 22 17:17:20 2015  **WARNING** -m | local-subnets must be specified when the -f option is usedAssuming 0.0.0.0/0
Sun Mar 22 17:17:20 2015  Initializing external applications
Sun Mar 22 17:17:20 2015  THREADMGMT[t3051610960]: SFP: Started thread for fingerprinting
Sun Mar 22 17:17:20 2015  THREADMGMT[t3043222352]: SIH: Started thread for idle hosts detection
Sun Mar 22 17:17:20 2015  THREADMGMT[t3034833744]: DNSAR(1): Started thread for DNS address resolution
Sun Mar 22 17:17:20 2015  THREADMGMT[t3026445136]: DNSAR(2): Started thread for DNS address resolution
Sun Mar 22 17:17:20 2015  THREADMGMT[t3018056528]: DNSAR(3): Started thread for DNS address resolution
Sun Mar 22 17:17:20 2015  Calling plugin start functions (if any)
Sun Mar 22 17:17:20 2015  **ERROR** GeoIP: unable to load file GeoLiteCity.dat
Sun Mar 22 17:17:20 2015  **ERROR** GeoIP: unable to load ASN file GeoIPASNum.dat
Sun Mar 22 17:17:20 2015  NOTE: Interface merge enabled by default
Sun Mar 22 17:17:20 2015  INITWEB: Initializing web server
Sun Mar 22 17:17:20 2015  INITWEB: Initializing TCP/IP socket connections for web server
Sun Mar 22 17:17:20 2015  THREADMGMT[t3018056528]: DNSAR(3): Address resolution thread running
Sun Mar 22 17:17:20 2015  THREADMGMT[t3043222352]: SIH: Idle host scan thread starting [p7380]
Sun Mar 22 17:17:20 2015  THREADMGMT[t3051610960]: SFP: Fingerprint scan thread starting [p7380]
Sun Mar 22 17:17:20 2015  THREADMGMT[t3026445136]: DNSAR(2): Address resolution thread running
Sun Mar 22 17:17:20 2015  THREADMGMT[t3034833744]: DNSAR(1): Address resolution thread running
Sun Mar 22 17:17:20 2015  INITWEB: Initialized socket, port 3000, address (any)
Sun Mar 22 17:17:20 2015  INITWEB: Waiting for HTTP connections on port 3000
Sun Mar 22 17:17:20 2015  INITWEB: Starting web server
Sun Mar 22 17:17:20 2015  THREADMGMT[t3009667920]: INITWEB: Started thread for web server
Sun Mar 22 17:17:20 2015  Listening on [pcap file]
Sun Mar 22 17:17:20 2015  Loading Plugins
Sun Mar 22 17:17:20 2015  Searching for plugins in /usr/lib/ntop/plugins
Sun Mar 22 17:17:20 2015  THREADMGMT[t3009667920]: WEB: Server connection thread starting [p7380]
Sun Mar 22 17:17:20 2015  Note: SIGPIPE handler set (ignore)
Sun Mar 22 17:17:20 2015  THREADMGMT[t3009667920]: WEB: Server connection thread running [p7380]
Sun Mar 22 17:17:20 2015  WEB: ntop's web server is now processing requests
Sun Mar 22 17:17:20 2015  NETFLOW: Welcome to NetFlow.(C) 2002-12 by Luca Deri
Sun Mar 22 17:17:20 2015  RRD: Welcome to Round-Robin Database. (C) 2002-12 by Luca Deri.
Sun Mar 22 17:17:20 2015  SFLOW: Welcome to sFlow.(C) 2002-12 by Luca Deri
Sun Mar 22 17:17:20 2015  Calling plugin start functions (if any)
Sun Mar 22 17:17:20 2015  RRD: Welcome to the RRD plugin
Sun Mar 22 17:17:20 2015  RRD: Mask for new directories is 0700
Sun Mar 22 17:17:20 2015  RRD: Mask for new files is 0066
Sun Mar 22 17:17:20 2015  THREADMGMT: RRD: Started thread (t3001156432) for data collection
Sun Mar 22 17:17:20 2015  THREADMGMT[t3052568576]: ntop RUNSTATE: INITNONROOT(3)
Sun Mar 22 17:17:20 2015  Now running as requested user 'nobody' (65534:65534)
Sun Mar 22 17:17:20 2015  Note: Reporting device initally set to 0 [-] (merged) 

Die Fehlermeldung mit den GeoIP bekommst du auch schnell gefixt:
ntop: ERROR GeoIP: unable to load file GeoLiteCity.dat
ntop: ERROR GeoIP: unable to load ASN file GeoIPASNum.dat


Diese Dateien hier runterladen:
http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://www.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
Entzippen und in das Verzeichnis /usr/share/GeoIP/ kopieren.
Danach startet ntop dann mit den GeoIPs face-wink
In den aktuellen Versionen von Raspian sind die aber korrekt installiert.

Startest du nun den Browser und öffnrest den ntop Webserver auf Port TCP 3000 ist alles bestens:
27e249d320294d06157afb39bdff58f1
Hier siehst du auch das die Daten aus der PCAP Pipe der sflowtools kommen.

Fehler ist nur das es eine aktueller Version der sflowtools auf der Inmon Seite gibt. Das korrigier ich im Tutorial noch:
http://www.inmon.com/technology/sflowTools.php
Ver. 35
Gute Nachricht:
Mit der aktuellen Version von NTOP benötigst du das Piping mit den sflowtools NICHT mehr, denn ntop hat jetzt einen eingebauten sflow Kollektor!! face-wink
In der Weboberfläche kannst du das unter Plugin --> sFlow aktivieren.
Hier nur Port 6343 einstellen und die eth0 IP und fertig ist der Lack !

Wetiere Infos zum Thema ntop und sflow findest du auch hier:
http://www.linux-magazin.de/Ausgaben/2002/11/Top-in-Form
Shellbash
Shellbash Mar 23, 2015, updated at Mar 16, 2016 at 00:05:02 (UTC)
Goto Top
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
aqui
aqui Mar 23, 2015 at 15:36:35 (UTC)
Goto Top
Hast Recht, sieht in der Tat sauber aus !
Aber wie gesagt die Installation funktioniert fehlerfrei und auch ntop rennt problemlos wenn man der o.a. Installationsanweisung folgt.
Die Testinstallation zeigt das eindeutig.
Kann es sein das bei dir ein andwerer Proyess den Port TCP 3000 benutzt? Hast du da mal mit netstat nachgesehen.
Shellbash
Shellbash Mar 23, 2015 at 16:11:07 (UTC)
Goto Top
Netstat zeigt keinen Prozess mit TCP 3000 an. Naja trotzdem Danke für die Mühen!
aqui
aqui Mar 23, 2015 at 16:23:50 (UTC)
Goto Top
Brenn dir das Raspbian nochmal und mach das nochmal auf einem nackigen RasPi. Irgendwas hat sich da verschluckt bei dir.

Übrigens: Das ntop hat eine sflow Engine jetzt gleich an Bord. Es ist NICHT mehr nötig die Daten vom sflowtool zu Pipen !!
Ich kann das Tutorial im Moment aus technischen Gründen nicht anpassen..
TiTux
TiTux Apr 03, 2015, updated at Mar 16, 2016 at 00:05:41 (UTC)
Goto Top
Servus, ich habe ein Problem, den hostapd ans laufen zu bekommen. Ich benutze den Alfa AWUS036H Adapter. Hier mal meine Konfigs:
/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
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
aqui
aqui Apr 03, 2015 at 12:15:00 (UTC)
Goto Top
Mmmhhh komisch...
Hast du mal ein a, b oder n testweise versucht ? Oder mal versucht das ganz wegzulassen oder mit # auszukommentieren.
Google mal nach unknown hw_mode 'g ' da gibt es ne Menge Hinweise.
TiTux
TiTux Apr 03, 2015, updated at Mar 16, 2016 at 00:06:00 (UTC)
Goto Top
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:
 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
aqui
aqui Apr 04, 2015 at 08:44:21 (UTC)
Goto Top
Aha...! Entscheided ist das Could not read interface wlan0 flags: No such device. Das bedeutet das der hostapd die Betriebsmodi nicht aus der Hardware lesen kann.
Fazit: Falscher oder alter Treiber für deine WLAN Hardware !
Was hat der Alfa AWUS036H für einen Chipsatz ? Hast du mal ein dmesg gecheckt ?
Vermutlich aber supportet diese Alfa HW keinen AP Mode:
http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=17489
Obwohl andere schreiben wieder das es geht ! Ist wohl einen Frage des richtigen Treibers.
WAS sagt denn ein iw list bei dir ?
http://www.forum-raspberrypi.de/Thread-pi-als-router-einrichten
Angeblich solls mit dem entsprechenden Treiber funktionieren.
I got the AP mode already running on the chip with hostapd itself when I use the "driver=rtl871xdrv" instead of the "driver=nl80211" in the hostapd.conf file. I get the access point working perfectly with it. But the need to switch aroused because i needed to make the multiple SSID feature of the hostapd working. This feature is not supported by the rtl871xdrv driver in the hostapd.
https://bbs.archlinux.org/viewtopic.php?id=153822
Allgemein
http://bit.ly/1CDSca0

Ein Alfa RT8187 rennt hier fehlerlos mit hostapd.
TiTux
TiTux Apr 07, 2015, updated at Mar 16, 2016 at 00:06:24 (UTC)
Goto Top
Tja, ich bekomme von einem iw list nur diese 3 Modes:

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.
aqui
aqui Apr 07, 2015 at 16:26:35 (UTC)
Goto Top
Hast du in der Konfig des hostapd auch stehen "driver=rtl871xdrv" normal steht da nämlich nur "driver=nl80211" !
Ansonsten anderen Adapter beschaffen der das kann. Alfa hat genügend die das können.
TiTux
TiTux Apr 08, 2015 at 07:14:43 (UTC)
Goto Top
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?
aqui
aqui Apr 08, 2015 at 07:37:15 (UTC)
Goto Top
Na ja, wenn man die Links oben richtig interpretiert ist ein AP Modus wohl drin in der HW kann aber durch den Treiber nicht aktiviert werden, was der rtl Treiber dann aber macht. In so fern ist es dann auch klar das iwlist das mit dem kastrierten Treiber auch nicht auslesen kann. Ne Krücke bleibts aber trotzdem.
Ich nutze einen Alfa GE-RT8187 und der rennt fehlerfrei.
TiTux
TiTux Apr 08, 2015 at 09:21:28 (UTC)
Goto Top
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"
aqui
aqui Apr 08, 2015 updated at 09:45:33 (UTC)
Goto Top
Na klar hab ich den:
http://varia-store.com/Wireless-Systeme/USB-WLAN-Adapter/ALFA-30dBm-2-4 ...
Steht auch ganz groß drunter:
"Der Adapter kann auch als Access Point genutzt werden!" face-wink
TiTux
TiTux Apr 14, 2015 at 09:03:32 (UTC)
Goto Top
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
aqui
aqui Apr 14, 2015, updated at Apr 22, 2015 at 12:53:56 (UTC)
Goto Top
dabei hat er hinter jeder Zeile ein Leerzeichen gemacht,
Das macht nicht Putty sondern der doofe Winblows Editor face-sad Vermutlich hast du die Datei unter Windows editiert und dann zurückgesendet.
Besser immer direkt mit dem Nano auf dem RasPi oder den Notepad entsprechend customizen.
So wie Du es gepostet hast, muss da noch der Eintrag "bridge=br0" mit rein
Nein, das "muss" es nicht !
Dieser Eintrag muss wie du richtigerweise ja auch selber sagst lediglich rein wenn man zwischen LAN und dem WLAN Port eine Bridge haben will, also das diese beiden Interfaces zusammengefasst werden über eine "Netzwerkbrücke" und in einem gemeinsamen IP Segment liegt.
Die o.a. Konfig ist aber so ausgelegt das man dann routen muss zw. WLAN und LAN Port ! (#net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf).
Das hat den Vorteil, das man mit den iptables die Firewall aktivieren kann und sehr genau kontrollieren kann WER dann vom AP Netz ins LAN geht.
Aus Sicherheitssicht ein entscheidender Vorteil.
Zudem kann man erheblich besser und flexibler mit der Integration in andere Netze am LAN Port umgehen was in einer Bridged Konfig so nicht immer möglich ist.
OK, wer das alles nicht will oder muss der bridged halt ins LAN und macht alles auf. Falsch ist das ja nicht.
Kommt letztlich wie immer drauf an was man will, aber ein Muss ist es de facto nicht.

Letztlich hast du aber Recht, dieser Hinweis fehlt im Tutorial !
Leider ist eine Tutorial Bearbeitung bzw. Korrektur im Moment nicht möglich wegen eines Bugs in der Forum Software aber sobald der gefixt ist korrigier ich das.
<edit> Ist korrigiert ! </edit>
Aber gut wenn nun alles so rennt wie es soll face-wink
TiTux
TiTux Apr 14, 2015, updated at Mar 16, 2016 at 00:07:20 (UTC)
Goto Top
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:
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
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 face-wink

  1. Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
aqui
aqui Apr 15, 2015 at 08:40:36 (UTC)
Goto Top
aber keine Internetverbindung.
WO ist denn deine Internetverbindung ?? Am LAN Port ??
Da fehlt dann vermutlich auf deinem Router die statische Route ins WLAN Netz, oder ??
Siehe hier: Routing von 2 und mehr IP Netzen mit Windows, Linux und Router
Kann der Router keine statischen Routes musst du auf dem RasPi Masquerading aktivieren.
Traceroute und Pathping sind hier wie immer deine Freunde ! face-wink
Wie gesagt man müsste wissen WIE dein Internetzugang realisiert ist ?!
TiTux
TiTux Apr 15, 2015 at 09:11:57 (UTC)
Goto Top
Ich habe einen Lancom-Router, der an meinem Kabelmodem hängt. Der Lan-Port des Raspi hängt per Switch also am Router und sollte
darüber die Inet-Verbindung herstellen. Lan-Port und Wlan-Port befinden sich im gleichen Netz.

Mein Router kann statische Routen.
aqui
aqui Apr 16, 2015 at 08:14:37 (UTC)
Goto Top
Also dann...wo ist dein Problem face-wink
Das oben zitierte Tutorial erklärt alles. Denk dran das der hostap seitige DHCP als DNS die IP des Lancom vergeben muss und als Gateway die lokale IP des WLAN Ports.
Damit funktioniert dann alles wie es soll.
KowaKowalski
KowaKowalski Sep 04, 2015 updated at 07:49:09 (UTC)
Goto Top
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
aqui
aqui Sep 04, 2015 at 08:29:01 (UTC)
Goto Top
Gute Antennen zum ADS-B Empfang gibt es auch hier:
http://shop.jetvision.de/epages/64807909.sf/de_DE/?ObjectPath=/Shops/64 ...
Weutere Infos zum Thema ADS-B auch hier:
http://www.sprut.de/electronic/pic/projekte/adsb/adsb.htm
Oder wenn man bei Dr. Google nach "Raspberry ADS B" sucht face-wink
ThomasDr
ThomasDr Dec 20, 2015 at 16:56:10 (UTC)
Goto Top
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
aqui
aqui Dec 22, 2015 at 13:44:07 (UTC)
Goto Top
Du hast Recht und danke für den Hinweis !
Aktuell gibt es sogar einen Fehler im Netzwerkstack das das eth0 2 IP Adressen hat...und andere Kleinigkeiten die mit der Migration auf netconfig einhergehen.
Das Gros der Anleitungen funktioniert aber auch mit der neuen Version. Ich werde Änderungen Stück für Stück nachpflegen und aktualisieren.
Lochkartenstanzer
Lochkartenstanzer Feb 16, 2016, updated at Mar 16, 2016 at 00:07:51 (UTC)
Goto Top
Kurze Info:

aircrack -ng ist inzwischen im raspbian repository. face-smile

es reicht also ein aptitude install aircrack -ng

lks

PS. Habe gerade wieder mit meinem Pi gespielt und bei der Gelegenheit über die Anleitung geschaut, was man mal wieder ausprobieren könnte.
Hajo2006
Hajo2006 May 05, 2016 at 08:21:34 (UTC)
Goto Top
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:

       
        $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
Hajo2006
Hajo2006 May 05, 2016 at 08:44:59 (UTC)
Goto Top
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
Hajo2006
Hajo2006 May 05, 2016 at 09:30:46 (UTC)
Goto Top
Sorry,

ich bins wieder face-smile , 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
aqui
aqui May 05, 2016 updated at 10:51:49 (UTC)
Goto Top
Hi Hajo !
Allerdings ist der Installationspfad bei mir nicht /var/www/log sondern /var/www/html/log
Das mag sein, das Tutorial ist noch nicht an das aktuellste Raspian angepasst. Danke für den Hinweis.
Das mag auch für das Nagios Problem gelten. Gut möglich das die cfg Dateien in ein anderes Verzeichnis gewandert sind ?!
Such einfach global mal mit find / -name <dateiname> -print danach.
Vorhanden sein müssten sie sonst ist die Nagios Konfig nicht möglich.
Hajo2006
Hajo2006 May 05, 2016 at 14:45:34 (UTC)
Goto Top
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
aqui
aqui May 05, 2016 at 14:48:45 (UTC)
Goto Top
Denke somit mal das ich den/die Ordner erstellen muss und dann anpassen für meine Umgebung
So ist es ! Du kannst die obigen Beispiel Dateien cut and pasten und entsprechend anpassen.
IT-Pro
IT-Pro Nov 27, 2018 at 21:18:03 (UTC)
Goto Top
Like it (maybe)
Winter-69
Winter-69 Mar 28, 2019 at 07:55:17 (UTC)
Goto Top
Ich bin beeindruckt von diesem Tut. Applaus!
aqui
aqui Mar 28, 2019 at 09:37:20 (UTC)
Goto Top
Danke für die Blumen face-smile
oOHiggsOo
oOHiggsOo Jan 05, 2020 updated at 18:46:10 (UTC)
Goto Top
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?
aqui
aqui Jan 06, 2020 updated at 11:15:50 (UTC)
Goto Top
Ist die grafische Oberfläche von Raspbian dringend nötig?
Nein !
Bei einem Server sollte man immer darauf verzichten und ausschliesslich die Raspian Lite Version ohne Desktop Grafik verwenden/installieren und dann aus dem Repository immer die Packete nachladen mit apt-get die man verwenden möchte.
Auf einem Server wäre die Desktop Grafik eigentlich sinnfrei, denn sie frisst unnötig Performance. Das sollten nur blutige RasPi/Linux Anfänger machen, die sich mit einem Klicki Bunti GUI in der Bedienung dann sicherer fühlen.
Ich würde gerne Clients, die sich am Cisco AP anmelden/Datenmenge, monitoren
Wenn es dir um den Durchsatz und Port Auslastung geht nimmst du am einfachsten Observium. Das ist mit einem Mausklick vollkommen fertig installiert.
Macht aber nur Sinn wenn die APs und auch der Switch an dem sie angeschlossen sind SNMP können !
Ansonsten findest du zur Überwachung auch hier ein sehr interessantes Projekt mit dem RasPi:
https://www.heise.de/ct/artikel/c-t-Raspion-Projektseite-4606645.html
oOHiggsOo
oOHiggsOo Jan 06, 2020 updated at 13:11:51 (UTC)
Goto Top
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?
aqui
aqui Jan 06, 2020 updated at 17:27:06 (UTC)
Goto Top
Ich habe einen ISR4321 als Router, 1 c2960x-24ts-ll als Swtich und einen AIR-AP2802I mit Mobility Express als AP
Perfekt, die können natürlich alles SNMP. Das klappt dann problemlos.
Könnte ich so auch ein SPA112 überwachen? (kann ja SNMP)
Klar. Alles was SNMP spricht kann Observium überwachen.
Sprich die abgehenden und ankommende Gespräche mit Rufnummer/Zeit loggen?
Musst du sehen. Wenns dafür auf dem SPA eine OID gibt dann natürlich !
Ggf. mal mit einem snmpwalk checken. Wäre dann Stoff für einen separaten Thread hier.
IT-Pro
IT-Pro Nov 12, 2020 at 10:17:16 (UTC)
Goto Top
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.
Lochkartenstanzer
Lochkartenstanzer Nov 12, 2020 updated at 10:47:01 (UTC)
Goto Top
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.

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
aqui
aqui Nov 12, 2020 at 10:48:41 (UTC)
Goto Top
Kollege LKS hat Recht. Es ist egal ob GPS oder DCF-77.