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.

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 6590 Tagen
Zuletzt aktualisiert: 28. Jun, 11:32
RSS XML 1.0 Button-Get-Firefox

batch
batchlib
howto
tech
video
Profil
Abmelden
Weblog abonnieren