Seite wählen

NETWAYS Blog

Windows Passwort mit Linux zurücksetzen

Falls ihr mal euer Windows Passwort vergessen habt, ein Freund euch fragt, Zugriff auf eine Dubiose Festplatte zu erhalten aber das System mit einem User und einem Passwort geschützt ist, dann wird euch das Tool chntpw sicherlich nützlich sein. Mit diesem Tool ist es möglich, über eine Live-Distribution von Linux (Lubuntu, Sabayon Linux, Peppermint OS, Fuduntu, Linux Mint usw.) Informationen der Benutzer zu bearbeiten, löschen oder zurückzusetzen. Ich werde für den Vorgang ein Live-Ubuntu verwenden um euch zu zeigen, wie einfach das ist.

Bootet Ubuntu vom USB-Stick und wählt „Try Ubuntu“ aus. Im Desktop angekommen, müssen wir noch eine Einstellung aktivieren um Aktualisierungen der Anwendungen zu erhalten.


Wir setzen einen Haken bei „Von der Ubuntu-Gemeinschaft betreute freie und quelloffenne Programme (universe)“, schließen das Fenster und wählen Neu laden.
Nun gehen wir ins Terminal und aktualisieren.

Loggt euch gleich als root user ein um gewissen Berechtigungen aus dem Weg zu gehen. Mit chntpw ist es nicht möglich, bestehende Passwörter auszulesen.

$ sudo apt update && apt upgrade

Nun installieren wir das Tool chntpw:

$ sudo apt install chntpw

Jetzt suchen wir noch unsere Windows-Partition die wir mounten möchten (Partition auf der unsere Benutzer verwaltet werden).

$ sfdisk -l

Wir können daraus schließen, dass unsere Windows Festplatte als /dev/sda angegeben wird und die Partition die wir suchen /dev/sda2 ist. Um die Partition zu mounten, erstellen wir dazu noch ein Verzeichnis namens /Microsoft. Dann mounten wir unsere Festplatte, und wechseln in das eben erstellte Verzeichnis. Hier können wir die Ordnerstruktur einer Windows-Installation erkennen.

Falls die Partition nicht gemountet werden kann, weil unser Windows den Status „hibernate“ besitzt, müssen wir erst in den abgesicherten Modus und von dort aus sauber herunterfahren.

Jetzt wechseln wir in das Verzeichnis Windows//System32/config/ und sehen uns die Einträge der Security Account Manager (SAM) Datenbank an. Uns werden alle Benutzer und deren Gruppe angezeigt in der sie sich befinden, ob ein Passwort gesetzt ist und das Konto eventuell gesperrt wurde.

$ sudo chntpw -l SAM

Nun kommt das Tool chntpw zum Einsatz, indem wir das Kommando $ sudo chntpw -i SAM ausführen. Wir landen im Main Interactive Menu, wo wir nun auswählen was genau wir anstellen möchten.
Edit user data and passwords (1) ist der Reiter den wir brauchen werden um die Benutzerdaten zu ändern.

Wir werden aufgefordert eine RID (Relative ID) einzugeben. Ich habe schon etwas vorbereitet und einen chntpw-Benutzer erstellt, dessen Passwort niemals verfällt und der Gruppe Administratoren angehört.
In meinem Falle ist die RID 3ea.

Uns wird angezeigt, wie viele fehlerhafte Logins wir hatten, wie oft wir uns bereits mit unserem Konto angemeldet haben und unsere Benutzereigentschaften. Das User Edit Menu ploppt weiter unten auf und wir können zwischen 5 Optionen wählen, was wir denn gerne mit unseren credentials anstellen möchten. Ich werde mein vorhandenes Passwort löschen und den Status blank wählen. (Option Nr. 1). Danach landen wir wieder in der Übersicht unserer Benutzerkonten.

Wie man schwer erkennen kann, ist in dem Reiter Lock nun *BLANK* gesetzt und es exisitiert für dieses Konto kein Passwort mehr. Wir verlassen das User Edit Menu mit der Eingabe von „q“ und kehren zum Main Interactive Menu zurück, bei dem wir noch einmal „q“ eingeben und gefragt werden, ob wir speichern möchten. Selbstverständlich bestätigen wir und speichern unsere Änderungen mit „y“.

Geschafft!
Bei der nächsten Anmeldung mit dem bearbeiteten Konto, werden wir nicht mehr nach einem Passwort gefragt. Wir können nun ein neues Passwort setzen.

 

Temperatur und Feuchtigkeit in Telegram vom RaspberryPI

Ich möchte hier beschreiben, wie man mit einem RaspberryPI die Temperatur und Feuchtigkeitswerte sich aufs Handy per Telegram schickt.
Verraussetzung ist ein RaspberryPI 3 b+ und ein Temperatur / Feuchtigkeitssensor, ich habe folgendes verwendet:

  • DSD TECH DHT22 AM2302 Temperatur und Luftfeuchtigkeit Sensor Modul für Arduino Raspberry Pi
  • RaspberryPI 3 B+

Anleitung wie man den Sensor an den RaspberryPI ansteckt, findet man reichlich im Netz z.B. Sensor-Einbau RaspberryPI/
Da in diesem Artikel auch schon beschrieben wird, wie man mit dem Tool Adafruit die Werte Temperatur und Feuchtigkeit ausliest, werde ich hier nicht genauer darauf eingehen.
Soviel, Ich lasse das Skript per cronjob zu bestimmten Zeiten ausführen und erhalte dann die Werte via Telegram auf mein Handy weitergeleitet.

Nur wie kann man sich die Werte auf das eigene Handy per Telegram senden lassen? Das werde ich hier kurz beschreiben.

Voraussetzung:

  • Handy mit der App Telegram (Apple IOs oder Android)

Als erstes müssen wir uns in Telegram einen eigenen Bot erstellen,  den wir später per API erreichen können,

wie das funktioniert, wird auch in vielen Webseiten bereits erklärt z.B. Telegram Bot erstellen

So, da der Bot jetzt bereit ist um per API Nachrichten zu empfangen, brauchen wir einen API-Aufruf der so aussehen kann:

curl -X POST 'https://api.telegram.org/botid:token/sendMessage?chat_id=id&text='$(/usr/local/sbin/AdafruitDHT.py 2302 4)'' > /dev/null 2>&1

Ich habe die Ausgaben die auf der Shell kommen nach /dev/null geleitet, denn die brauchen wir nicht, wenn es funktioniert.

Für die ersten Tests würde ich die Ausgabe schon sichtbar lassen, um den JSON-Output mal gesehen zu haben und gegebenenfalls Fehlermeldungen zu sehen.

curl -X POST 'https://api.telegram.org/botid:token/sendMessage?chat_id=id&text='$(/usr/local/sbin/AdafruitDHT.py 2302 4)'' | python -m json.tool

{
"ok": true,
"result": {
"chat": {
"first_name": "Johannes",
"id": 400269857,
"last_name": "Carraro",
"type": "private",
"username": "xxxx"
},
"date": 1563270619, <-- UNIXTIMESTAMP
"from": {
"first_name": "Raspberry",
"id": xxxxxx,
"is_bot": true,
"username": "xxxxx"
},
"message_id": 265,
"text": "Temp=20.8C::Humidity=75.8%"
}
}

Wie wir sehen war die Ausgabe erfolgreich und wir sollten auf dem Handy im Telegram eine neue Nachricht mit der Temperatur und Feuchtigkeit bekommen haben.

Man kann sich über den RaspberryPI mit verschiedenen Sensoren deren Werte so auf das Handy per Telegram schicken lassen, eine coole Sache.
Anwendungsbeispiel: Zimmergewächshaus, Zimmertemperatur, Außentemperatur etc.

Jetzt wünsche ich viel Erfolg beim nach basteln!

Natürlich kann ich jedem unsere Trainings nahelegen rundum OpenSource-Themen

Johannes Carraro
Johannes Carraro
Senior Systems Engineer

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Team Operations als Senior Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren.

In Love with new Features!

Graylog v3.0 unter der Lupe

Teil I

Am „Tag der Liebe“ dem Valentinstag 2019 wurde Graylog Version 3 veröffentlicht. Auf den ersten Blick könnte man vermuten, dass sich nichts geändert hat. Dies stimmt aber so nicht!

Es gibt drei Neuerungen in der Open Source Variante, wobei eine elementar ist (dazu unten mehr). In der Enterprise Variante kommen zu diesen Neuerungen dann noch Views und ein Reporting hinzu. Die Enterprise Features sind jedoch für jeden bis zu einer täglichen Log-Menge von 5GB mit einer entsprechenden Lizenz (im letzten Drittel auf der Download-Page anzufordern) frei Nutzbar. In diesem Artikel werden wir uns dem neuen Sidecar, Content Pack Feature und den neuen Grok Debugger kurz anschauen.

Sidecar (Breaking Change)

Mit Graylog Version 3 wird der Sidecar in die Version 1.0.0 gehoben. Bevor wir zu der Umsetzung in Graylog kommen, muss man über die neue Nutzung des Sidecars sprechen. War es doch in den alten Versionen üblich, dass Sidecar die Shipper wie Filebeat, Winlogbeat und NXlog installiert hat, muss man sich jetzt um deren Installation selbst kümmern. Sidecar ist jetzt in der Lage, jegliche Elastic Beats oder Syslog-Daemons parametrisiert zu steuern und zu starten. Hierbei werden die einzelnen Dienste als Prozess mit Commando-Parametern durch den Sidecar aufgerufen.

Beispiel:

[root@graylog ~]# ps aux | grep filebeat
root 12836 0.0 0.6 498340 23524 ? Sl Mär13 0:27 /usr/share/filebeat/bin/filebeat -c /var/lib/graylog-sidecar/generated/filebeat-syslog-sysmodule-ssh-rpmbase.conf --path.home /usr/share/filebeat --modules system -M system.syslog.enabled=false -M system.auth.enabled=true -M system.auth.var.paths=[/var/log/secure]

Um den Filebeat wie oben gezeigt auszuführen, muss man folgende als Wert für die „Excecute Parameter“ eingetragen werden:

-c %s --path.home /usr/share/filebeat --modules system -M "system.syslog.enabled=false" -M "system.auth.enabled=true" -M "system.auth.var.paths=[/var/log/secure]"

Hierzu werden Konfigurationen für „Log Collectors“ global hinterlegt und als sogenannte „Configurations“ genutzt. Diese „Log Collectors“ können dann einen Filebeat, Auditbeat oder rSyslog mit der entsprechend generierten Konfiguration, welche auf dem Sidecar-Host unter „/var/lib/graylog-sidecar/generated/“ (z.b unter Linux) ausgerollt werden, steuern.

Hier wird der Collector für einen Auditbeat konfiguriert:

Hier ist das Template Beispiel für einen Auditbeat:

auditbeat.modules:
- module: auditd
audit_rules: |
# Things that affect identity.
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/passwd -p wra -k passwd
-a exit,always -F arch=b64 -S clock_settime -k changetime
# Unauthorized access attempts to files (unsuccessful).
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -F key=access
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -F key=access
-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -F key=access
-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -F key=access
- module: file_integrity
paths:
- /bin
- /usr/bin
- /sbin
- /usr/sbin
- /etc
- module: system
datasets:
- host # General host information, e.g. uptime, IPs
- user # User information
period: 1m
user.detect_password_changes: true
- module: system
datasets:
- process # Started and stopped processes
- socket # Opened and closed sockets
period: 1s
setup.template.enabled: false
output.logstash:
hosts: ["192.168.0.1:5044"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
path:
data: /var/lib/graylog-sidecar/collectors/auditbeat/data
logs: /var/lib/graylog-sidecar/collectors/auditbeat/log

Danach kann man diesen Collector als Konfiguration nutzen und und ebenfalls anpassen:

Unter „Collectors Administration“ werden diese dann den einzelnen Sidecars zugeordnet:

In Anbetracht der Tatsache, dass sich so auch die Module eines Filebeats und andere Dienste vielseitiger nutzen lassen, ist der Wegfall der vorher vorhanden Automatisierung beim Rollout zu verkraften. Zumal mit der neuen Umsetzung die Versionsbindung bei den Beats wegfällt.

Wichtig ist auch zu wissen, dass die alten Graylog-Sidecars mit dieser Umsetzung nicht kompatibel sind und es deswegen unter dem Punkt „Collectors (Legacy)“ zu verwalten sind. Doch der Umstieg lohnt sich!

Content Packs

Die Zeit der Frustration hat ein Ende! War es doch in der Vergangenheit so, dass man immer wieder geniale Pipeline Konstrukte gebaut hat und sich gedacht hat: Jetzt habe ich hier doch ein gutes Setup, dass würde ich gerne wieder verwenden oder mit meiner Gemeinschaft teilen! Und da war er der Stolperstein, denn Pipelines und Pipeline Rules konnten nicht in einem Content Pack verarbeitet werden. Für Frust sorgte auch, wenn man ein Content Pack herausnehmen und aktualisieren wollte oder gar versehentlich zwei mal installierte! All dies hat jetzt ein Ende!

Mit der neuen Umsetzung der Content Packs lassen sich Element wie Pipelines, Pipeline Rules, Sidecar Collectoren und Configurations sowie die gewohnten Standards verarbeiten und mit einer umfangreichen Description und Herkunftsangabe exportieren, ja sogar Variablen können verwendet werden. Aber noch nicht genug – sind diese einmal erstellt, lassen diese sich in einer Versionierung aktualisieren und neu installieren. Damit ist man nun in der Lage, sich einen validen Werkzeugkasten aufzubauen, um für jeden Einsatz das richtige Werkzeug zu haben.

Grok Debugger

Immer wieder stolperte man über die Tatsache, dass sich die Umsetzung in Java-Grok doch von der bekannten Syntax des Groks in Logstash’s jruby unterscheidet. Man was ich mir schon die Finger wund getippt habe, um Escapes einzufügen, welche die Java-Implementierung fordert. Dies hat nun ein Ende. Will man jetzt einen Grok-Pattern einzeln anlegen oder bearbeiten, wird einem die Möglichkeit geboten, mit einem Beispiel-Datensatz dieses Pattern direkt zu testen.

So das waren jetzt ein paar Kurze Worte zu bereits drei der neuen Features. Aber ich bin mir sicher das jedes einzelne hier in diesem Blog noch mal Beachtung finden wird.

Und weil Spaß macht, dürft Ihr euch auf den nächsten Blogpost freuen, in dem die erste Version des „Graylog Linux Security and System Audit“ Content Pack veröffentlicht wird.

Und wer jetzt Lust auf mehr hat der ist herzlich eingeladen eine unserer Schulungen bei NETWAYS (z.b. vom Mai 28 – Mai 29 in Nürnberg) zu besuchen oder sich bei notwendiger Hilfe an unser Sales Team zu wenden, um von den kompetenten Kollegen von NETWAYS Professional Services bei den eigenen Herausforderungen rund um Graylog oder gar Elastic Hilfe zu erfahren.

Wer übrigens oben noch nicht dem Link zum Valentinstag im ersten Satz gefolgt ist hier ein Zitat:

Liebe ist etwas völlig anderes als Verliebtheit.

Holger Kuntze, Paartherapeut
Mal sehen wie lange meine Verliebtheit hier anhält :-)…
Daniel Neuberger
Daniel Neuberger
Senior Consultant

Nach seiner Ausbildung zum Fachinformatiker für Systemintegration und Tätigkeit als Systemadministrator kam er 2012 zum Consulting. Nach nun mehr als 4 Jahren Linux und Open Source Backup Consulting zieht es ihn in die Welt des Monitorings und System Management. Seit April 2017 verstärkt er das NETWAYS Professional Services Team im Consulting rund um die Themen Elastic, Icinga und Bareos. Wenn er gerade mal nicht um anderen zu Helfen durch die Welt tingelt geht er seiner Leidenschaft für die Natur beim Biken und der Imkerei nach und kassiert dabei schon mal einen Stich.

Partition voll, Wo?

Dieses Problem kennt bestimmt jeder SysAdmin, das Monitoring meldet Partition fast vollgelaufen, gut die Partition weiß man schon mal, laut Monitoring Icinga


Das heißt aber noch nicht automatisch WO die Partition vollgelaufen ist. In Zeiten wo Storage-Systeme, SSD’s und Speichermedien immer größer werden, werden auch die Dateien immer größer und Speicherplatz nicht unendlich ist, werde ich heute mal mit ein paar einfachen Shell-Kommandos auf einem Linux-System zeigen, wie schnell man das Verzeichnis ermittelt, das vollgelaufen ist.
Tool meiner Wahl ist dafür:
du -> Disk Usage
Größe gesamt summiert
du -hs /
49G /

Möchte ich mir einen Überblick über das File-System mit allen Ordnern sehen, damit ich weiß in welchen dieser Ordner am vollsten ist:
du -hx / -d1
36M /etc
43M /root
47G /var
3,2M /tmp
1,4G /usr
300M /boot
1,9M /home
0 /media
0 /mnt
22M /opt
0 /srv
48G /

Der Schalter -h (human readable) und -d1 (nur die erste Ordner-Reihe ohne Unterverzeichnisse), Schalter -x, (nur in diesem Filesystem suchen)

Erkenntnis: Aha, im Verzeichnis /var sind sehr viele Daten, also Schlussfolgerung, in diesem Verzeichnis weiter suchen.
# du -hx /var -d1
4,0K /var/tmp
31G /var/lib
211M /var/log
16G /var/adm
119M /var/cache
8,0K /var/db
47G /var

Das ganze kann ich jetzt soweit fortführen, bis ich das gewünschte Verzeichnis gefunden habe und entscheiden, was gelöscht / ausgelagert werden kann oder welche Anwendung ich optimieren muss, um den Speicherplatz wieder freizugeben.

In meinem Fall, war es die MySQL-Datenbank, die mir hier den Platz raubt.
# du -hx /var/lib/ -d1 | grep mysql
31G /var/lib/mysql

Lösung: z.B. VM / Partition vergrößern, Datenbank auslagern auf externen Storage.

Dieses Tool kann noch mehr, am besten ausprobieren(learining by doing), die Man-Page man du verrät noch mehr.

Wir bieten auch Trainings zu vielen Themen rund um Open Source an, Schau mal rein.

Johannes Carraro
Johannes Carraro
Senior Systems Engineer

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Team Operations als Senior Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren.

Linux Kernel: Vorabrelease von Version 5.0

Der Wechsel zur Versionsnummer 5.0 beim Linux-Kernel war bereits Ende letzten Jahres erwartet worden, doch dann kam zunächst Version 4.20 heraus. Nun ist es aber soweit: die Hauptentwicklungsphase ist beendet und aus 4.21 wird 5.0. Eine besondere Bedeutung komme der Umstellung auf eine neue Hauptversion aber nicht zu, versichert Linus Torvalds.

Das Git-Repository von 5.0-rc1 umfasst zurzeit  6,5 Millionen Objekte. Das Merge Windows fällt diesmal mit knapp 11.000 Commits durchschnittlich aus. Ungefähr die Hälfte der Commits betreffen Treiber, 20 Prozent seien Updates zu Architekturen, 10 Prozent Tools und die restlichen 20 Prozent fallen auf alles mögliche wie Dokumentation, Netzwerk, Dateisysteme, Headerfiles oder dem Kernel-Core. Umfangreiche neue Updates wie die Unterstützung von AMD FreeSync, Merge des Treibers für den Raspberry Pi Touchscreen, in Ansätzen eine Unterstützung der Nvidia Turing-GPUs sowie ein neuer Console-Font für HiDPI-/Retina-Displays. Die von Google stammende Chiffre Adiantum wurde im Crypto-Stack ebenfalls aufgenommen, die besonders auf leistungsschwachen Geräten eine gute Leistung bietet und die Verschlüsselungstechnik Speck der NSA ersetzt.

In der Linux Kernel Mailing List schreibt Torvalds, dass es trotz der Major-Release-Zahl keine besonderen Features geben wird. Torvalds scherzt, als offiziellen Grund für den Wechsel: „wie man sieht habe ich alle Finger und Zehen zum Zählen verbraucht“. Deshalb wurde aus 4.21 eine 5.0. Wie es bereits 2015 der Fall war, wechselte die Version 3.19 auf 4.0. Aber Torvalds hatte kein festes Nummernschema vorgesehen und zuerst auf Kernel 4.20 gesetzt. Im November wurde bereits spekuliert, dass es auf die Version 5.0 hinauslaufen wird.