EsPresto.org

Mittwoch, 12. Mai 2010

HTTPS unter Tomcat erzwingen

Normalerweise ist mir ja die Benutzung eines HTTP-Servers(im Speziellen Apache) fuer die Behandlung von Zertifikaten und Weiterleitungen am liebsten. Dennoch kann es Momente geben, wo es doch vllt. etwas zu viel des Guten ist, eine zusaetzliche Anwendung wie den genannten HTTP-Server in der Funktion eines Proxies zusaetzlich zu starten...

[Mehr ...]

Dienstag, 29. Dezember 2009

Installation von ArchLinux auf dem HP Mini 5101

Nachdem am 24.12. um dem Weihnachtsbaum Schreibtisch ein neues Notebook lag, wartete es nur dadrauf installiert zu werden. Aber zu erst musste der eingebaute 1GB Riegel einem 2GB Riegel weichen.

Obwohl ich ein Freund von Debian/Ubuntu bin, habe ich mich für ArchLinux entschieden, das mir inzwischen sympatischer ist und zum anderen gefüht schneller ist.
Also schnell das USB Installer Image für 32-bit gezogen. Da der verbaute Atom Prozessor leider kein 64-bit kann, habe ich nach rund einem Jahr wieder ein 32-bit OS unter meinen Fingern.
Die Installation selbst verlief einwandfrei, die genaue Anleitung dazu kann man auf der Seite von ArchLinux finden.

Der nächste Schritt bestand darin, das verbaute Broadcom Modul zum laufen zu bekommen. Passenderweise gibt es im AUR das passende Paket. Also runterladen, entpacken und installieren. Nun nur noch in der /etc/rc.conf das Modul laden lassen. Bei der Gelegenheit sollte man auch noch sky2 in die Modulliste aufnehmen. Denn je nach dem welches Modul als erstes geladen werden, heißt das WLAN Interface mal eth0 oder eth1.

Nun hieß es nur noch das verbaute UMTS Modul in Betrieb zu nehmen. Dazu brauchen wir wieder zwei Pakete aus dem AUR gobi-loader und die passende Firmware. Sobald beide Pakete installiert sind, haben wir es schon fast geschafft. Wir müssen nur noch die passenden Firmware laden. Dazu genügt als root folgender Befehl: /lib/udev/gobi_loader /dev/ttyUSB0 /lib/firmware/gobi/6 Die 6 ist wichtig, da diese die Region Europa angibt. Nun sollte auch gnome-ppp bzw der Network-Manager ein neues passendes Modem finden, zumindest wenn man in der Gruppe uucp ist.

Die Webcam funktioniert auch, out of the Box, solange der User in der Gruppe video ist. Gleiches gilt für Audio. Die Laufzeit des Akkus liegt bei mir bei rund 4,5Std. Wobei ich bisher den Akku erst dreimal geladen haben. Da die Akkus ja erst nach rund 10 kompletten Ladezyklen ihre endgültige Kapazität erreichen sollen, kann sich das ja noch ändern. Aber die von HP angegeben 8 Stunden halte ich für Illusion.

Somit is das HP Mini 5101 für mich bisher das perfekte mobile Arbeitsgerät.

Mittwoch, 10. Juni 2009

[HOWTO]Joomla

Einer unserer Kunden wollte als CMS unbedingt Joomla haben. Nun hat Joomla nicht unbedingt den besten Ruf im Bereich Sicherheit, also musste fastCGI her.
Im Grunde ist die Umsetzung auch recht einfach. Unter Debian müssen nur folgende Pakete zusätzlich zu Apache2 und PHP5 installiert werden: "php-xml-parser, php5-xcache, apache2-suexec, libapache2-mod-fastcgi, libapache2-mod-fcgid, php5-cgi, apache2-mpm-prefork"
Als nächstes müssen wir die php.ini unter /etc/php5/cgi/php.ini noch ein wenig anpassen. Zum einen wird mit open_basedir der Zugriff auf das Verzeichnis wo Joomla installiert werden soll begrenzt, zB /var/www/joomla. Anschließend kann man noch den safe_mode aktivieren und mit disable_functions = system, passthru, phpinfo, show_source,exec, shell_exec, popen, proc_open gesetzt einige Funktionen von PHP deaktivieren.

In der Directory Directive des zu benutzenden Verzeichnisses muss folgender Inhalf eingefügt bzw geändert werden:
FCGIWrapper In der Directory Directive des zu benutzenden Verzeichnisses:


   FCGIWrapper /var/www/fcgi_php .php
   AddHandler fcgid-script .php
   Options Indexes FollowSymLinks MultiViews ExecCGI

/var/www/fcgi_php .php sieht wie folgt aus:


#!/bin/sh
export PHPRC="/etc/php5/cgi"
export PHP_FCGI_CHILDREN=2
export PHP_FCGI_MAX_REQUESTS=500
exec /usr/bin/php5-cgi

Der Eigentümer der PHP Dateien muss ein User mit einer UID <1000 sein.

Donnerstag, 19. März 2009

Firefox im Fullscreen Modus

Bisher hat es mich immer gestört, das Firefox im Fullscreen Modus die Adressleiste und die Tabs immer ausgeblendet hat. Über about:config kann man zum Glück das Verhalten anpassen. Der Punkt heißt: browser.fullscreen.autohide und muss auf false stehen

Donnerstag, 26. Februar 2009

Traffic Monitoring

Vieles wurde ausprobiert aber keines konnte unseren Anforderungen bisher gerecht werden. Endlich haben wir eines gefunden, welches das bietet was wir suchen um unseren Traffic aussagekräftig auswerten zu können: pmacct.

[Mehr ...]

Montag, 26. Januar 2009

Steckdosenleiste mit Webserver

Jetzt noch in meiner Hand, demnächst in einem unserer Serverschränke: die wahrscheinlich teuerste Steckdosenleiste der Welt:

Wenn ich mich nicht irre kann man Steckdosenleisten mit 8 Steckplätzen bereits für 3-5 Euro bekommen, aber bei denen muss man beim steckerziehen auch die Hände benutzen. Wenn man dieser Steckdosenleiste eine IP-Adresse zugewiesen hat, kann man jeden einzelnen Stecker per Browser „herausziehen“. Und wenn man gerne möchte, dass man der einzige bleibt der die Stecker per Browser schaltet, sichert man die Verbindung zum Steckdosenleistenwebserver mit SSL. Kostet dann insgesamt so um die 1100 Euro.|

Mit einem Webserver der kein SSL beherrscht, bekommt man diese fernsteuerbaren Steckdosenleisten bereits ab knapp 400 Euro.

Dienstag, 13. Januar 2009

puppet fuer etch aus lenny backporten

Problem: Das puppet Paket in etch Version 0.20.1-1 kann hier nicht mit Updates der /etc/shadow umgehen. (Es sollen Passwörter für Logins automatisch von puppet verteilt werden.)

Das Paket in lenny kann korrekt mit /etc/shadow Updates umgehen.

Lösung: Das Paket aus lenny (z.Zt. "testing") für etch erstellen lassen ("backport").

GCC, Header usw installieren lassen:


aptitude install build-essential dpkg-dev

Apt sources.list anpassen und deb-src für lenny (z.Zt. "testing") eintragen.

Paketquellen holen und auspacken:


mkdir puppet-backport && cd puppet-backport
apt-get -t testing source puppet

Ein Verzeichnis namens puppet-<VERSION> wird angelegt. Hier "puppet-0.24.5".
In das Verzeichnis wechseln und die Abhängigkeiten für den Bau prüfen lassen:


dpkg-checkbuilddeps

Alle fehlenden Abhängigkeiten installieren bis dpkg-checkbuilddeps nichts mehr bemängelt.

Paket bauen:


dpkg-buildpackage

Die Warnungen zur Signatur der Pakete und Beschreibungen kann ignoriert werden.

Im übergeordneten Verzeichnis liegt nun das fertige Paket welches mit dpkg -i installiert werden kann.

Freitag, 09. Januar 2009

Datum von gestern mit Solaris 10

Das Solaris 'date' kennt den Parameter *-d*


       -d, --date=STRING
              display time described by STRING, not ‘now’

nicht.

Um das Datum von Gestern trotzdem in einer Zeile zu bekommen ist perl behilflich:


perl -e 'use POSIX; print strftime("%Y-%m-%d",localtime(time-(3600*24)))'

Freitag, 25. Juli 2008

Debian etch - SMART für SATA-Festplatten aktvieren

Die Standardkonfiguration des Pakets smartmontools mit aptitude install smartmontools ist nicht direkt geeignet für SATA-Festplatten.

Folgende Einstellungen müssen vorgenommen werden:

/etc/smartd.conf

### automatische Laufwerkserkennung auskommentieren:
#DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner
# [...]
# fuer die eingebauten Laufwerke je einen Eintrag mit "-d ata" erstellen
/dev/sda -a -d ata
/dev/sdb -a -d ata

In /etc/default/smartmontools muss dann noch start_smartd=yes aktiviert werden.
Mit /etc/init.d/smartmontools wird der SMART-Daemon gestartet. In /var/log/syslog kann kontrolliert werden ob es funktioniert hat:

/var/log/syslog

Jul 25 10:08:03 barney smartd[6571]: smartd version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Jul 25 10:08:03 barney smartd[6571]: Home page is http://smartmontools.sourceforge.net/
Jul 25 10:08:03 barney smartd[6571]: Opened configuration file /etc/smartd.conf
Jul 25 10:08:03 barney smartd[6571]: Configuration file /etc/smartd.conf parsed.
Jul 25 10:08:03 barney smartd[6571]: Device: /dev/sda, opened
Jul 25 10:08:03 barney smartd[6571]: Device: /dev/sda, not found in smartd database.
Jul 25 10:08:03 barney smartd[6571]: Device: /dev/sda, is SMART capable. Adding to "monitor" list.
Jul 25 10:08:03 barney smartd[6571]: Device: /dev/sdb, opened
Jul 25 10:08:03 barney smartd[6571]: Device: /dev/sdb, not found in smartd database.
Jul 25 10:08:04 barney smartd[6571]: Device: /dev/sdb, is SMART capable. Adding to "monitor" list.
Jul 25 10:08:04 barney smartd[6571]: Monitoring 2 ATA and 0 SCSI devices
Jul 25 10:08:04 barney smartd[6573]: smartd has fork()ed into background mode. New PID=6573.
Jul 25 10:08:04 barney smartd[6573]: file /var/run/smartd.pid written containing PID 6573

Die Anleitung sollte 1:1 auch für Ubuntu-Systeme anzuwenden sein.

Mittwoch, 23. Juli 2008

awk sinnvoll auf /etc/snmp/snmpd.conf angewandt

Für die Aktivierung des neuen Monitoring-Slaves mussten alle SNMP-Daemons um die neue IP-Adresse erweitert werden.
All zu oft komm ich nicht in die Verlegenheit awk zu verwenden, aber hier schien es angebracht:

Die Zugriffsbeschränkung kann in /etc/snmp/snmpd.conf mit dem Eintrag rocommunity <COMMUNITY> <IP/SUBNET> konfiguriert werden.
Die Aufgabe lautete also "Füge den String rocommunity public 123.45.67.89/32 genau einmal hinzu wenn rocommunity public 98.76.54.32 gefunden wird. Alle anderen Zeilen unverändert übernehmen."

awk 'BEGIN { x=0 } /^rocommunity +public +123\.45\.67\.89\/32/ && x==0 { print \$0"\nrocommunity public 98.76.54.32/32"; x=x+1 } ! /^rocommunity +public +123\.45\.67\.89\/32/ { print \$0 }' /etc/snmp/snmpd.conf > /etc/snmp/snmpd.conf.new

Obige awk-Anweisung zählt in x wie oft die Ersetzung bereits aufgerufen wurde.
Sicher geht es auch mit sed. Wer weiss wie, kann das ja als Kommentar hinterlassen.

Mittwoch, 02. Juli 2008

pidgin icq: client-version, die sie nutzen ist zu alt

Nach einem Protokollupdate sind alle älteren Clients außen vor. Siehe dazu Die Client-Version, die Sie nutzen ist zu alt! (Pidgin),
Kopete funktioniert.

Dienstag, 01. Juli 2008

du: cannot access `/var/cache/apt/archives/partial': Function not implemented

Für unsere Arbeitsstationen, die über NFS booten und sich ein Rootverzeichnis teilen, werden die Cronjobs innerhalb eines chroot aufgerufen.

Dabei kam es beim Aufruf des Cronjobs /etc/cron.daily/apt zu folgenden Fehlermeldungen:


du: cannot access `/var/cache/apt/archives/partial': Function not implemented
du: cannot access `/var/cache/apt/archives/gnome-applets-data_2.22.2-0ubuntu2_all.deb': Function not implemented
du: cannot access `/var/cache/apt/archives/gnome-applets_2.22.2-0ubuntu2_i386.deb': Function not implemented
[...]

Die Lösung war einen Wrapper zu erstellen, der vor dem Aufruf der Cronjobs /proc und /sys einbindet:


#!/bin/bash
if ! mountpoint /proc >/dev/null ; then
    UMOUNT_PROC=true
    mount /proc
    mount /sys
fi

/bin/run-parts --report /etc/cron.daily

if [ "$UMOUNT_PROC" == "true" ]; then
    umount /sys
    umount /proc
fi