Mittwoch, 9. August 2006

TECH_ Installierte Schriftarten nicht verfügbar

Unter Windows XP ergab sich das Problem, dass die nachinstallierten Schriftarten (also praktisch alle außer Arial, Times und Courier) von Windows nicht mehr angeboten wurden oder etwa nur in Fett+Kursiv. Wechselte ich nun in den Fonts-Ordner (c:\Windows\Fonts), wurden alle installierten Schriftarten aufgelistet. Bei einem Doppelklick wurde auch der Fontviewer gestartet und zeigte die Schriftart korrekt an.

Ich markierte alle Fonts und zog sie mit der linken Maustaste auf einen neu angelegten Backup-Ordner. Auch wenn dieser auf einer anderen Festplatte liegt, werden die Schriftarten verschoben. Die Systemfonts wie Arial und Times New Roman werden automatisch vom Verschieben ausgenommen.
Nun installierte ich sämtliche Fonts wieder, indem ich auf Datei >> Schriftarten installieren... im Fonts-Ordner ging. Eventuell kommt der Hinweis, dass Arial Bold nicht installiert werden konnte, da sie bereits vorhanden ist. Anschließend werden die Fonts wieder erkannt.

http://members.fortunecity.de/franzboska/faq/tip0189.htm gibt den Tipp, nach dem Löschen/Verschieben aller Fonts diese auch noch in der Registry zu entfernen - allerdings machte das Windows für mich, so dass mich dies nicht weiterbrachte.

Laut http://support.microsoft.com/kb/310307/en-us sind TrueType-Schriften in Word & Co nicht verfügbar, wenn der Default-Druckertreiber eben solche nicht unterstützt. Dies war aber nicht der Fall.

Dann, endlich: Aus einem nicht näher beschrieben Grund *hüstel* habe ich meine Mutter angewiesen, die Rechte einer Datei in c:\Windows\System32 zu ändern. Nur dumm, dass sie nicht die Datei in der Mache hatte, sondern den Odner c:\windows, und dort brav sämtlichen Benutzern die "Lesen, Ausführen"-Rechte entzogen hatte. Und so etwas kommt dabei raus. Kaum setzte ich die Rechte wieder korrekt für den Windowsordner, klappte das auch mit den Schriften. Junge, Junge, das nächste mal mache ich kritische Operationen doch lieber wieder selbst...

TECH_ Automatisches Windowsupdate manuell anstoßen

Ich arbeite an meinem Windows XP nur als eingeschränkter Benutzer, daher lasse ich die Updates im Hintergrund herunterladen und beim Herunterfahren des Rechners installieren.

Allerdings bemerkte ich, dass neu erschienene Updates erst bis zu 9 Tage später installiert wurden. Da erinnerte ich mich an ein Tool, das die c't mal geschrieben hat, um das Herunterladen zu beschleunigen. Schon zwei Mal habe ich seitdem versucht mit Google und heise.de dieses Tool zu finden, und habe es nicht geschafft.
Als ich aber heute erneut auf heise security über kritische Updates las, welche sofort eingespielt werden sollten, startete ich einen erneuten Anlauf und wurde unter http://www.heise.de/ct/ftp/result.xhtml?url=/ct/ftp/03/21/118/default.shtml fündig. Der Link am Ende der Beschreibung führte mich zu dem Hotline-Praxis-Tipp http://www.heise.de/ct/faq/hotline/04/21/05.shtml . Für die aktuelle Update-Version v5 für Windows XP ist das kleine Tool nicht mehr nötig, sondern mit Bordmitteln kann direkt der Vorgang angestoßen werden: wuauclt.exe /detectnow. Das probierte ich gleich mal aus, ich erhielt ... keine Meldung. Also warf ich einen Blick in das Logfile unter c:\Windows\WindowsUpdate.log, doch da fanden sich nur die Meldungen, dass der Dienst bei Systemstart erfolgreich gestartet wurde. Also versuchte ich es erneut, diesmal aber mit Admin-Rechten - das gab zwar nach wie vor keine Rückmeldung auf der Konsole, aber das Logfile verzeichnete jetzt etwas Interessantes:
2006-08-09 00:14:26 3776 ecc Misc =========== Logging initialized (build: 5.8.0.2469, tz: +0200) ===========
2006-08-09 00:14:26 3776 ecc Misc = Process: C:\WINDOWS\system32\wuauclt.exe
2006-08-09 00:14:26 3776 ecc AUClnt Launched Client UI process
2006-08-09 00:14:26 3776 ecc AUClnt FATAL: Failed to get notification handle, hr=80070057
2006-08-09 00:14:37 1924 1fc AU Triggering AU detection through DetectNow API
2006-08-09 00:14:37 1924 360 AU #############
2006-08-09 00:14:37 1924 360 AU ## START ## AU: Search for updates
2006-08-09 00:14:37 1924 360 AU #########
Prima, die Suche wurde offensichtlich auf Grund meiner Eingabe gestartet. Und darunter findet sich dann auch die Meldung über gefundene Updates
2006-08-09 00:15:15 1924 414 Agent * Added update {E7D92EB3-4077-4F40-911C-8108EECB5D8C}.100 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {A51577E7-51E1-4AB1-BCD9-6106BEFAC3E8}.102 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {3DEBEA92-4512-4FCC-A423-5A6007CADEB5}.103 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {486A2F5E-3ACF-4B15-8776-4E47E07880E7}.101 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {C8F8E983-CE29-4854-B00A-4B25EC26B60F}.101 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {0CFFD50B-C7A8-44DC-9A35-78ADF3A2B30B}.101 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {7BFBB4AB-9E7D-4DB0-AC1B-E02468044CD4}.103 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {4A6505DB-DA98-4CCF-A9A2-75BE74A992B8}.101 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {B986ECE8-FC97-4EC0-B77F-6B2EF3E558E5}.103 to search result
2006-08-09 00:15:15 1924 414 Agent * Added update {F928C63F-23D0-405D-9A77-F584DF18826F}.100 to search result
2006-08-09 00:15:15 1924 414 Agent * Found 10 updates and 12 categories in search

Und so klappt es also. Prima. Gleich mal hier notieren, damit ich das auch wiederfinde...

Montag, 7. August 2006

TECH_ Grandstream BT101 bei sipgate

Ein paar "Erfahrungen" zum Grandstream Budge Tone-101 an einem sipgate VoIP-Anschluss. Die Angaben beziehen sich auf die Firmware-Version 1.0.5.16, eine neuere wird von sipgate selbst nicht ausgeliefert. Die aktuelleren Versionen 1.0.6 und 1.0.8 werden offiziell nicht unterstützt, andere haben diese auch nur mit gemischten Ergebnissen zum "Laufen" gebracht. Teilweise war das Telefon nach manuellem Flashen auch tot, so dass ich lieber die Finger davon lasse.

Portforwarding
Das Portforwarding am Router musste bei mir deaktiviert werden, da ansonsten keine Verbindung zum sipgate-Server aufgebaut werden konnte. Dabei ist die Einstellungen "NAT Traversal" unerheblich, allein bei Verwendung des STUN-Servers kommt es vor, dass zeitweise keine Telefonate möglich waren, da dieser nicht erreichbar war.

Codecs
Unabhängig von den von sipgate angegebenen unterstützten Codecs testete ich sämtlich im Grandstream verfügbaren der Reihe nach durch. Dabei stellte ich für sämtliche Alternativen jeweils den zu testenden Codec ein, wodurch das automatische Fallback verhindert wurde. Wird ein Codec nicht unterstützt, zeigt das Telefon einen Error 488 an bei dem Versuch, ein Telefonat (etwa zur Mailbox) zu führen.
G723 Error 488
G729 sehr dumpf und leise, Tastentöne werden nicht erkannt, leichte Knackser
PCMU Tastentöne werden nicht erkannt, selten Knackser
PCMA Tastentöne werden nur schlecht erkennt, leichte Knackser
iLBC Error 488
G722 Error 488
G726-32 leichte Knackser und Aussetzer, aber gute Erkennung von Tastentönen
G728 Error 488

Die "Qualitätsreihenfolge" ist also G726 -> PCMA -> PCMU -> G729. Ich kann mich noch erinnern, dass es eine Zeit ohne Knackser gab. Versuche mit QoS im Router auf Geräte/MAC-Basis, Portbasis am Switch oder UDP-Port-Basis brachten keine Veränderung/Besserung. Eventuell liegt auch ein Problem bei meinem Provider QSC vor...

Netzwerk
Offiziell unterstützt der Netzwerkanschluss nur 10 MBit und verbindet auch nur mit dieser Geschindigkeit. Interessanterweise leite ich 2x100 Mbit durch ein Kabel, wodurch kein 10 Mbit möglich ist - auch hier funktioniert der Anschluss!
Weiterhin kann ich keine feste IP-Adresse vergeben, da das Gerät zwar eine Netzwerkverbindung herstellt, allerdings nicht über Netzwerk ansprechbar ist und auch nach aussen keine Verbindung aufbaut. Daher muss ich konsequenterweise DHCP aktiviert lassen.

MESSAGE-Taste
Die Mailbox-Taste auf dem Telefon ist bei der Firmwareversion 1.0.5.16 ausser Funktion. Eine Bestätigung darüber habe ich auch vom sipgate-Support bekommen.

Donnerstag, 22. Juni 2006

TECH_ Updating static dyndns.org addresses with fli4l OPT_DYNDNS

How to update static addresses? If there are is no need for an additional dynamic address, simply change the update URL from
provider_url="/nic/update?system=dyndns&hostname=${host}&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG&offline=NO&myip=${ip}"
to
provider_url="/nic/update?system=static&hostname=${host}&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG&offline=NO&myip=${ip}"
in file /PATH/TO/fli4l/DIR/opt/etc/dyndns/provider.DYNDNS. Otherwise, read the documentation about how to create a new provider entry and name it something like DYNDNS_STATIC.

How to update multiple addresses of one account? Change
DYNDNS_%_HOSTNAME OPT_DYNDNS DYNDNS_N FQDN
to
DYNDNS_%_HOSTNAME OPT_DYNDNS DYNDNS_N NOTEMPTY
in the file /PATH/TO/fli4l/DIR/check/dyndns.txt. This disables the check for a fully qualified domain name, and you can enter multiple addresses separated by a comma in the configuration.

Samstag, 17. Juni 2006

TECH_ Class-Dateien unter Windows per Doppelklick ausführen

Standardmäßig werden .class-Dateien leider nicht bei Doppelklick ausgeführt. Mit Hilfe einer kleinen Batchdatei kann man dies aber schaffen. Allerdings können keine .class-Dateien ausgeführt werden, welche ein Package verwenden. Für diverse Demoanwendungen reicht es aber.

@echo off
start javaw -classpath %~sdp1 %~n1 &

TECH_ .DS_STORE-Dateien bei Netzlaufwerken deaktivieren

Der folgende Befehl deaktiviert .DS_STORE-Dateien auf Netzlaufwerken unter Mac OS X. Damit wird aber auch jegliche Finder-Einstellung, welche für ein Netzlaufwerk vorgenommen wurde (also auch die Darstellung als Liste oder Spalten), nicht mehr gespeichert.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Donnerstag, 8. Juni 2006

TECH_ Installierte Pakete unter Debian anzeigen

#> dpgk -l

Sonntag, 21. Mai 2006

HOWTO_ SSL-Verschlüsselung mit dem Apache httpd

  1. Schlüssel erstellen

    In einem Verzeichnis der Wahl erstellt man mit
    openssl req -new > new.cert.csr
    einen privaten Schlüssel und die Zertifikationsanforderung. Der Common Name (CM) muss dabei dem hostname des Servers entsprechen, etwa fs-design.homelinux.org.
  2. Passwort entfernen

    Mittels
    openssl rsa -in privkey.pem -out new.cert.key
    entfernt man aus dem privaten Schlüssel das Passwort.
  3. Zertifikat für Schlüssel erstellen

    openssl x509 -in new.cert.csr -out new.cert.crt -req -signkey new.cert.key -days 365
    erstellt ein Zertifikat, das 365 Tage, also ein Jahr lang, gültig ist.
  4. Zertifikat zum Apache kopieren

    mkdir /etc/apache2/conf/ssl.key
    mkdir /etc/apache2/conf/ssl.crt
    cp new.cert.key /etc/apache2/conf/ssl.key/server.key
    cp new.cert.crt /etc/apache2/conf/ssl.crt/server.crt
  5. mod_ssl konfigurieren

    Die Datei /etc/apache2/conf/ssl.conf mit dem Editor der Wahl öffnen und die Zeilen mit <IfDefine> und </IfDefine> auskommentieren. Den VirtualHost auf * setzen. Eine leere Datei für den Sessioncache anlegen mit touch /var/log/apache2/ssl_scache.
  6. Server neu starten

    Den httpd mit apache2ctl graceful neu starten, nun sollte er unter dem Port 443 SSL-verschlüsselt erreichbar sein.

HOWTO_ Apache2 mit PHP4 und GD kompilieren

Aus alten Zeiten stammt noch diese Anleitung, die ich bereits mehrmals erfolgreich ausgeführt habe. Inzwischen ist aber mein Server komplett per apt eingerichtet worden, ich habe keinen Compiler mehr benötigt.
  1. Apache2

    Anleitung laut http://www.php.net/manual/en/install.apache2.php.
    Apache httpd herunterladen und entpacken.
    #> cd apache2
    #> ./configure \
    --prefix=/etc/apache2/
    --enable-so
    #> make && make install
    In der /etc/apache2/conf/httpd.conf für User und Group einen existierenden Benutzer und dessen Gruppe, zb nobody und nogroup eintragen.
  2. PHP4 mit GD-Library

    Freetype 2, und zlib herunterladen, kompilieren und installieren ohne besondere Parameter.
    libpng herunterladen, aus scripts die makefile.linux nach ../makefile kopieren, und mit make && make install kompilieren und installieren.
    jpeg-6b downloaden und mit make kompilieren.
    #> mkdir /usr/local/man/man1
    #> cp libjpeg.* /usr/lib/
    #> cp j*.h /usr/local/
    #> make install
    GD Graphics Library herunterladen und kompilieren.
    #> cp gd.h /usr/local/lib
    #> make install
    PHP4 herunterladen und entpacken.
    #> ./configure \
    --prefix=/etc/php4 \
    --with-apx2=/etc/apache2/bin/apxs \
    --with-zlib \
    --enable-bcmath \
    --with-bz2 \
    --enable-exif \
    --enable-ftp \
    --with-gd=/usr/local/lib \
    --with-jpeg-dir

TECH_ Tastatureinstellungen eines iBooks unter Linux

Alle Keycodes lassen sich mit xmodmap -phe ermitteln, xev zeigt einen Keycode an.
KEY    Apple Execute CTRL ALT    F11 F10 F9 F8 F7 F6 F5  F4  F3  F2     F1
--------------------------------------------------------------------------
FN     116   117     109  Mouse3 95  76  75 74 73 72 71  70  69  Mouse2 67
normal 115   108      37  64     95  76  75 74 -- -- 176 174 160 212    101
Um die Apfel-Taste als Alt-GR zu verwenden, muss in der Datei /etc/X11/Xmodmap noch keycode 115 = Mode_switch eingetragen werden.

TECH_ Java unter Linux PPC

Es gibt zwei Möglichkeiten, Java unter einem PowerPC-Linux laufen zu lassen.
Die erste ist die offene Implementierung von Blackdown.org. Dazu trägt man einen der blackdown-mirror in der /etc/apt/sources.list ein
deb <BLACKDOWN-MIRROR>/path/to/debian/ stable nonfree main
und installiert dann Java mit apt-get install j2re1.3 j2se-common.
Die andere Möglichkeit besteht in der Installation der Java-Implementierung von IBM. Man erstellt sich einen US-Account für IBM und lädt dann das IBM Development Kit for 32Bit iSeries/pSeries herunter. Das RPM-Paket wandelt man mittels alien <RPM-Paket> in einen Debian-Installer um und installiert dieses anschließend.
#> sudo dpkg --install <DEB-Paket>
Es landet in /opt/IBMJava2.

TECH_ Debian Sarge auf dem iBook installieren

Mac OS X von DVD installieren, im Disk-Auswahlmenü aus der weissen Menüleiste das Apple Disk Utility starten. Auf der Festplatte eine HFS+ Partition mit der Größe aller späteren Linux-Laufwerke anlegen (für Root, Daten und Swap).
Das Debian-Setup von CD starten, bis zur Partitionierung die normale Installation verwenden. Dort die im ersten Schritt angelegte HFS+ Partition löschen. Im freien Bereich eine mindestens 800 KByte große bootstrap-Partition anlegen, anschließen Root, Daten und Swap.
Nach der erfolgreichen Installation einen Reboot durchführen, im Bootloader l für Linux auswählen.

TECH_ ProFTPd mit TLS-Verschlüsselung

Für die Verschlüsselung sind bereits existierende TLS-Zertifikate und Schlüssel Voraussetzung. Für den FTP-Server verwende ich die selben wie für den Apache Webserver.
Datei /etc/proftpd.conf editieren:
PassivePorts		49152 49160	# Portrange for passive mode
MaxClients		2
MaxClientsPerHost	1
IdentLookups 		Off		# Blocked port 113 slows down
<IfModule mod_tls.c>
    TLSEngine		on
    TLSLog		/var/log/proftpd.log
    TLSProtocol		TLSv1		# no support for SSLv2
    TLSRequired		off		# "on" disables unencrypted connections
    TLSVerifyClient	off		# no verification necessary
    # Using certificates of Apache webserver
    TLSRSACertificateFile /etc/apache2/conf/ssl.crt/server.crt
    TLSRSACertificateKeyFile /etc/apache2/conf/ssl.key/server.key
    AllowForeignAddress on		# otherwise only localhost is accepted
<IfModule>
Im Router nicht vergessen, die Ports für die passiven Verbindungen zu weiterzuleiten.

TECH_ ProFTPd auf einen anderen Port legen

Da die Porteinstellungen in der Configdatei nur für die von mir nicht benutzte "standalone" Version gelten, sind ein paar mehr Änderungen nötig.
Als erstes muss in /etc/services ein neuer Dienst mit einem Port größer 1024 erstellt werden, ich wählte 4021:
ftpd 4021/tcp # proFTPd
Der inetd darf jetzt diesen neuen Service verwalten. Dazu wird ein neuer Eintrag in der /etc/inetd.conf erstellt:
#:STANDARD: These are standard services
ftpd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd
Nach man per ps aux | grep inetd die PID des inetd herausbekommen hat, startet man diesen neu:
#> kill -HUP <PID>
Die Überprüfung des Ports sollte jetzt den ProFTPd aktivieren:
#> fuser -n tcp 4021
4021/tcp 30956

TECH_ Terminal unter Mac OS X 10.3 mit Umlauten

Aus welchen Gründen auch immer weigerte sich Terminal unter Mac OS X 10.3, deutsche Umlaute darzustellen. In ~/.inputrc musste ich erst die Optionen
set meta-flag on
set convert-meta off
set output-meta on
einfügen. Zusätzlich stellte ich unter Window Settings -> Display -> Character Encoding noch Western (ISO Latin 9) ein.

TECH_ Samba via inetd starten

Zwar klingt es auf den ersten Blick verlockend, Samba nur dann laufen zu lassen, wenn es wirklich benötigt wird, aber das funktioniert nicht wie gewünscht. In meinem Fall wurden immer wieder neue Instanzen gestartet, bis der Speicher gerammelt voll war und killall mehrere Minuten benötigt hat, um die mehreren hundert Server wieder abzuschießen. Trotzdem gibt es hier eine kleine Anleitung.
Erst einmal muss Samba aus dem Autostart fliegen, das erledigt der Aufruf update-rc.d -f samba remove. In der Datei /etc/inetd.conf müssen die Einträge von netbios-ssn und netbios-ns editiert werden:
netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd -l /var/log/log.smb
netbios-ns  dgram  udp wait   root /usr/sbin/nmbd      -s /etc/smb.conf
Mittels ps aux | grep inetd die PID vom inetd herausbekommen und denselben neu starten mit kill -HUP <PID>.
Ein Zugriff, zB von Windows mittels NET USE \\<SERVER> sollte einen smbd-Prozess erzeugen. Diesen kann man per ps aux | grep smbd anzeigen lassen.

TECH_ Samba 3.0 installieren

Samba installieren und einen Benutzer mit gültigem Systemaccount hinzufügen.
#> apt-get install samba samba-common
#> /usr/bin/smbpasswd -a <USERNAME>
Die Datei /etc/samba/smb.conf mit dem Editor der Wahl öffnen und in den globalen Optionen die folgenden Einstellungen auskommentieren, ändern oder hinzufügen:
# Maps unknown users to the guest account (needed for browsing)
map to guest = Bad User

guest account = nobody
create mask = 0755
directory mask = 0755

# necessary for german umlauts
unix charset = iso-8859-15

TECH_ Linux-Bootpartition auf eine andere Festplatte übertragen

Da natürlich nicht von der zu übertragenden Partition gebootet werden darf, nehme ich eine Linux Live-CD, zB knoppizilin aus der c't.
Als Erstes wird nun mittels partimage die Quellpartition als Image gesichert. Anschließend spielt man das Image auf die ungemountete Zielpartition. Diese wird nun gemountet, zB nach /mnt/hdd1. Den Bootmanager GRUB installiert man mittels
#> grub-install --root-directory=/mnt/hdd1 --no-floppy --recheck /dev/hdd
auf der neuen Festplatte. Nun kann von der neuen Festplatte gebootet werden.

TECH_ Sensordaten des Abit KT7 auslesen

Nach der Installation von libsensors per apt-get install lm-sensors müssen beim Systemstart noch zwei Kernelmodule geladen werden. In /etc/modules fügt man dafür 2 Zeilen an:
#> echo i2c_isa >> /etc/modules
#> echo via686a >> /etc/modules
Benutzerdefinierte Anzeigeeinstellungen nimmt man in der Datei /etc/sensors.conf im Abschnitt von via686a-* vor. temp3 und 2,5V funktionierten nicht bzw. zeigen unsinnige Werte.
Nach einem Reboot (alternativ die beiden Module per modprobe laden) kann man sich die aktuellen verfügbaren Sensordaten mit dem Befehl sensors anzeigen lassen.

TECH_ ITE 8212 RAID Treiber in Kernel hinzufügen

Um den Treiber für den ITE 8212 RAID Adapter in den Linux Kernel 2.6 zu bekommen, sind (neben dem Herunterladen der sources) folgende Zeilen in die Kernelkonfigurationsdateien hinzuzufügen.
In der Datei /usr/src/kernel-source-2.6.8/include/linux/pric_ids.h
#define PCI_DEVICE_ID_ITE_8212 0x8212
In der Datei /usr/src/kernel-source-2.6.8/drivers/ide/Kconfig
config BLK_DEV_IT8212
    tristate "IT 8212 IDE support (Experimental)"
    help
        This driver adds support for the IT 8212 PCI IDE RAID Adapter.
    
Die Einrückungen sind beizubehalten.
In der Datei /usr/src/kernel-source-2.6.8/drivers/ide/pci/Makefile
obj_$(CONFIG_BLK_DEV_IT8212) += it8212.o

TECH_ Kein Piepen bei Tastatureingaben

#> echo "set bell-style none" >> ~/.inputrc

TECH_ Startup-Skripte einrichten

#> update-rc.d <BASENAME> defaults {<NN> | <sNN> <kNN>}
Hierbei bezeichnet BASENAME den Namen der Datei in /etc/init.d, und NN ist eine Ganzzahl zwischen 00 und 99. Mit sNN und kNN kann man auch unterschiedliche Prioritäten für Start und Stopp angeben.
Alternativ lassen sich auch spezifische Vorgaben machen.
#> update-rc.d <BASENAME> start|stop <NN> <LEVEL> [<LEVEL>...]
Level ist dabei eine Ganzzahl zwischen 1 und 6 und bezeichnet das spezifische Runlevel in /etc/rcX.d.
Da lediglich symbolische Links auf das Skript in /etc/init.d angelegt werden, können diese ohne Bedenken auch manuell gelöscht werden. Soll aber ein Skript komplett entfernt werden aus dem "Autostart/stopp", so genügt die folgende Zeile:
#> update-rc.d -f <BASENAME> remove

TECH_ Einstellungen von APT vornehmen

#> apt-setup

TECH_ Grundsetup von Debian aufrufen

#> base-config

TECH_ Sambashare (SMB/CIFS) mounten

Dazu muss das Samba Filesystem smbfs installiert sein.
#> mount -t smbfs -o username=XY,password=ABC //<SERVER>/<SHARE> /PATH/TO/MOUNTPOINT

TECH_ Umlaute in der bash

Mit dpkg-reconfigure locales die Konfiguration der locales aufrufen. de_DE@Euro ISO 8859-15 hinzufügen; en_US darf nicht default sein.
Anschließend mit dem Editor der Wahl /etc/environment öffnen und die Zeile
LC_CTYPE=de_DE@euro
anfügen. Die Einstellungen sollten nach einem erneuten Login gültig sein.

Samstag, 20. Mai 2006

HOWTO_ VPN auf niedrigster Ebene mittels VDE

  1. Einleitung

    Parallel zu OpenVPN beschäftigte ich mich auch mit einer anderen VPN-Technik, nachdem mich ein Artikel in der c't 22/05 neugierig gemacht hatte.
  2. Server unter Debian Sarge 3.1

    Während VDE zwar im stable-Zweig von Debian enthalten ist, sind es die für die komplette Funktion benötigten Pakete bridge-utils und uml_utilities nicht. Um das System nicht durcheinander zu bringen, indem ich stable und unstable mische, füge ich einen extra Servereintrag in die Datei /etc/apt/sources.list hinzu, der nach der Installation wieder auskommentiert wird. Sämtliche großen Mirrors stehen zur Wahl, momentan läuft aber folgender Eintrag gut:
    # unstable mirror
    deb http://ftp.uni-koeln.de/debian/ unstable main
    Nach einem apt-get update können nun die benötigten Pakete installiert werden:
    #> apt-get install vde bridge-utils uml_utilities
    Nun kann der unstable-Mirror in der Serverliste wieder auskommentiert werden, ein apt-get update bringt die Paketliste wieder auf den aktuellen "stable" Stand.
    Im Folgenden wird ein TAP-Device angelegt, und mit einer entsprechenden IP-Adresse hochgefahren.
    #> tunctl -t 1
    #> vde_switch -tap tap1 -daemon
    #> ifup tap1 192.168.1.1 up
  3. Client unter Mac OS X

    Für den Mac verwende ich VDE2, die Quelldateien können von der Projektseite bei Sourceforge heruntergeladen werden. Für die Kompilierung müssen die XCode-Tools mit GCC installiert sein.
    Die Sources werden entpackt, kompiliert und installiert.
    #> tar -xjf vde-2.0.2.tar.bz2
    #> cd vde-2.0.2
    #> ./configure
    #> make
    #> sudo make install
    Anschließend wird auch unter OS X ein TAP-Device benötig. Da ich im Zuge von OpenVPN tunnelblick installiert hatte, war für mich keine Arbeit mehr nötig. Manuell können die TUN/TAP-Treiber von http://www-user.rhrk.uni-kl.de/~nissler/tuntap/ heruntergeladen werden. Das bei mir vorhandene Device ist tap0.
    #> vde_switch --tap tap0 --daemon
    Jetzt muss nur noch die Verbindung zum Server hergestellt werden. VDE tunnelt die Ethernetpakete über SSH, prinzipiell ist aber auch telnet möglich. Hier wird also jetzt der virtuelle Netzwerkstecker eingeklickt und anschließend die "Karte" hochgefahren.
    #> sudo dpipe vde_plug = ssh <USER>@<SERVER> vde_plug
    #> ifconfig tap0 192.168.1.2 up
    Und schon sind die beiden Rechner über das (virtuelle) Netzwerk 192.168.1.0/24 verbunden.
  4. Fazit

    Einrichtung geht wirklich problemlos. Allerdings gibt es meines Wissens bisher keine GUI (stört das jemanden?). Riesiger Vorteil gegenüber einem "herkömmlichen" VPN ist natürlich, dass Ethernetpakete getunnelt werden, das also hier wirklich auf der alleruntersten Ebene stattfindet. Da spielt es auch gar keine Rolle, welche Protokolle darauf aufsetzen, laut Autor des c't-Artikels war sogar eine stabile PPPoE-Verbindung zu einem DSL-Modem möglich.
    Einen Geschwindigkeitsvorteil gegenüber OpenVPN konnte ich aber nicht bemerken, zumindest nicht, was Pings oder Websurfen angeht. Und: Von einer offenen TCP/IP-Verbindung zwischen Server und Client sind beide Systeme abhängig!
  5. VDE tunneln

    Um die Verbindung zwischen Client und Server herzustellen, benötigt VDE einen Tunnel. Das Einfachste ist sicherlich SSH, da hier auch gleich die sonst nicht vorhandene Verschlüsselung mit eingebaut wird. Damit kommt man natürlich nicht durch jede Firewall, und erst recht nicht durch jeden Proxy! Es gilt also für SSH das Gleiche wie für OpenVPN. Es funktioniert auch genau so.

Freitag, 19. Mai 2006

TECH_ Redirecting hacked servers searching for exploits

As my error logfile of my Apache httpd began to grow mainly showing hacked webservers trying to find software with current exploits, I began to think how to prevent that.

I came up with the idea of redirecting these webservers to their localhost 127.0.0.1, which is not being displayed in my logfiles and additionally no error 404 message page must be created and transferred to these ugly servers.

At first, I used multiple redirects for every single exploit, but that was just too bad. So I came up with one single regular expression I added to the main configuration file. I will try to keep it updated. Here it is:
RedirectMatch permanent ^http://|//?(\
\
\
admin|\
a1b2c3d4e5f6g7h8i9|\
[aA]ds(erver)?|\
a(f|oe|q20_2)|\
awstats.pl|\
b(dh|wl)|\
b2(evo)?|\
blitzkrieger|\
blog(s?|test)|\
([Ww]eb)?[cC]al(endar)?|\
cgi(-?bin)?|\
community|\
coop|\
db(admin)?|\
(aq40|eq?|fairy|mc(_|ony-)?|neq|ony|set_|ttm|wow|zg(class)?|zul)?dkp(_?[1-3]0?|-1.[2-3].0|_?aq1?|-klasse|klein|mc|_new|old|set|-?zg)?|\
DKPAQ20|\
dr(p|upal)|\
e(lp|vent)|\
forum|\
gmc|\
[hH]orde.*|\
hosted_sites|\
includes|\
(articles/|cvs/)?(mambo/)?index2\.php|\
level|\
m(are|c(1|p)?|y(sql-?)?(admin)?)|\
module|\
OveR|\
pages|\
phi|\
phpgroupware|\
php([Aa]ds([nN]ew)?|BB2|[mM]y[aA]dmin-?2(\.\d\.\d)?)|\
(|(php/)?([pP]hp([mM]y(-(\d\.?)+)?)?)?[cC]hat(s|room)/|forum/)/?chat/messagesL\.php3|\
PMA|\
prx1\.php|\
pub/downloads|\
punkte(stand)?|\
raid(bwl|planung)?|\
README|\
rps|\
(bbs/|(z(ero)?)?board/(bbs/)?)?skin/zero_vote/error\.php|\
(web)?statu?s|\
sumthin|\
sys|\
thisdoesnotexistahaha.php|\
_?vti_bin|\
web(17)?|\
wordpress|\
wow|\
(ad)?xml(rpc|srv)(\.php)?|\
zorn|\
zul\
\
\
)(/.*)?$ http://127.0.0.1/bugMeNot

You should carefully check that none of your internal homepage structure is being affected, especially if you are running one of those softwares the exploits are targeting!

The regular expression will match at least the following URIs:
/a1b2c3d4e5f6g7h8i9
/admin
/ads
/Ads
/adserver
/af
/aoe
/aq20_2
/aq40dkp
/articles/index2.php
/articles/mambo/index2.php
/b2
/b2evo
/bbs/skin/zero_vote/error.php
/bdh
/blitzkrieger
/blog
/blogs
/blogtest
/board/skin/zero_vote/error.php
/bwl
/cal
/calendar
/Calendar
/chat//chat/messagesL.php3
//chat/messagesL.php3
/chatroom//chat/messagesL.php3
/chats//chat/messagesL.php3
/community
/coop
/cvs/index2.php
/cvs/mambo/index2.php
/db
/dbadmin
/dkp
/dkp1
/dkp_1
/dkp2
/dkp_2
/dkp20
/dkp3
/dkpaq
/DKPAQ20
/dkp-klasse
/dkpklein
/dkpmc
/dkp_new
/dkpold
/dkpset
/dkpzg
/dkp-zg
/drp
/drupal
/edkp
/edkp20
/elp
/eqdkp
/eqdkp-1.2.0
/eqdkp-1.3.0
/eqdkp_2
/eqdkp_aq1
/eqdkp-zg
/event
/fairydkp
/forum
/forum//chat/messagesL.php3
/gmc
/hosted_sites
/includes
/index2.php
/level
/mambo/index2.php
/mare
/mc
/mc1
/mcdkp
/mc_dkp
/mcony-dkp
/mcp
/module
/my
/myadmin
/mysql
/mysqladmin
/mysql-admin
/neqdkp
/onydkp
/OveR
/pages
/phi
/php/phpmychat//chat/messagesL.php3
/phpgroupware
/phpads
/phpadsnew
/phpAdsNew
/phpBB2
/phpmyadmin2
/phpMyAdmin-2.2.3
/phpMyAdmin-2.2.6
/phpMyAdmin-2.5.1
/phpMyAdmin-2.5.4
/phpMyAdmin-2.5.6
/phpMyChat//chat/messagesL.php3
/phpMyChat-0.14.2//chat/messagesL.php3
/phpMyChat-0.14.5//chat/messagesL.php3
/PMA
/prx1.php
/pub/downloads
/punkte
/punktestand
/raid
/raidbwl
/raidplanung
/README
/rps
/set_dkp
/sumthin
/sys
/ttmdkp
/_vti_bin
/web
/web17
/webcalendar
/webCalendar
/WebCalendar
/Webcalendar
/wordpress
/wow
/wowdkp
/xmlrpc
/xmlsrv
/zboard/skin/zero_vote/error.php
/zeroboard/bbs/skin/zero_vote/error.php
/zgclassdkp
/zgdkp
/zorn
/zul
/zuldkp

Updates
2006-06-12
  • Added PhpMyChat exploit.
  • Added Zeroboard exploit.

2006-06-08
  • Made RegEx more readable by spanning over multiple lines.
  • Added /prx1.php (more precisely the GET http://www.theleadads.com/prx1.php HTTP/1.0 request) to matched URIs.
  • Added Mambo exploit with URIs /index2.php, /articles/index2.php, /articles/mambo/index2.php, /cvs/index2.php, /cvs/mambo/index2.php and /mambo/index2.php.
  • Added /phpgroupware to URIs.
  • Added /cal, /calendar and /webcalendar to matched URIs.

2006-06-05
  • Added possible leading double slash.

2006-05-22
  • Added /sumthin to matched URIs.

Reflog

Informationstechnische Howtos, Hinweise und Merkwürdiges

Batchlib v1.0 2008-03-29

Aktuelle Beiträge

HOWTO_ O2 DSL Surf &...
Der O2 DSL Surf & Phone-Router ist für die alleinige...
cypressor - 12. Feb, 19:57
Uptweak Windows XP Home...
There are a lot of annoying limitations in Windows...
cypressor - 9. Okt, 19:30
BATCHLIB_ Batchlib package...
Download Batchlib package v1.0 (5 KB zip file) What...
cypressor - 29. Mär, 19:10
BATCHLIB_ Batchlib library...
The batchlib library string.cmd is part of the batchlib...
cypressor - 29. Mär, 18:10

Homepage Ticker

Links

Status

Online seit 6923 Tagen
Zuletzt aktualisiert: 28. Jun, 11:32
RSS XML 1.0 Button-Get-Firefox

batch
batchlib
howto
tech
video
Profil
Abmelden
Weblog abonnieren