Nach neuesten Erkenntnissen [2] und [3] ist die NSA nicht nur an HTTPS-Verkehr, sondern auch an SSH interessiert. Es ist aber nicht so, dass SSH grundsätzlich geknackt ist, sondern dass SSH-Verkehr nur unter gewissen Umständen entziffert werden kann. Werden entsprechend gute Cipher verwendet, ist auch für die NSA eine Entschlüsselung derzeit nicht möglich. Wie bei HTTPS sollten bei SSH nur die Cipher eingestellt werden, die derzeit als sicher gelten. Das ist auch nötig, da selbst in aktuellen Betriebssystemversionen (z.B. Ubuntu 12.04 LTS und 14.04 LTS) unter anderem auch RC4 möglich ist, was inzwischen als hinreichend unsicher gilt.
Continue reading »Es kommt häufig vor, dass man beim Apache nicht gegen eine htpasswd-Datei authentifizieren möchte, sondern das gegen eine MySQL-Datenbank erledigen möchte. Unter Ubuntu muss zu diesem Zweck das Paket libaprutil1-dbd-mysql installiert werden:
sudo apt-get install libaprutil1-dbd-mysql
Danach müssen die passenden Module aktiviert werden. Der Restart kann erfolgen, wenn die Konfiguration angepasst wurde:
sudo a2enmod authn_dbdContinue reading »
Um einen möglichst hohen Performance Gewinn unter MySQL zu erzielen, sollte die Größe der Buffer Pools mindestens die Größe der Datenmenge umfassen. So funktioniert MySQL wie eine in-Memory-Datenbank. Für die Default Storage Engine InnoDB ist dafür der Parameter innodb_buffer_pool_size verantwortlich. Mit dem Tool mysqltuner kann man noch Hinweise bekommen, wie man noch weitere Parameter anpassen sollte.
Continue reading »MySQL lässt den verschlüsselten Zugriff mit SSL zu. Dazu sollte das passende Zertifikat im Ordner /etc/ssl hinterlegt werden.
Continue reading »Seit geraumer Zeit entwickele ich mit meinem Kollegen Dominik Pieper an einem JEE-Generator, mit dem es auf einfache Art und Weise möglich ist, eine CRUD-Webanwendung zu generieren. In einem kleinen Einführungsvideo stelle ich einen kleinen Einstieg in den Generator dar.
Der generierte Code ist eine JEE7-Applikation basierend auf JSF 2.0 und EJB 3.1. Alle Masken können vollständig generiert werden. Zusätzlich kann eigener Code zusätzlich hinzugefügt werden. Somit wird eine maximale Flexibilität gewährleistet. Weitere Features sind:
- Rollenbaseierte Sicherheit mit JAAS
- Lokalisierung und Internationalisierung
- Vollständige Eclipse-Integration
- Deployment in JBoss ab Version 7 bis aktuell
- Content Assist und Quick Fixes
- EMail Support
- File Upload Support
- u.v.a
Die Dateien für den XHTML-Presentation Layer werden nur generiert, wenn die dazu benötigte Dateien noch nicht vorhanden sind. Bestehende Dateien werden durch den Generator nicht überschrieben. Die Action Handler und DAOs werden gemäß dem sog. Generation Gap Pattern generiert. Die abstrakten Basisklassen werden bei jedem Generatorlauf neu generiert, während die konkreten Klassen für die Implementierung der Business Logik nur einmal bei Fehlen generiert werden. In der abstrakten Basisklasse der DAOs werden z.B. die konfigurierten Persistenzkontexte untergebracht.
Installation
Die JEE-Generatoren sind in Java implementiert, daher muss die Java Runtime Environment installiert sein.
Es gibt zwei einfache Wege, die JEE-Generatoren ans Laufen zu bringen. Eine vorkonfigurierte Eclipse-Distribution ist bereits mit allen notwendigen Plugins vorinstalliert verfügbar. Alternativ kann über eine Update Site ein Eclipse mit allen notwendigen Plugins nachinstalliert werden.
Vorkonfiguriertes Eclipse
- Download der Distribution zum passenden Betriebssystem.
- Das Archiv muss im Verzeichnis Ihrer Wahl ausgepackt werden. Windows Benutzer sollten ein Verzeichnis möglichst in der Nähe des Wurzelverzeichnisses wählen, da Windows nur komplette Pfade mit maximal 256 Zeichen akzeptiert und Eclipse eine tiefe Verzeichnisstruktur benutzt.
- Danach kann Eclipse gestartet werden und der gewünschte Workspace ausgewählt werden.
JEE-Generatoren von der Update Site installieren
Wenn Eclipse läuft:
- Im Menüpunkt Help -> Install New Software… aus der Menüleiste und Add… kann die Update Site angegeben werden. Diese Site fasst alle benötigten Komponenten und Abhängigkeiten für die JEE-Generatoren zusammen.
- Der passende JEE-Generator kann aus der Kategorie JEE-Generators ausgewählt werden und durch wiederholtes Klicken von Next und einem abschließenden Finish kann die Installation abgeschlossen werden.
- Nach einem kurzen Download und Restart des Eclipse stehen die JEE-Generatoren zum Gebrauch zur Verfügung.
Die neuesten Nachrichten aus den USA über das Mitlauschen der NSA des nahezu gesamten Internet-Verkehrs haben gezeigt, dass es heißt mit Daten sehr sensibel umzugehen. Es hat sich aber auch gezeigt, dass die bloße Verschlüsselung z.B. über HTTPS alleine nicht ausreicht, da häufig Verschlüsselungsalgorithmen (z.B. RC4) eingesetzt werden, von denen man vermutet, dass die erzeugten verschlüsselten Daten von der NSA in Echtzeit mitgelesen werden können. Insbesondere Sparkassen und Banken in Deutschland bevorzugen leider immer noch RC4. Hier kann man sich z.B. bei Benutzung des Firefox dagegen schützen, indem man hier RC4 ausschaltet. Die Banken bieten häufig genug andere, bessere Verschlüsselungsalgorithmen an, sodass die Seiten weiterhin uneingeschränkt benutzt werden können. Bei itemis habe ich mit meinem Kollegen Dominik Kupschke sämtliche verschlüsselten Dienste auf sichere Algorithmen gehärtet, sodass sie z.B. gar nicht erst RC4 anbieten. Dieser Artikel soll eine Zusammenfassung dieser Ergebnisse liefern und Aufschluss über gute Verschlüsselungsverfahren bieten. Es soll hier nicht auf deren Funktionsweise eingegangen werden, hierfür gibt es genug Quellen im Internet.
Continue reading »Unter Linux bietet sich die Möglichkeit, als Virtualisierungsplattform KVM/qemu/libvirt zu verwenden. Diese Form der Virtualisierung – hier einfach nur kurz KVM genannt – ist äußerst performant und bietet hohe Flixibilität gerade im Rahmen von Software-Entwickungsumgebungen.
Continue reading »Linux bietet auf x86-Architekturen die Möglichkeit, statt der normalerweise 4K großen Memory Pages auch 2M große Pages zu nutzen. Der Vorteil hierbei ist, dass die MMU der CPU deutlich seltener ein Address Mapping von virtuellem Speicher auf die physikalische Adresse durchführen muss. Dieser Vorgang wird auch Table Walk genannt. Er hat den Nachteil, dass der Zugriff auf diese Mapping-Tabellen am Cache vorbei durchgeführt werden muss und somit sehr langsam ist. Das Ergebnis des Table Walks landet seinerseits in einem speziellem Cache, dem sog. TLB. Es bietet sich unter Linux an, Software mit hohem Speicherverbrauch diese Huge Pages oder Huge Tables nutzen zu lassen. Gerade Server-Prozesse wie JBoss fallen da schnell ins Auge.
Continue reading »Was nützen die smartmontools?
Jede Festplatte besitzt einen eingebauten Standard, der vielleicht Jemandem beim Booten als BIOS-Meldung aufgefallen ist, aber noch nicht aktiv genutzt hat: Das S.M.A.R.T. Es ist eine Abkürzung für Self-Monitoring, Analysis and Reporting Technology. Es handelt sich dabei um die Möglichkeit, den Zustand der Festplatte zu überwachen. Hier werden Werte wie Start/Stop-Zyklen, Betriebssystunden und Fehlerzähler verwaltet. Da heutzutage jede Festplatte über diesen Standard verfügt, macht es gerade in IT-Infrastrukturen Sinn, diese Werte permanent zu überprüfen. Selbst bei Desktop-Rechnern oder Laptops macht es Sinn, von Zeit zu Zeit über diesen Standard den Zustand der Festplatte abzufragen.
Continue reading »Subversion im Alltag
Subversion wird seit acht Jahren entwickelt und hat im Februar 2004 die erste stabile Version 1.0 erreicht. In dieser Zeit wurden viele Entwickler von den Vorzügen von Subversion überzeugt. Wer CVS kennt, wird sich als Entwickler nicht wensentlich umgewöhnen müssen, da das Konzept Copy-Modify-Merge gleich geblieben ist. Administrativ hat sich allerdings Einiges geändert. Die Versionsdaten werden wie in einer Datenbank gespeichert. Die Backend-Schnittstelle ermöglicht es, verschiedene Backends zu verwenden. Der Vorteil gegenüber CVS ist hier, dass die Dateien nicht direkt manipuliert werden können, da sie nur als Binärdaten vorliegen. Bei CVS werden in einer ASCII-Datei Diffs gespeichert, sodass Manipulationen möglich sind.
Continue reading »Was haben reale Anforderungen mit Modellbau zu tun?
Auf den ersten Blick scheinen Modellbau und Anforderungsverwaltung (= Requirements Engineering) nichts miteinander zu tun zu haben, aber bei der Erstellung der Stellwerks-Software wird deutlich, wie viel Komplexität hinter diesem Thema steckt. Beim Entwurf einer Modellbahnsteuerung stand am Anfang die Idee, möglichst kostengünstig mit Standardtechnologien eine Steuerung zu entwickeln, um simpel Weichen schalten zu können. Dabei stand im Wesentlichen die Technik im Vordergrund. Nach und nach hat sich gezeigt, dass es die Software-Steuerung am Front-End in sich hat.
Continue reading »Erfahrungen mit der OpenSSL Schwachstelle unter Debian
Am 13.05.2008 kam eine Meldung über den Heise-Ticker, dass Debian durch einen Patch eine Schwachstelle bei der Schlüsselgenerierung eingepflegt hat. Das Brisante daran ist, dass dieser Patch vor nahezu zwei Jahren eingespielt wurde.
Continue reading »Ubuntu – Eine Erfolgsstory im eigenen Unternehmen
Vor einem Jahr hat unser Unternehmen eine neue IT-Infrastruktur in Betrieb genommen. Grund genug zu hinterfragen, ob die Umstellung erfolgreich war. Nachdem entschieden war, dass fünf neue Server samt weiterer Infrastruktur wie z.B. unterbrechnungsfreie Stromversorgungen, angeschafft werden sollen, kam die Frage auf, welches Betriebssystem dafür benutzt werden sollte. Die Frage ob Microsoft oder Linux genutzt werden sollte stellte sich gar nicht erst, da ausreichend Linux-Know-How zur Verfügung stand. Ferner sind die Fernwartungsmöglichkeiten unter Linux deutlich höher. Eine Sicherheitsabwägung zwischen Windows und Linux gibt es nicht, da auch unter Linux nicht minder häufig viele Patches und Updates auf Grund von Sicherheitslücken notwendig sind.
Continue reading »Modellgetriebene Serverkonfiguration
In der Regel sind die Anwendungsfälle für modellgetriebene Architekturen ist der Software-Entwicklung zu finden. Es gibt aber auch die Möglichkeit, die Konfiguration für eine ganze Server-Landschaft zu generieren. Zu diesem Zweck wird die Server-Landschaft als UML2-Modell modelliert. Dieses Modell entspricht dem Sollzustand. Um diesen in den Istzustand zu überführen, werden mittels openArchitectureWare aus dem Modell Konfigurationsdatien erzeugt. Für jeden Server entsteht so ein Verzeichnisbaum. Dieser Verzeichnisbaum wird mit scp -r
auf die Zielmaschine kopiert. Danach wird ein Deploy-Script aufgerufen, das die betroffenen Dienste über die neue Konfiguration informiert.