Kategorien
Randnotiz Schulung

Windows: Active Directory Export in LDAP

Ein Export von Daten aus dem Microsoft Active Directory im ldif Format ist in der realen Welt eigentlich unbrauchbar. Die Bezeichnung vieler Organizational Units (OU) sind nicht Standardkonform. Für den Import der Daten in ein LDAP Verzeichnis fehlen auch Angaben.

Für die Textmanipulation eignet sich ein Bash Script hervorragend. Was aber, wenn man dem User keinen Einblick gewähren möchte und die zu importierende Datei mehrere zehntausend Datensätze enthält?

Das Standard C – ANSI C – bietet eine Fülle an Werkzeugen zur Text- und Dateimanipulation. In dem Listing (Link) sind mehrere verschiedene Möglichkeiten verwendet.

Aufgabe war, eine Datei aus dem AD im ldif Format einzulesen, das Schema zu verändern und die OU sAMAAccountName, organizaltionalPerson und weitere zu ersetzen, eine gidnumber, member sowie ein userpassword einzusetzen. Das Passwort muss LDAP konform als salted SHA, mehr oder weniger, zufällig generiert werden.

Spielen wir in den nächsten Clubtreffen ein bisschen an den Befehlen die Zeichenweise (fgetc) oder Wortweise (fgets) Strings verarbeiten. Auch habe ich verschiedene Varianten des Filehandlings programmiert.

Kategorien
Randnotiz

MS SQL: für Linux

Meine erste Installation, bei der das Download länger dauerte als denn das Installieren. „Eben mal“ einen Docker Container von Microsoft herunter geladen und dieser läuft tatsächlich SOFORT. (Link). Alles in weniger als 5 Minuten!

Microsoft Server
Microsoft Server CLI Abfrage

Für Entwicklung ganz OK – wie performant der Server im Docker Container, in einer virtuellen LINUX Instanz läuft, bleibt abzuwarten.

Microsoft Server
Microsoft Server ps Abfrage

Ich bin auf Eure Erfahrungen gespannt. Lassen wir uns den Port 1433 mal mit ein paar Massendaten stressen.

Kategorien
Randnotiz

COBOL: Shared Library

Nach dem Download der Source von OpenCobol und dem Nachladen notwendiger Development Librarys, funktioniert die mitgelieferte MAKE Konfiguration ganz passabel.

./configure, make, make check, make test und make install laufen meisst fehlerfrei durch. Trotzdem erhält man nach dem ersten kompilieren und dem Start seiner Anwendung den Fehler „error while loading shared libraries: libcob.so.4“ o.ä.

Das liegt an fehlender Path Bekanntgabe. Im Verzeichnis /etc/ld.so.conf.d werden die Pfade zu diversen Libraries bekannt gegeben. In der MAKE Konfiguration ist vorgesehen, die Programm Bibliotheken im Verzeichniss /usr/local/lib abzulegen. Damit sie auch gefunden werden, ist also eine .conf anzulegen mit dem Pfad als Inhalt. Nach einem ldconfig ist der Pfad bekannt und cobc sowie das kompilierte Programm funktionieren einwandfrei.

Das Verhalten unterscheidet sich unter den Distributionen (Debian, RedHat, SuSe) und sogar von Release zu Release.

Kategorien
Randnotiz Schulung

C: SSHA1 Code mit RND SALT

Generierung von Passwörtern z.B.

SALT="$(openssl rand 3)"
SHA1="$(printf "%s%s" "$PASSWORD" "$SALT" | openssl dgst -binary -sha1)"
printf "{SSHA}%s\n" "$(printf "%s%s" "$SHA1" "$SALT" | base64)"

Mit den 3 Zufallszahlen habe ich mir keinen Gefallen getan. Mit dem zusammensetzen des Strings mit printf bewegen wir uns um lesbaren Bereich des ASCII Code!

Mit der Zeile 2 erhalten wir einen 20 Byte SHA1 Code. Wenn wir jetzt in Zeile 3 das SALT anfügen und vorher die Zufallszahlen 0 8 erzeugt wurden, bedeutet das „Backspace“ womit der SHA1 Code zerstört ist.

Es ist darauf zu achen, das wir im lesbaren Bereich bleiben oder Ziffern verwenden. Hiermit funktioniert eine Massengenerierung von LDAP SSHA1 Passwörtern

#!/usr/bin/perl
#
use Digest::SHA1;
use MIME::Base64;
my @chars = ("A".."Z", "a".."z");
my $salt;
$salt .= $chars[rand @chars] for 1..3;
$ctx = Digest::SHA1->new;
$ctx->add(@ARGV);
$ctx->add($salt);
$hashedPasswd = '{SSHA}' . encode_base64($ctx->digest . $salt);
print $hashedPasswd;
Kategorien
Randnotiz Schulung

Windows: Favoritenspeicher RDP Client

Nicht immer von Vorteil, wenn die letzten erfolgreichen Verbindungen des RDP Clients dauerhaft gespeichert werden.

Die Verbindungen und der angemeldete Nutzer lassen sich in der regedit löschen. Einfach aber mit einem kleinen Batchfile:

@echo off
reg delete „HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default“ /va /f
reg delete „HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers“ /f
reg add „HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers“