Vorstellung: RDLViewer

Hier möchte ich mal den RDLViewer vorstellen.
Im Prinzip macht er nichts anderes als Lokale SQL Server Reports mit integrierter Datenquelle im XML Format anzuzeigen.
Entwickelt wurde das ganze ursprünglich mal als Kostenfreie Reporting-Alternative für diverse interne Tools.
Ziel des ganzen war dabei möglichst einfach Berichtsdaten ausgeben – und aus diesen einen Bericht erstellen und anzeigen zu können.

Das ganze sieht dann z.B. mit dem Beispiel-Bericht (einer kleinen Rechnung) wie folgt aus:
1_testbericht

Read more »

0  

MarkdownEditor

Heutzutage scheint jeder seinen eigenen Markdown-Editor zu bauen..
Naja, das Projekt liegt schon länger auf meiner Platte rum – damals wusste ich noch nichts davon das es mittlerweile so viele Editoren für Markdown gibt.

Jedenfalls habe ich auch einen gebaut.
Hauptaugenmerkt dabei war:
– einfache Bedienung
– HTML-Vorschau
– Syntax Highlighting
– Halbwegs ansehnlich

Momentan ist dies eine WinForms anwendung, welche das MetroFramework nutzt.
Die HTML Vorschau wird durch MarkDig gerendert, welcher ein wirklich phänomenaler MD2HTML Konverter darstellt – und für die Eingabe und das Syntax Highlighting habe ich die FastColoredTextBox genutzt, welche ein paar RegEx´s von SlimDown nutzt.

Das ganze sieht dann so im „Bearbeitungs-Modus“ aus:
markdownEditor1
Read more »

0  

LDAP – 8. SSL und TLS in OpenLDAP

​Da wir unser LDAP nicht nur unverschlüsselt, sondern auch verschlüsselt nutzen wollen, hier eine Anleitung wie wir SSL/TLS mit OpenLDAP zum laufen bekommen.

SSL/TLS Zertifikat erstellen
Dies muss in einem Debian (Hostsystem oder Buildroot) erfolgen:

# apt-get install gnutls-bin
# certtool --generate-privkey --outfile /etc/ssl/private/ldap-ca-key.pem
# certtool --generate-self-signed --load-privkey /etc/ssl/private/ldap-ca-key.pem --outfile /etc/ssl/certs/ldap-ca-cert.pem

Die Fragen sollten nach Möglichkeit gewissenhaft beantwortet werden.
Die Schlüssel kopieren wir anschließend in die Openldap Chroot:

cp -a /etc/ssl /chroots/openldap/etc/ssl

Read more »

0  

LDAP – 7. TestSystem & Beispiele

Hier nun ein paar Beispiele für Gogs, Redmine und Dokuwiki zur verwendung von OpenLDAP als User-Backend.

​Gogs
Benutzer: gogstest (befindet sich in der Gruppe „gogs“)
Passwort: test
Einrichtung:

Authentication Type: LDAP (via BindDN)
Authentication Name: LDAP
Host: server.ip
Port: 389
Bind DN: cn=admin,dc=freifunk,dc=net
Bind Password: password
User DN: ou=users;dc=freifunk,dc=net
User Filter: (&(objectClass=posixAccount)(uid=%s)(memberof=cn=gogs,ou=groups,dc=freifunk,dc=net))
First name attribute: givenName
Surname attribute: sn
E-mail attribute: mail

Kein Enable TLS Encryption
kein Skip TLS Verify

Read more »

0  

LDAP – 6. Freifunk-Template für LDAPAdmin

Um im LDAPAdmin (http://ldapadmin.org) die Attribute der LDAP-Benutzer leichter bearbeiten zu können, bietet es sich an ein Template für die eigenen Wünsche zu erstellen.
Dieses Template erweitert das normale „User“ Template um einen Neuen Tab „Freifunk-Account“, der wiederum 3 Tabs beinhaltet: „Benutzer“, „Linux“, und „SSH Key“.
Dieses Template speichert man z.b. in den Eigenen Dateien und teilt LDAPAdmin über „Tools“ → „Options“ → Karteireiter „Templates“ mit, dass es im Verzeichnis für die Eigenen Dateien nach evtl. Vorhandenen Templates suchen soll.
Danach (und nach jeder Änderung an den Templates) muss man LDAPAdmin neu starten, da die Templates nur beim Start geladen werden.
Nach dem Neustart sollte in der „normalen User-Form“ die Erweiterten Eigenschaften unseres Freifunk-Accounts drin stehen:

LDAPAdmin-1LDAPAdmin-2LDAPAdmin-3
Read more »

0  

LDAP – 5. Einrichtung Openssh mit Public Key

Hier eine Anleitung zur Verwendung von Public/Private-Key Authentifizierung an OpenSSH über LDAP.

​OpenLDAP
Als erstes brauchen wir ein Schema im LDAP.
Dieses definiert die Objektklasse „ldapPublicKey“ welche uns erlaubt das Attribut „sshPublicKey“ nutzen zu können.
Read more »

0  

LDAP – 4. PAM mit OpenLDAP

Hier nun eine Anleitung für Debian zur Benutzer-Authentifizierung mit libpam über LDAP.

Zuerst die benötigten Debian-Pakete installieren:

apt-get install libnss-ldap libpam-ldap

Read more »

0  

LDAP – 3. OpenLDAP Suchfilter

Nach dem einrichten des LDAP-Servers können wir nun anfangen diesen zu benutzen.
Um Einträge im LDAP-Verzeichnis wieder zu finden gibt es das Programm „ldapsearch“ mit welchem man LDAP-Intern als LDAP-Client suchen kann.
Möchte man LDAP-Einträge von externen Programmen finden, fungiert dieses als LDAP-Client und man muss in diesem diverse „Suchfilter“ angeben um die gesuchten Einträge zu finden.
Read more »

0  

LDAP – 2. OpenLDAP Einrichtung

Nach dem erfolgreichen kompilieren von OpenLDAP muss dies noch eingerichtet werden.
Hierzu gehören das eintragen der unterstützten Schema, anlegen der LDAP Datenbank und einrichten des Admin Benutzers.

SLAPD-Konfiguration
In der Konfigurations-Datei /srv/openldap/etc/openldap/slapd.conf fügen wir benötigte Schema hinzu und geben die Informationen zur LDAP-DB an:

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
include         /srv/openldap/etc/openldap/schema/core.schema
include         /srv/openldap/etc/openldap/schema/misc.schema
include         /srv/openldap/etc/openldap/schema/cosine.schema
include         /srv/openldap/etc/openldap/schema/dyngroup.schema
include         /srv/openldap/etc/openldap/schema/inetorgperson.schema
include         /srv/openldap/etc/openldap/schema/collective.schema
include         /srv/openldap/etc/openldap/schema/corba.schema
include         /srv/openldap/etc/openldap/schema/duaconf.schema
include         /srv/openldap/etc/openldap/schema/java.schema
include         /srv/openldap/etc/openldap/schema/nis.schema
include         /srv/openldap/etc/openldap/schema/openldap.schema
include         /srv/openldap/etc/openldap/schema/pmi.schema
include         /srv/openldap/etc/openldap/schema/ppolicy.schema
 
pidfile         /srv/openldap/var/run/slapd.pid
argsfile        /srv/openldap/var/run/slapd.args
 
database        hdb
suffix          "dc=freifunk,dc=net"
rootdn          "cn=admin,dc=freifunk,dc=net"
rootpw          asdf
directory       /srv/openldap/data
index   objectClass     eq
# overlays
overlay memberof

Hier legen wir auch fest das unser LDAP Suffix „dc=freifunk,dc=net“ ist und der DN des Admin-Benutzers „cn=admin,dc=freifunk,dc=net“ mit dem Passwort „asdf“ ist.
Die LDAP-DB an sich wird im Format „hdb“ im Verzeichnis „/srv/openldap/data“ gespeichert.
Interessant ist hier auch der letzte Abschnitt „Overlays“, in dem Spezielle Suchfilter (wie hier das Overlay „memberof“) hinzugefügt werden können.

​Admin-User Einrichten

Am Anfang steht ein komplett leeres LDAP-Verzeichnis.
Die Zugangsdaten für den „admin“ gibt es schon aus der slapd.conf, aber der Admin muss noch im LDAP-Verzeichnis selbst angelegt werden.
Hierzu erstellen wir eine ldif Datei (/srv/openldap/init.ldif) mit folgendem Inhalt:

1
2
3
4
5
6
7
8
9
dn: dc=freifunk,dc=net
objectclass: dcObject
objectclass: organization
o: Freifunk
dc: freifunk
 
dn: cn=admin,dc=freifunk,dc=net
objectclass: organizationalRole
cn: admin

Mit ldapadd wird der Inhalt der init.ldif in das LDAP-Verzeichnis hinzugefügt:

/srv/openldap/bin/ldapadd -x -h 127.0.0.1  -D "cn=admin,dc=freifunk,dc=net" -w Passwort -f /srv/openldap/init.ldif

Als Bestätigung kommt die folgende Ausgabe:

adding new entry "dc=freifunk,dc=net"
adding new entry "cn=admin,dc=freifunk,dc=net"

Nun haben wir das Verzeichnis „dc=freifunk,dc=net“ und den Admin-Benutzer „cn=admin,dc=freifunk,dc=net“ in der LDAP-DB angelegt.

Hier die Übersicht der einzelnen Teile:

1. OpenLDAP Kompilieren
2. OpenLDAP Einrichtung
3. OpenLDAP Suchfilter
4. PAM mit LDAP
5. Einrichtung Openssh mit Public Key
6. Beispiel-Template für LDAPAdmin
7. TestSystem & Beispiele
8. SSL und TLS in OpenLDAP

0  

LDAP – 1. OpenLDAP Kompilieren

Da ich meine verwendete Software gern selbst kompiliere, habe ich dies auch mit OpenLDAP getan.
Als Grundlage dazu dient mir die Buildroot, welche unter http://chroots.frickelblog.de herunter geladen werden kann.

Buildroot
Die Buildroot wird Heruntergeladen, ausgepackt und anschließend nach /LDAPBuildroot verschoben:

1
2
3
4
5
6
7
8
9
cd /tmp
wget https://233394ff5a86724b82c2a11f9776e708605dda2f.googledrive.com/host/0B_v1YD_9RFwUVmU1QnpWc1BQOFk/Buildroot/Buildrootv80.tar.bz2
tar -xjf Buildrootv80.tar.bz2
mv Buildrootv80 /LDAPBuildroot
chroot /LDAPBuildroot
apt-get update
apt-get upgrade
apt-get install gcc g++ binutils make libc6-dev bin86 libncurses5-dev flex bison wget libxml2-dev bzip2 libbz2-dev libxslt1-dev libmcrypt4 libmcrypt-dev libmhash-dev libmhash2 libreadline5 libc-client2007e-dev libmm14 libmm-dev libtidy-dev libtidy-0.99-0 perl-modules perl-modules libgdbm-dev zlib1g-dev gcc-multilib libpcre3-dev  libcrypto++-dev libxcrypt-dev cmake libncurses5-dev libbz2-dev libreadline6-dev gawk gettext
mkdir /src

Ab hier arbeiten wir innerhalb der Buildroot weiter.
Read more »

0  
Unterstütze den Frickelblog!