Script zum versenden von Attachments

Wie ich bereits in einem anderen Beitrag geschrieben habe, nutze ich CAYA um meine Dokumente zu archivieren. Leider bietet CAYA keinen automatischen Upload per WEBDAV oder FTP an, daher habe ich eine andere Schnittstelle (E-Mail) genutzt, um meine Dokumente nach dem Scan per E-Mail zu versenden.

Da ich MacOS nutze, konnte ich mein bestehendes Script für Linux dafür verwenden. Ich musste nur „mutt“ über Brew nachinstallieren.

Das Script ist relativ einfach aufgebaut und wird per Cron jede Minute ausgeführt. Es durchsucht einen speziellen Ordner nach PDF Dokumenten und versendet diese dann per Email. Das Script kann natürlich auch für alles andere verwendet werden (versenden von LogFiles z.B.).

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

Pi.Alert auf dem Raspberry als NAC

Guten Morgen zusammen 🙂

Gestern habe ich mich ein bisschen mit dem Thema NAC beschäftigt. Network Access Control (NAC; deutsch Netzwerkzugangskontrolle) ist eine Technik, die die Abwehr von Viren, Würmern und unautorisierten Zugriffen aus dem Netzwerk heraus unterstützt.

Eigentlich wollte ich schnelle Lösung finden, um neue Geräte in meinem Netzwerk erst freizugeben, ein direktes „Fencing“, also den Client in ein separates Quarantäne Netzwerk zu packen wollte ich nicht. Darum ist auch der Titel „Pi Alert als NAC“ so nicht ganz korrekt, jedoch erfüllt der Weg voll und ganz meine Zwecke. Neue Geräte, die durch Pi Alert identifiziert wurden, werden aus der Datenbank ausgelesen (per bash Script) und dann über iptables blockiert. Hierzu ist es natürlich zwingend erforderlich, das der Pi Alert gleichzeitig als Default Gateway im Netzwerk funktioniert. Das ganze kann natürlich abgeändert werden, theoretisch könnte über das Script auch eine API am Switch, dem DHCP selbst oder eventuell eine andere Firewall angesprochen werden (z.B. über SSH).

Das Script ist relativ simple aufgebaut:

Sobald die Geräte im Pi Alert nicht mehr als New markiert sind, werden diese durch das Flush gelöscht. Das ganze starte ich dann jede Minute per Cron.

Sicherlich ist dies keine „ultimative“ NAC Lösung und kann total einfach (durch ändern des GWs) umgangen werden. Mir selbst reicht es aber um mein heimisches Netzwerk etwas besser zu kontrollieren.

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

Pi.Alert – Kostenlose Alternative zur Fingbox

In den letzten Wochen habe ich mich mit dem Thema Fing beschäftigt. Fing ist ein relativ einfaches Tool, welches das Netzwerk regelmäßig auf neue Device untersucht und diese anschließend analysiert. Hierzu wird u.a. ein ARP Request im LAN regelmäßig abgesetzt, die Mac Adressen (Hersteller) analysiert und anschließend in einer GUI angezeigt. Sofern man sich also dafür interessiert wer noch alles in seinem LAN/WLAN so rumspringt, ist dies eine tolle Sache. Neue Geräte werden dann sofort per Alarm dem Admin mitgeteilt, so das man einen direkten und schnellen Überblick hat, wer sich gerade (neues) in seinem Netzwerk befindet. Ebenfalls können Statistiken erstellt werden, wer, wann und wie lange im Netzwerk gewesen ist.

Übersicht aller Geräte im Netzwerk

Leider hat Fing auch einen großen Nachteil. Um das Netzwerk regelmäßig zu analysieren ist eine Fingbox erforderlich (um die 120 Euro), alternativ muss ein Rechner (Windows oder MacOS) regelmäßig laufen damit das Netzwerk alle paar Minuten gescannt wird. Ein spezielles Raspberry Image gibt es leider nicht.

Neues Gerät wurde erkannt

Zuerst hatte ich die Überlegung selbst etwas zu programmieren, was ähnlich aufgebaut ist. Prinzipiell benötige ich die vielen Features von Fing nicht, ich wollte einfach nur wissen welche Geräte in meinem Netzwerk sind oder sich gerade eben angemeldet haben.

Nach langer Suche bin ich dann fündig geworden und bin über Pi.Alert gestolpert. Die relativ unbekannte Applikation nutzt verschiedene Methoden, um das Netzwerk zu untersuchen, die Ergebnisse zu visualisieren oder per E-Mail an den Admin zu versenden. Hierzu werden verschiedene Methoden genutzt:

  1. ARP Scans
  2. DNS Anfragen aus Pi-hole
  3. DHCP Leases aus dnsmasq

Besonders interessant finde ich das schon während der Installation von Pi.Alert gefragt wird, ob der Ad-Blocker Pi-hole auf dem Gerät installiert ist oder installiert werden soll. Ich persönlich bin ein großer Fan, Werbung und Tracker über DNS zu filtern. Darum finde ich den Ansatz, die Source IP der DNS Anfragen zu analysieren, eine sehr gute Idee. Ich hatte Pi-hole übrigens schon vorher sowohl in einem VMWare Image als auch auf einem Raspberry Pi Zero am laufen.

Neues iPhone im Netzwerk gefunden

Fazit

Mit Pi.Alert habe ich mein Netzwerk gut im Griff. Die Applikation kann gemeinsam mit Pi-Hole betrieben werden und liefert so perfekte Ergebnisse. Noch besser wird das ganze natürlich wenn man die DHCP Leases aus Pi-Hole ausliest (sofern dieser auch DHCP macht), es ist jedoch auch möglich einen Reverse Lookup auf die IPs zu machen. Durch eine Benachrichtigung per Email (SMTP Server wird bei der Installation abgefragt) lassen sich zudem Downtimes etc. als Benachrichtigung einstellen. Wenn man auf Features wir „Port-Scans“ etc. verzichten kann, ist Pi.Alert eine schöne kostenlose Alternative zur Fingbox. Mit persönlich reicht es zu wissen, das ein neues Gerät im Netzwerk ist. Vielleicht passe ich mir das Script noch ein bisschen an (bsp. Qualys Scan über die API bei einem neuen Device).

Links

Pi Alert auf GitHub

Pi Hole als DNS / DHCP Server Image

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

Qualys und Centos 8 / Centos 8 Stream

Aktuell habe ich mehrer Probleme mit dem Qualys Vulnerability Scanner und Centos 8 / Centos 8 Stream festgestellt. Zuerst viel mir das Problem auf, das Centos 8 Server keinerlei Schwachstellen über den Cloud Agenten zurückmeldeten. Zwar wurden „Informational“ und ein Remote detektiertes openSSH Finding (QID 38773) angezeigt, aber keinerlei Vulnerabilitäten der Kategorie 1-5. Auch Qualys konnte hierzu bisher (Stand: 26.01.2022) keine guten Erklärungen liefern.

Getestet habe ich (mit Agent und Authenticated Scan via Appliance):

  • Centos 8.4.2105 -> Unpatched
  • Centos 8.5.2111 -> Unpatched
  • Centos 8 Stream -> Unpatched

Alle Systeme zeigen auch keine Fixed Findings an, was darauf schließen lässt, das Qualys Centos 8 nicht richtig unterstützt. Erstaunlicherweise habe ich das gleiche Bild in einem Kundenprojekt gefunden, wo man sich fälschlicherweise auf das Qualys Ergebnis verlassen hat.

Centos 8 Stream ohne Sicherheitsupdates

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

Raspberry Pi headless setup

Meine heimliche Liebe zu Einplatinenrechner ist kein Geheimnis. Ist erst ein Ansatz zur Automatisierung gefunden, wird dieser direkt durch ein „Raspberry Projekt“ umgesetzt. Zugegeben, in den letzten Wochen schwärme ich auch für Arduino, welcher tolle Möglichkeiten eröffnet – Aber Raspberry dominiert dennoch unseren Haushalt durch Webcams, Ambilight, Speedmessungen am DSL Anschluss, 3D Drucker und vieles mehr. Aktuell arbeite ich gerade an einem Thermometer, welches von einem Arduino mit DHT22 über 433 MHz Messungen empfängt, statistisch am Pi aufwertet und dann an einem Webserver überträgt. Damit der Pi Zero auch ohne Monitor und Tastatur direkt gestartet werden kann, sind zunächst jedoch einige Änderungen notwendig.

Download des aktuellen Raspbian Image und Installation durch Etcher

Dieser Schritt sollte relativ selbstredend sein, daher werde ich auf die Installation nicht näher eingehen. Früher habe ich das Image aus der Console mit dd aufgespielt, heute mache ich dies über Etcher (hier kann man Etcher Downloaden)

Etcher

WiFi konfigurieren

Als nächstes muss vor dem ersten Start des Pi eine Datei erstellt werden. Diese muss auf der /boot Partition des Pi gespeichert werden.

Inhalt der Datei /boot/wpa_supplicant.conf

SSH aktivieren

Nachdem wir nun die WLAN Einstellungen am Raspberry gemacht haben, müssen wir noch eine leere Datei im /boot Verzeichnis erzeugen und nennen diese „ssh“. Dies bewirkt, das der SSH Dienst bei booten automatisch gestartet wird.

Fertig: Kennwort bitte ändern

Starten wir nun den PI, können wir uns mit Putty oder sonstigen SSH Client anmelden: ssh pi@raspberrypi Das Default Passwort für den Benutzer pi lautet „raspberry“ und sollte umgehend geändert werden. Eine solche Kombination ist ein sehr hohes Sicherheitsrisiko.

Raspberry Pi Zero Pin Belegung

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

OrangeHRM unter Centos 7

Heute habe ich mich mit dem Thema OrangeHRM unter Centos 7 beschäftigt. Folgende Schritte sind für eine Installation unter Centos 7 notwendig:

Vorbereitung und Systemupdate

  • Minimal Installation Centos 7 installieren
  • Nach der Installation ist ein yum update erforderlich, um die aktuellsten Pakete zu installieren.

Apache Webserver installieren

Nachdem Centos nun ein Update aller Pakete erhalten hat, kann der Apache Webserver installiert werden. Hierzu wird wieder der Paketmanager yum verwendet:

Nachdem der Webserver installiert wurde, kann dieser mittels

gestartet werden.

Mit einem einfachen netstat -tulpen kann man nun kontrollieren, ob der Webserver auf auf dem Interface läuft:

Datenbank installieren und einrichten

Als nächstes muss MariaDB für die Datenbanken installiert werden. Dies erfolgt mit

Um mariaDB zu starten (auch beim Booten) wird nun folgendes ausgeführt:

Um die SQL Installation nun abzusichern, wird mysql_secure_installation angewendet. Die zu beantwortenden Fragen müssen alle mit Y beantwortet und ein neues Kennwort vergeben werden.

Als nächstes müssen diverse queries für die OrangeHRM Installation durchgeführt werden. Hierzu melden wir uns wie folgt am SQL Server an:

Anschließend erstellen wir die Datenbank „orangehrm“, indem wir am SQL Server folgende Befehle eingeben:

Danach erstellen wir einen neuen User (orangehrm_user) und vergeben ein gutes Kennwort (StrongPassword). Besonders das Kennwort sollte natürlich nicht per Copy Paste übernommen sondern geändert werden 😉 . Im Anschluss werden noch die Privilegien gesetzt und MariaDB wird mit \q verlassen.

PHP installieren

Als nächstes benötigt unser Webserver noch PHP. Um dieses mit allen möglichen Extensions zu installieren, fügen wir erst ein neues Repository hinzu:

Anschließend installieren wir php mit php-opcache und starten unseren Webserver neu:

OrangeHRM installieren

Jetzt müssen wir OrangeHRM installieren. Hierzu gehen wir in in das root Verzeichnis vom Webserver und laden die aktuelle Version von OrangeHRM mit wget. Sollte wget und und unzip noch nicht auf dem System sein, so kann dies mittels

installiert werden. Anschließend erfolgt der Download und das entpacken:

Jetzt müssen noch die Berechtigungen angepasst werden:

In der Datei /etc/my.cnf muss nun nach [mysqld] noch eine Zeile mit event_scheduler = ON  hinzugefügt werden. Dies machen wir mit vi /etc/my.cnf

Anschließend wird MariaDB neu gestartet:

Nun müssen wir wieder mit vi in der Datei /etc/httpd/conf/httpd.conf die Zeile  „AllowOverride None“ suchen und diese in „AllowOverride All“ ändern. Anschließend starten wir den Webserver neu. Hierdurch wird die .htaccess Datei aktiviert und verwendet.

Anschließend aktivieren wir noch die Firewall und deaktivieren selinux:

OpenHRM über das Webinterce installieren

Die Einrichtung des Servers ist abgeschlossen. Als nächsten muss OpenHRM installiert werden. Hierzu rufen wir im Browser die IP Adresse des Servers auf:

OrangeHRM installer

Die bestehende Datenbank wird mit dem Datenbanknamen, unseren Username und dem Password konfiguriert:

Datenbank konfigurieren

Als letztes legen wir noch einen Admin User an und stellen die Sprache / Zeitzone ein. Anschließend bestätigen wir die Einstellungen unter „Confirmation“ und installieren die Anwendung:

Nachdem die Installation erfolgreich gewesen ist, können wir als URL wieder die IP Adresse des Servers eingeben und sehen sofort den Startbildschirm.

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit. Beruflich bin ich erreichbar unter www.stefan-eggert.de

OctoPi über das Internet betreiben

OctoPi bzw. OctoPrint ist eine wirklich tolle Ergänzung im 3D-Druck! Fast jeder, der einen OctoPrint  Server im lokalen Netz betreibt, wird auf kurz oder lang den Wunsch haben, diesen auch aus dem Internet erreichbar zu machen.

Wer also einfach die entsprechenden Ports von seinem Router bzw. Firewall zum Printserver durchreicht, wird feststellen, das es derzeit mit OctoPi nicht möglich ist, das Webinterface vor neugierigen blicken zu schützen. Konkret kann also jeder aus dem Internet zumindest das Webinterface lesend erreichen und hat somit Zugriff auf Kameras und natürlich auch auf aktuelle Druckeinstellungen und Leistungsdaten.

OctoPi ohne Anmeldung

OctoPi ohne Anmeldung

 

Die derzeit beste Lösung ist es demnach, mit einem Reverse Proxy zu arbeiten. OctoPi selbst bringt bereits HAProxy mit, dieser steht somit aktiv zwischen Internet und dem Octoprint Backend.

HAProxy ist eine kostenlose Open-Source-Software, die einen Load-Balancer und Proxy-Server mit hoher Verfügbarkeit für TCP- und HTTP-basierte Anwendungen bereitstellt.

 

Das Config File /etc/haproxy/haproxy.cfg kann einfach mit vi auf dem PI geöffnet werden:

 

Anschließend muss der Bereich „backend octoprint“ um die beiden letzten Zeilen ergänzt werden:

 

Ebenso wird ein neuer Abschnitt „userlist UL1“ eingefügt:

Wichtig hierbei: USERNAME und PASSWORD sollten geändert werden 😉

 

Ergebnis: Beim Aufruf der OctoPi URL wird jetzt nach einem Benutzernamen und Password gefragt.

Authentifizierung durch HAProxy

Authentifizierung durch HAProxy

 

 

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.

Beruflich bin ich erreichbar unter www.stefan-eggert.de

Raspberry PI 2: Tontec Touch Screen (Model MZ61581)

Neulich habe ich mir ein Touch Screen für meinen PI gekauft. Der Screen selbst wird mit einem Gehäuse geliefert, in das der PI2 perfekt passt. Damit der Boot Vorgang angezeigt wird sind jedoch einige  Schritte erforderlich:

1 – Update und Upgrade des PI

 

2 – Firmware Update

Bitte stellt sicher das die Uhrzeit richtig eingestellt ist.

Ersetzt die Server dort mit diesen Servern:
Nun startet das Firmware Update mit

 

3 – SPI aktivieren und set overlay für das Tontec MZ61581 Display

Zuerst muss die /boot/config.txt editiert werden:

Anschließend müssen folgende Zeilen der Datei angehangen werden

Nach dem speichern ein reboot des PI

 

4 – Edit cmdline.txt

Um das Display bereits im Boot Prozess zu aktivieren, müssen wir die cmdline.txt editieren:

Am Ende der Zeile fügen wir   an

Nach einem Neustart sieht man nun den Boot Screen.

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.

Beruflich bin ich erreichbar unter www.stefan-eggert.de

Raspberry PI 2: Icinga 2 richtig installieren

Erst diese Woche ist mir wieder meine SD Karte beschädigt worden und ich musste Icinga 2 neu installieren. Um dies nachzustellen, habe ich die Schritte beschrieben. Voraussetzung ist eine saubere Installation von Debian Jessie mit einem anschließenden   und

Zunächst fügen wir das Respository mit wget hinzu:

Um nun die Installation zu starten, müssen alle Abhängigkeiten über den Assistenten installiert werden:

Nun müssen wir die Features ido-mysql sowie command aktivieren und Icinga neu starten:

Um die Weboberfläche zu aktivieren, installieren wir noch IcingaWeb2:

Die Benutzerberechtigungen für nagios und icingaweb2 werden wie folgt gesetzt:

Für die Installation über die Weboberfläche wird ein Setup Token benötigt. Dieser wird wie folgt generiert (und notiert):

Um den Token noch einmal zu lesen, kann dies mit  gemacht werden.

Als letztes müssen noch die fehlenden Verzeichnisse angepasst und die TimeZone richtig gesetzt werden:

Damit nun die Weboberfläche über http://ip/icingaweb2/setup gestartet werden kann, muss der Apache neu gestartet werden:

 

Über den Autor

Mein Name ist Stefan Eggert, als Freiberufler berate ich seit über 10 Jahren im Bereich IT-Sicherheit und forsche mit meinem Team zusätzlich rund um das Thema Schwachstellen. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.

Beruflich bin ich erreichbar unter www.stefan-eggert.de