SSH Verbindung mit privaten/öffentlichen Schlüssel

Üblicherweise kennt man einen SSH Login mit Passwort. Was ist aber, wenn es erforderlich ist, eine Verbindung ohne Password herzustellen? Hier kommt die Schlüssel-Authentifizierung ins Spiel. Bei dieser Art der Authentifizierung wird mit Schlüsseln gearbeitet. Genauer gesagt dem öffentlich- und dem privaten Schlüssel.  Wollen wir z.B., dass Server1 sich ohne Passwort Abfrage auf dem Server2 anmelden kann, so erstellen wir auf Server1 einen privaten, samt öffentlichen Schlüssel. Server2 müssen wir den öffentlichen Schlüssel mitteilen. Schauen wir uns das untere Bild mal genauer an. Server1 möchte eine SSH Verbindung nach Server2 aufbauen. Server2 schickt eine Random Antwort, die Server1 mit einer […]

icinga2 auf dem Raspberry Pi mit Postgresql

Icinga2 und Icingaweb2 installieren Damit wir Icinga2 und Icingaweb2 installieren können, benötigen wir das entsprechende Repository. Sobald dies eingerichtet ist, installiert es mit dem apt Befehl. cuurl https://packages.icinga.com/icinga.key | sudo apt-key add – echo “deb http://packages.icinga.com/raspbian icinga-stretch main” \ | sudo tee /etc/apt/sources.list.d/icinga.list sudo apt update sudo apt install icinga2 icingaweb2 http://localhost/icingaweb2   Nachdem wir auf die Seite gelangt sind, verlangt Icinga ein Token zur Authentifizierung von uns. Dem wollen wir nun nachgehen. sudo icingacli setup config directory –group icingaweb2; sudo icingacli setup token create;   Optional könnten wir noch überprüfen, ob die erforderlichen Gruppen für Icinga existieren. Es sollte […]

multiple Datenbanken mit Django

Django hat durch sein MVC(Model-View-Controller) von Beginn an eine Datenbank mit am Board. Mein Projekt basiert auf mysql, jedoch hatte ich weitere Datenbanken, die ich über Django managen wollte, die allerdings nicht in der Default DB von Django sind. Daher müssen diese Django bekannt gemacht und Models für diese Datenbanken erstellt werden. Die Bekanntmachung findet in der settings.py statt. Hier trägt man die weiteren DB Verbindungen ein. Dabei könnte es wie folgt aussehen. In dem DATABASE Dictionary können neben dem Default weitere Werte eingetragen werden. Die ENGINE bestimmt dabei, ob mysql, sqlite oder die anderen unterstützen DBs eingetragen werden. Im […]

Kali Linux Android hack

Ein Hinweis vorweg: Ich übernehme keinerlei Haftung für Schäden, die durch diesen Artikel verursacht wurden. Ein mutwilliges Hacken anderer ist eine Straftat, führt diesen Selbstversuch also bitte nur bei euren Geräten aus. Wer ein Android Handy hacken möchte, braucht dazu nicht viel. Es ist leider auch sehr erschreckend wie wenig es benötigt, damit der Hack erfolgreich ausgeführt werden kann. Zum einen reicht Kali Linux und die vermeintliche Unachtsamkeit des Smartphone Users, damit der Angreifer vollen Zugriff auf das Handy hat. Meine Teststellung bestand aus einem Samsung S5 Neo, geflasht auf Android 6 und meinem Laptop, auf dem ich eine virtuelle […]

Shell Backup Script erzeugen

Backups sind wohl eines der wichtigsten Dinge auf einem Server und so darf es natürlich auch nicht auf meinem Server fehlen. Statt einer Software Solution habe ich mir meine mit Hilfe von Shell selbst geschrieben. Das Script ist relativ schmal gehalten, erledigt aber alles mit bravour. Es hat eine Vorhalte Zeit von 5 Tagen welches in der Variable mindir abgespeichert ist. Es werden also insgesamt die letzten 5 Backups beibehalten, die älteren Backups werden automatisch gelöscht.  Die For Schleife beinhaltet alle Ordner die gesichert werden sollen. Das Interessante ist der find Aufruf, um die ältesten Backups zu finden und diese […]

IPs mittels iptables automatisch blockieren lassen

Eigentlich wollte ich meinen vServer noch sicherer machen, indem ich von Seiten wie myip.ms eine vorgefertigte Blackliste herunterlade. Die gezogenen IPs sollten mittels iptables blockiert werden. Ich hatte auch schon soweit alles fertig geschrieben, ein Python3 Script, ein Shell Script und die SQL Scripte zum Anlegen der Datenbank. Allerdings habe ich nach ein “paar” Einträgen folgende Nachricht von iptables bekommen: iptables: Memory allocation problem. Nach ein bisschen Internet Recherche fand ich heraus, dass mich mein Hoster auf eine bestimmte Anzahl an iptable Einträgen begrenzt. Die maximal Möglichen Einträge findet ihr mit diesem Befehl. egrep “failcnt|numiptent” /proc/user_beancounters numiptent steht dabei für […]

SSH Email bei Client Verbindung

Mein vServer hat zurzeit den SSH Port offen. Dieser befindet sich zwar nicht mehr standardmäßig auf dem Port 22, um sogenannte Bots größtenteils vom Server zu halten, allerdings wollte ich bei jedem Connect informiert werden, damit ich im Falle einer Kompromittierung direkt reagieren kann. Der Port kann in der /etc/ssh/sshd_config angepasst werden. Die eigentliche Mail Benachrichtigung, in der es in diesem Beitrag auch geht, muss in pam.d eingerichtet werden. Eine, wie ich finde gute Seite, die pam.d beschreibt, ist https://web.archive.org/web/20180303034326/http://www.tuxradar.com/content/how-pam-works Kommen wir weiter zu den Änderungen der Datei. Öffnen wir die ssh Datei mit einem beliebigen Editor, in meinem Fall […]

Metabase Startup Script

Damit Metabase automatisch starten, habe ich dieses Script geschrieben. Dafür überprüft es, ob Metabase, bzw. eine Java Instanz schon auf Port 3000 lauscht. Falls dies der Fall ist, gehe ich davon aus, dass Metabase schon läuft und schreibe es in die Variable alreadystarted. In die eventuallystarted schreibe ich, falls schon ein Java Dämon existiert. Dies könnte unter Umständen bedeuten, dass Metabase im Boot Mode ist und gerade gestartet wurde. In diesem Fall bricht das Script ab und man muss es manuell ausführen. Metabase ist definitiv nicht am Laufen, wenn beide Variablen nicht gesetzt sind. Dementsprechend sind die export Variablen für […]

User löschen in Mysql

Einen Benutzer in Mysql zu löschen ist nicht sonderlich schwer. Es wird lediglich ein root Benutzer auf der Mysql Datenbank benötigt. mysql -uroot -ppasswort Sobald man sich erfolgreich angemeldet hat, tippe folgenden Befehl ein, um all Benutzer der Datenbank zu sehen. select user,host from mysql.user; Sucht dabei euren Benutzer aus, den ihr löschen wollt und merkt euch den User + Host. Diese Informationen werden beim Entfernen der Privilegien und des eigentlichen Benutzers benötigt. Ich hab mir den remote User ausgesucht. Ihr müsst unbedingt aufpassen, dass ihr keinen Mysql oder den Benutzer einer anderen DB erwischt! Das % Zeichen bedeutet im […]