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.).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env bash
cd/var/root#set script location path
# Array of files to check and attach if available
declare-afile_list=(
/Users/seggert/Nextcloud/Scan/DMS/*.pdf
# /another Folder if required
)
# Create an array for mail attachment arguments
declare-aattach_args=()
declare--attached_files=''# Display actually attached files in the mail
declare-iattached_count=0# Number of attached files
# Iterate attachments
forfile in"${file_list[@]}";do
# If file exist, is not empty and is readable
if[ -s "$file" ] && [ -r "$file" ]; then
# Add the proper attachment arguments to the array
attach_args+=("$file")
attached_count=$((attached_count+1))
# Add - filename and newline
attached_files+="- ${file}"$'\n'
fi
done
# Check to see if there is at least 1 attachment
if[ $attached_count -gt 0 ]; then
echo"${attach_args[@]}"
/usr/local/bin/mutt-s"DMS Scan"-a"${attach_args[@]}"--demo@mail.de<<<"E-Mail Scan von DMS Scanner Stefan"
#Document delete
rm-f/Users/seggert/Nextcloud/Scan/DMS/*.pdf
fi
Über den Autor
Mein Name ist Stefan Eggert, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 1) Flush aller bestehenden Rules
/usr/sbin/iptables-F
# 2) Auslesen der NewDevices und schreiben in die die Datei newips
sqlite3/home/pi/pialert/db/pialert.db"select dev_LastIP from Devices where dev_NewDevice like 1;">/home/pi/pialert/db/newips
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, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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:
ARP Scans
DNS Anfragen aus Pi-hole
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).
Mein Name ist Stefan Eggert, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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
1
2
3
4
5
6
7
8
9
# Datei wpa_supplicant.conf in der Boot-Partition von Raspbian Stretch
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.
1
sudo passwd pi
Raspberry Pi Zero Pin Belegung
Über den Autor
Mein Name ist Stefan Eggert, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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:
1
yum-yinstall httpd
Nachdem der Webserver installiert wurde, kann dieser mittels
1
2
systemctl enable httpd.service
systemctl start httpd.service
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
1
yum-yinstall mariadb-server
Um mariaDB zu starten (auch beim Booten) wird nun folgendes ausgeführt:
1
2
systemctl start mariadb.service
systemctl enable mariadb.service
1
systemctl status mariadb.service
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.
1
mysql_secure_installation
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:
1
mysql-uroot-p
Anschließend erstellen wir die Datenbank „orangehrm“, indem wir am SQL Server folgende Befehle eingeben:
1
CREATE DATABASE orangehrm;
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.
Anschließend installieren wir php mit php-opcache und starten unseren Webserver neu:
1
2
yum install php56w php56w-opcache php56w-mysql
systemctl restart httpd.service
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
1
yum-yinstall wget unzip
installiert werden. Anschließend erfolgt der Download und das entpacken:
Jetzt müssen noch die Berechtigungen angepasst werden:
1
chown-Rapache:apache/var/www/html
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:
1
service mariadb restart
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.
1
systemctl restart httpd
Anschließend aktivieren wir noch die Firewall und deaktivieren selinux:
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, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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
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:
1
sudo nano/etc/haproxy/haproxy.cfg
Anschließend muss der Bereich „backend octoprint“ um die beiden letzten Zeilen ergänzt werden:
1
2
3
4
5
6
backend octoprint
reqrep^([^\:]*)\/(.*)\1\/\2
option forwardfor
server octoprint1127.0.0.1:5000
acl AuthOkay http_auth(UL1)
http-request auth realm octoprint if!AuthOkay
Ebenso wird ein neuer Abschnitt „userlist UL1“ eingefügt:
1
2
3
userlist UL1
group GR1
user USERNAME insecure-password PASSWORD groups GR1
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
Über den Autor
Mein Name ist Stefan Eggert, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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
1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo reboot
2 – Firmware Update
Bitte stellt sicher das die Uhrzeit richtig eingestellt ist.
1
sudonano/etc/ntp.conf
Ersetzt die Server dort mit diesen Servern:
1
2
3
4
server0.de.pool.ntp.orgiburst
server1.de.pool.ntp.orgiburst
server2.de.pool.ntp.orgiburst
server3.de.pool.ntp.orgiburst
Nun startet das Firmware Update mit
sudo rpi-update
3 – SPI aktivieren und set overlay für das Tontec MZ61581 Display
Zuerst muss die /boot/config.txt editiert werden:
1
sudo nano/boot/config.txt
Anschließend müssen folgende Zeilen der Datei angehangen werden
1
2
dtparam=spi=on
dtoverlay=mz61581
Nach dem speichern ein reboot des PI
1
sudo reboot
4 – Edit cmdline.txt
Um das Display bereits im Boot Prozess zu aktivieren, müssen wir die cmdline.txt editieren:
1
sudo nano/boot/cmdline.txt
Am Ende der Zeile fügen wir
fbcon=map:10 an
Nach einem Neustart sieht man nun den Boot Screen.
Über den Autor
Mein Name ist Stefan Eggert, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.
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
apt-get update und
apt-get upgrade
Zunächst fügen wir das Respository mit wget hinzu:
Damit nun die Weboberfläche über http://ip/icingaweb2/setup gestartet werden kann, muss der Apache neu gestartet werden:
service apache2 restart
Über den Autor
Mein Name ist Stefan Eggert, ich bin lange als Freiberufler tätig gewesen und berate seit über 10 Jahren im Bereich IT-Sicherheit. Spezialisiert habe ich mich auf DDoS, Schwachstellenmanagement und Kennwortsicherheit.