Raspbian

All posts tagged Raspbian

Na dann mal ran an den Speck … erstmal alles benötigte für unser Vorhaben installieren:


apt-get install mrtg mrtg-ping-probe rrdtool librrds-perl snmp snmpd snmp-mibs-downloader apache2 libapache2-mod-perl2 libnet-snmp-perl libgd-gd2-perl

Während der Installation fragt das Setup für MRTG ob die Config Datei nur mit Root beschreibbar sein soll oder von jedem, die antwort ist an sich egal, wir nehmen jedoch der Sicherheit Halber die Option mit root only zugriff.

Kommen wir zu den wichtigen Dingen der Konfiguration der gerade installierten Module … zuallererst haben wir hier den

Apache2 Webserver

Da dieser Läuft sollte auf port 80 auch bereits die Standard Seite vom Apache verfügbar sein, der in diesem Fall über die Config Struktur des Apache Servers aufklärt. Diese Seite können wir soweit ignorieren, wir müssen uns zunächst erstmal um die aktivierung von PERL über das CGI Paket kümmern:


a2enmod cgi
service apache2 restart

Danach sollte man unter


/etc/apache2/sites-enabled/000-default.conf

Die Zeile “ Include conf-available/serve-cgi-bin.conf  “ aktivieren ( # entfernen am Anfang )
Auch nach diesem Speichern ist ein beherzter neustart des Apache2 Services fällig.

im Prinzip  ist es das auch schon für die Konfiguration für den Apache gewesen. Kommen wir also zu

MRTG und dem RRDtool

Zunächst ist es hilfreich den cronjob von MRTG anzupassen , von 5 auf 1 Minute:


nano /etc/cron.d/mrtg


*/1 *   * * *   root    if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi


nano /etc/mrtg.cfg


Interval: 1


rm -r /var/mrtg/*.rrd

Die nächste Anpassung machen wir für den RRD Ordner als auch für die ganzen MRTG Config Files, hier werden also 2 neue Verzeichnisse benötigt.


mkdir /var/mrtg #für das  rrd Verzeichnis
mkdir /etc/mrtg #ffür die Config Dateien

Der Nächste Part bezieht sich auf die Einstellung von der

Routers2.cgi

Zunächst müssen wir die Routers2.cgi erstmal beziehen und dann auch noch installieren:


wget http://www.steveshipway.org/software/rrd/routers2-v2.23.tar.gz
tar xfv routers2-v2.23.tar.gz
cd routers2-v2.23/
perl install.pl

Während der Installation werden wir einige Fragen gefragt bezüglich pfaden auf dem RPI und anderen Dingen, der  einfachheit halber habe ich die korrekten Einstellungen vornotiert:


Document root? /var/www/html
CGI directory? /usr/lib/cgi-bin
MRTG config directory? /etc/mrtg
MRTG files [*.cfg]?
RRD directory [/tmp]? /var/mrtg
Perl executable [/usr/bin/perl]?
Configuration file [/var/mrtg/routers2.conf]?
Activate routingtable extensions [no]?
'usebigk' option [mixed]? no
auth option [none]?
Caching option [no]?
Can I mail [no]?

INSTALLING SOFTWARE

Perl is : /usr/bin/perl
MRTG files : /etc/mrtg/*.cfg
RRD files : /var/mrtg
Doc root : /var/www
CGI bin : /usr/lib/cgi-bin
Config file : /var/mrtg/routers2.conf
Routingtable: INACTIVE
Compact page: ENABLED
Caching : DISABLED
'usebigk' : no
Auth option : NONE
Mail Steve : no
Other options can be set later by modifying the Config file
Continue to install [no]? yes

Nach der Installation ist noch die Anpassung der Routers2.cgi config notwendig:


nano /var/mrtg/routers2.conf


charset = utf-8 #Für korrekte Zeichenanzeige
actuals = yes #Die Aktuellen Zahlen im Popup anzeigen
defaulttarget = summary #Zusammenfassung zuerst anzeigen
graphstyle = x3 #Das größte Bild anzeigen
graphtype = w #Die Wochenanzeige per Default zeigen
percentile = yes #Prozentuale Berechnung
sorder = l2 l2D x3 x3D #Nur große Bilder anbieten
showtotal = yes #Eine Gesammtlinie anzeigen
compact = no #Es werden keine Kompakten Graphen angezeigt.
daystart = 8 #Um einen Werktag hervorzuheben ( Startuhrzeit)
dayend = 18 #Ditto ( Enduhrzeit )
windowtitle = Title #Hier kann der Seitentitel definiert werden
bgcolour = #fffffff #Wenn das nicht eingegeben ist haben einige Graphen einen  lilanen Hintergrund
twinmenu = yes #ja da wir alle mit Widescreens heutzutage arbeiten
showfindbox = no #ist deaktiviert da wir nicht soviele Geräte überwachen.
6hour = always #wird hinzugefügt durch uns damit die 6 Stunden anzeige freigeschaltet wird

Nun muss noch die Standard mrtg.cfg angepasst werden.


nano /etc/mrtg.cfg


#Directory in which the RRD files will be stored
WorkDir: /var/mrtg
#Tells MRTG to use RRD instead of its own log format
LogFormat: rrdtool
#To have multiple instances of MRTG running to immediately pass through all targets
Forks: 4
#Use the configs in the mrtg subfolder (/etc/mrtg)
Include: mrtg/*.cfg

Erster Testlauf ohne angebundene Geräte

Dann rufen wir mal testweise http://PiHole/cgi-bin/routers2.cgi auf, Zeigt  das ganze eine Seite mit „no valid target is selected“ sind wir richtig und das Script funktioniert. da wir aber noch verifizieren wollen ob die Konfiguration soweit hinhaut rufen wir folgende Seite auf http://PiHole/cgi-bin/routers2.cgi?page=verify . Ist hier alles soweit in Ordnung ist das Grund Setup abgeschlossen ( Yay ).

Man könnte jetzt über viele Wege configurationen anlegen für neue Geräte, ich Persönlich wollte sowieso mrtg-ping-probe nutzen und verzichtete daher über snmp traps als auch den cfgmaker von MRTG, da dieser leider nicht die nötigen Einträge unterstützt hätte.

Im Nächsten Beitrag gehe ich auf das Verwendete MRTG Template für alle Clients ein.

Nachdem wir nun die Grundinstallation haben und alles sooo einfach war beginnt die eigendliche Reise: Die Konfiguration.

Ziel ist nach wie vor ein Headless System, ergo schnellstmöglich die Tastatur loszuwerden und das teil vom Monitor abzufriemeln und das ganze dann gut versteckt an der Innenseite einer Kante eines Tisches zu verstecken… Aus den Augen aus dem Sinn.

Meine Erste Intention nach Inbetriebnahme war: Ich kenne die IP ich geh mit SSH drauf … pustekuchen, der Dienst ist aus oO. Kurz recherchiert, scheint wohl standard auf Raspbian zu sein, und das was man während der Manuellen installation auf die SD Karte ohne Noobs macht um SSH Freizuschalten, geht in der Noobs Version nicht so einfach, da ich irgendwie keinerlei Zugriff auf irgendein Dateisystem von Außen bekomme um die benötigte Datei zu erstellen.

Da sich das ganze um ein Debian handelt, im entferntesten Sinne, machte ich mich erstmal ans Updaten der Distro


sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Wie einem auffällt ist hier auch noch das Problem das ich das ganze als User ( PI ) in dem Fall ausführen muss, da der Root Login komplett gesperrt ist an dem Gerät ( dazu später mehr ).

Da der RPI im klassichen Sinne kein BIOS sondern eine Firmware hat, sollte man im Anschluss diese Updaten. In der Lite Version fehlt jedoch das benötigte Tool. dies lässt sich aber relativ leicht nachinstallieren:


sudo apt-get install git
sudo apt-get install rpi-update
sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

Nach diesen 3 befehlen ist der für das Firmware Update zuständige rpi-update installiert und auf den aktuellen Stand geupdated. Also ran an das Updaten der RPI Firmware, was uns neben stabilität auch mehr Takt und freigeschaltete Funktionen bieten kann!


sudo rpi-update
sudo reboot

Nach dem Reboot ist der PI nun auf dem aktuellsten Stand und wir können endlich fortfahren.

Wir rufen mit


sudo raspi-config

die Raspberry Pi Software Configuration auf um diverse Dinge durchzuführen:

zum einen kann ich endlich das Passwort des Users PI ändern und den Bootmodus zum Terminal mit User Login umstellen als auch Systemsprache und Tastaturlayout umstellen ( hier wird ein weiterer reboot fällig ).

Das Wichtigste in dem Menü befindet sich jedoch unter Advanced Options: die Möglichkeit dem PI einen anderen Hostnamen zu verpassen ( ab jetzt PIHOLE ), SSH zu aktivieren ( endlich ) und auch die raspi-config zu updaten auf die aktuellste Version.

Nach Abschluss einmal neustarten, überflüssige Kabel und Dongle entfernen, und dann in den Headless Modus booten. Soweit sogut, wir können jetzt mit SSH verbinden und uns mit dem User Pi und dem neu gesetztem Passwort anmelden …eine Anmeldung mit ROOT ist aber nach wie vor nicht möglich. Also haben wir unser nächstes Ziel


sudo passwd root
sudo vi /etc/ssh/sshd_config

dort ändern wir den Eintrag von:

PermitRootLogin without-password

nach:

PermitRootLogin yes

und starten mit dem Befehl den SSH Server neu:

/etc/init.d/ssh restart

und schon können wir alles mit jedem User den wir wollen anstellen. Wuhi Damit ist das Grundsetup der RASPI einstellungen abgeschlossen.