Powered by Ubuntu Linux

Unsere Open Source Projekte

Hinweis: Hier finden Sie Quellcode, Dokumentation und CVS-Zugang zu einigen unserer internen Projekte. Bitte beachten Sie unseren Copyright-Hinweis.
Anonymer CVS-Zugang
Projekte
 2.1 dynip — Dynamische IP-Adressen selbst verwalten ohne DNS
 2.2 mcc — Merging C-Compiler
 2.3 nwsc — Nagios Windows Service Checker
 2.4 openpoppassd — Daemon zum Passwort-Ändern per TCP/IP-Socket
 2.5 qpsmtpd-plugins
 2.6 OpenBSD Ports

Wenn Sie Fragen oder Wünsche zu einem Projekt haben, nehmen Sie bitte mit uns Kontakt auf (per Telefon, Fax oder E-Mail).

1 Anonymer CVS-Zugang Top

Die aktuelle Version aller Projekte kann auch aus unserem anonymen CVS-Repository ausgecheckt werden per:
   cvs -d :pserver:anonymous@anoncvs.ostc.de:/public co <PROJECTNAME>
Den jeweiligen <PROJECTNAME> finden Sie im Inhaltsverzeichnis und in der Überschrift zu jedem Projekt.

2 Projekte Top

2.1 dynip — Dynamische IP-Adressen selbst verwalten ohne DNS Top

Das Veröffentlichen dynamischer IP-Adressen (z.B. von DSL-Anschlüssen) erfolgt häufig per DynDNS.org über einen DNS-Namen. Dieses Verfahren funktioniert sehr gut und ist sogar kostenlos. Es hat aber den Nachteil, dass die Namen der eigenen Rechner für die ganze Welt veröffentlicht werden und man von einer fremden Instanz abhängig ist.

Um nur für sich selbst und/oder einige Kunden ein derartiges Szenario unter eigener Kontrolle aufbauen, gibt es folgende Möglichkeit: Von einem für alle erreichbaren Apache-Webserver wird periodisch an allen dynamisch per DSL angebundenen Stellen durch einen einzigen, aber beliebigen Rechner eine Dummy-Webseite abgerufen (z.B. 1x pro Minute/Stunde die Seite dynip.html). Dieser Abruf erscheint im Accesslog des Webservers.

Die beste Lösung (die den geringsten Overhead erzeugt) wäre, nur beim Aufbau einer DSL-Verbindung (z.B. nach der täglichen Zwangstrennung) eine HTTP-Anfrage an den Webserver zu stellen. Das ist aber nur dann möglich, wenn sich dies im Gerät zum Aufbau des DSL-Zugangs konfigurieren läßt, weil nur dieses Gerät den Zeitpunkt eines Verbindungsaufbaus erkennen kann.

Will man sicherstellen, dass nur Berechtigte Einträge dieser Art im Accesslog des Webserver erzeugen können, gestattet man den Abruf dieser Seite per htaccess nur bei Kenntnis eines Namen + Passwort.

Es ist völlig egal, welcher Rechner an den dynamisch angebundenen Stellen den Abruf der Webseite macht (eine Möglichkeit wäre ein Linux-Rechner, der wget über einen crontab-Job ausführt).

Auf dem Webserver läuft periodisch ein PHP-, Perl- oder Shell-Skript (z.B. 1x pro Minute oder 1x pro Stunde), das die Accesslog-Datei liest (es genügt, ein Stück vom Ende der Datei zu lesen), die obigen Abrufe herausfiltert und die IP-Adressen + einen geeigneten Namen für die Abrufstelle in einer Tabelle ablegt (fetch-dsl-ip.sh, fetch-dsl-ip.php). Dies kann z.B. in Form einer HTML-Seite dsl-ip.html in folgendem Format erfolgen (die Angabe von Datum und Uhrzeit ist sinnvoll, um das Alter der Information erkennen zu können):

   20050913 14:42:34 212.114.236.193 SITE_A
   20050913 14:41:59 80.123.231.75   SITE_B
   20050913 14:42:34 182.45.120.1    SITE_C
   ...      ...      ...             ...
Per Abruf dieser HTML-Seite kann die IP der gewünschten Gegenstelle dann einfach ermittelt werden (get-dsl-ip.sh). Auch der Abruf dieser Seite sollte per htaccess nur Berechtigten gestattet werden.

Ein Artikel von uns dazu ist in der Zeitschrift "freeX 4/2005" erschienen, seit Mitte August 2005 ist er auch hier zu finden!

2.2 mcc — Merging C-Compiler Top

Stellt einen "Wrapper" um C/C++-Compiler dar, mit dem ohne IDE nur mit Hilfe eines normalen Texteditors Syntaxfehler interaktiv und iterativ aus C/C++-Quellcode entfernt werden können.

Ein uraltes Projekt (1984 von Brent Callaghan), das einer von uns mal an der Uni "verschlimmbessert" und jetzt wiederentdeckt und nochmal überarbeitet hat. Im Internet ist es leider nicht mehr zu finden, daher bieten wir es hier in einer "modernisierten" Form an (ANSI-Funktionsköpfe, ordentlich dokumentiert, …). Dieses Programm kann frei verwendet und verteilt werden, es darf hingegen nicht verkauft werden.

Details zu den Möglichkeiten von mcc finden Sie hier.

2.3 nwsc — Nagios Windows Service Checker Top

This project was inspired by nagios-wsc-v0.8. But since that was written as a .NET-Webservice it wasn't really what we wanted. So we wrote a pure Perl Windows Service nwsc (nagios windows service checker), which does more or less the same: It enables you to check as many Windows client machines through Nagios as you like without installing any software on these machines.

You only have to install the Windows Service nwsc on ONE Windows host (master), which can reach all the other Windows hosts (clients) to be checked. nwsc uses WMI (Windows Management Instrumentation) to retrieve information from the other Windows hosts. Possible checks are:

  • Check for any Windows services
  • Check for any Win32_Class
  • Check for uptime
  • Check for disk space
  • Check for … (as you like, just ask us to implement it ;-)
The retrieved information is interpreted by a Nagios Plugin check_nwsc, which has to be integrated in your Nagios Server.
                                                      Remote (Monitored) Hosts
                                                         +–—–—–—–—–—+
   +–—–—–—–—–—–—–—–—–—–+                   +-->| Windows Slave |
   |  +–—–—–+   +–—–—–—-+  | HTTP +–—–—+ WMI |   +–—–—–—–—–—+
   |  | Nagios |-->|check_nwsc|–—–—-->| NWSC |–—–+
   |  +–—–—–+   +–—–—–—-+  |      +–—–—+     +--> ...
   +–—–—–—–—–—–—–—–—–—–+       Windows     +--> ...
           Monitoring Host               Master      +--> ...
This project is licensed under the GPL V2.

If anybody uses this service, Feedback would be gentle!

2.4 openpoppassd — Daemon zum Passwort-Ändern per TCP/IP-Socket Top

Ein Daemon, der es beliebigen Anwendungen ermöglicht, Passworte über einen lokalen TCP/IP-Socket (127.0.0.1:106) zu ändern. Insbesondere dann hilfreich, wenn eine Web-Anwendung in einer Change-Root-Umgebung läuft.

Entwickelt auf und für OpenBSD 4.1. Verwendet Privilege Separation, um den Programmteil zur Kommunikation mit der Anwendung (meist ein Web-Client [z.B. das passwd-Modul aus dem sork-Projekt des Horde-Frameworks]) mit normalen Benutzer-Rechten vom Programmteil für die Passwortänderung (mit root-Recht) zu trennen.

Vergleiche OpenNTPD.

(Falls jemand diesen Dienst unter einem anderen UNIX [Linux, FreeBSD, NetBSD etc.] verwendet, wäre ein Feedback schön!)

2.5 qpsmtpd-plugins Top

Currently there are 3 plugins for the qpsmtpd mail server:
  • distribution_frame: Plugin to copy and/or redirect email due to recipient, sender and header information based on a distribution list. Designed to be a "distribution frame" for emails passing the qpsmtpd. It only works on the envelope and therefore does not change any user visible headers or the email content itself. 21.3.2013: Now macros are allowed in rule definitions.

  • attachment_inspection: Plugin to extract the attachments of emails passing the qpsmtpd. It stores all attachments of an email together as a TGZ-archive in the file system, so they can be reviewed by a supervisor. The original email stays untouched. Main purpose is to make it possible to detect afterwards whether secret information has left the company.

  • attachment_extraction: Plugin to extract one or more attachments of emails passing the qpsmtpd. It stores attachments as files in a given directory so that they can be processed later by any program or user. The original email stays untouched. Main purpose is to automize processing of email attachments. The extract decision bases on email header data like from, to, subject and attachment name, not on email envelope data.
Get it with
   cvs -d :pserver:anonymous@anoncvs.ostc.de:/public co qpsmtpd-plugins

2.6 OpenBSD Ports Top

Ports für OpenBSD: Ports not in the official portstree may be checked out by
   cvs -d :pserver:anonymous@anoncvs.ostc.de:/public co obsdports