====== Debian auf 1und1 Rootserver ======
Aufgrund eines aktuellen Anlasses :-) ...
===== Vorarbeit =====
Informationen vom alten Server:
* Plesk Key /etc/psa/psa.key
* IP Daten (Adressen, Gateway, Subnetz...)
* Hostname (FQDN)
* Plesk-Backup aller Clients
* Evtl. ein komplett Backup, um im Falle des Falles wieder aller zurückrollen zu können
===== Partitionen erzeugen =====
Zunächst mal Partitionen anlegen.
* /boot (ca. 128MB)
* / (root)
* /var (hier liegen Mails und httproots)
* swap (wie immer: min. 2x RAM)
Danach die beiden Platten syncronisieren:
* sfdisk -d /dev/sda > parttab.txt && sfdisk /dev/sdb < parttab.txt
Mit mdadm die Raiddevices erstellen:
* mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb2
* usw...
Initialsyncronisierung beschleunigen:
* echo 200000 > /proc/sys/dev/raid/speed_limit_max
Dateisysteme erstellen und mounten:
* mkdir /mnt/deb /mnt/deb/var /mnt/deb/srv /mnt/deb/boot
===== debootstrap =====
* wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3.2etch1_all.deb
* ar x debootstrap*
* cd / && tar -xvzf /root/data.tar.gz
* debootstrap --arch amd64 etch /mnt/deb ftp://ftp.de.debian.org/debian
* mount -t proc none /mnt/deb/proc && LANG=C chroot /mnt/deb/ /bin/bash
* aptitude update && aptitude install grub ssh mdadm kernel-image-2.6-amd64-generic locales console-data console-common
* /etc/fstab sollte so aussehen: /dev/md0 /boot ext2 noauto,nodev,noatime 1 2
/dev/md1 / reiserfs defaults 0 1
/dev/md2 /var reiserfs defaults,nodev 0 1
/dev/md3 /srv reiserfs defaults,nodev 0 1
/dev/sda8 none swap sw 0 0
/dev/sdb8 none swap sw 0 0
none /proc proc defaults 0 0
* /etc/network/interfaces anpassen:
auto lo
iface lo inet loopback
auto eth0 eth0:1
iface eth0 inet dhcp
iface eth0:0 inet static
address 123.456.789.123
network 123.456.789.0
netmask 255.255.255.0
raid1 Modul zur initramdisk hinzufügen
* vim /etc/initramfs-tools/modules
* mkinitramfs
* grub installieren; ich musste die stage verzeichnisse kopieren
* root passwort vergeben
* hostname einstellen via /etc/hosts und /etc/hostname
* consolen keymap und sprache ändern via locales und console-data und console-common
* Zeitzone via tzconfig einstellen
* Grub menu via update-grub erstellen
* www-data UID von 33 auf 30 ändern und die Dateien die 33 gehören noch 30 zuweisen
* sources.list auf standart setzen:deb http://ftp2.de.debian.org/debian/ etch main
deb-src http://ftp2.de.debian.org/debian/ etch main
deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib
===== Serielle Console nutzbar machen =====
Zunächst ist es wichtig zu wissen, dass die serielle Console von 1und1 mit 57600 Baud läuft.
* zu /boot/grub/menu.lst folgendes hinzufügen:
serial --unit=0 --speed=57600 --word=8 --parity=no --stop=1
terminal serial
* Falls man 10s Zeit haben will um sich zwischen physikalischer Konsole und serieller zu entscheiden terminal --timeout=10 serial console
* zu kopt im grub file folgendes hinzufügen:
# kopt=root=/dev/md1 ro console=tty0 console=ttyS0,57600n8
update-grub nicht vergessen!
* /etc/inittab abändern:
T0:23:respawn:/sbin/getty -L ttyS0 57600 vt100
===== Plesk installieren =====
* **Vorher** noch Benutzer ID von Apache user ändern (30 Suse -> 33 Debian) und auch alle Dateien die dem Benutzer gehören ändern.
* Plesk autoinstaller von der Homepage laden und ausführen, bzw. dem Menu folgen.
* Falls der gesicherte plesk-key (/etc/psa/psa.key) XML Struktur enthält, kann man Plesk 9 installieren, falls es dort nicht nach XML aussieht sollte man PLESK 8 installieren und später updaten, weil der PLESK key sonst nicht angenommen wird.
* Default Zugangsdaten sind port: 8443 User: admin Passwort: setup
* Produktkey vom alten Server verwenden. Vorher muss die Datei /etc/psa/psa.key um folgendes am Anfang ergänzt werden:
#!/bin/sh
PRODUCT_ROOT_D=`awk '$1 ~ /PRODUCT_ROOT_D/{ print $2}' /etc/psa/psa.conf`
if test -z "$PRODUCT_ROOT_D"; then
echo "Plesk not detected"
exit 1
fi
"$PRODUCT_ROOT_D/admin/sbin/keymng" --install --source-file="$0" --skip=10
exit $?
-----BEGIN PLESK KEY DESCRIPTION-----
* Nach Produktkey einspielen, Updaten auf neueste Plesk Version
* Legacy link von /var/www nach /srv/www erstellen, da es sonst Probleme gibt (www-root war bei Suse unter /srv/www)
* Wer DrWeb nicht mag, oder nie benutzen will, kann sich den Paketen wieder entledigen die PLESK (bei mir) ungefragt installiert hat: apt-get remove drweb drweb-base drweb-daemon drweb-qmail drweb-updater
* Default SSL Zertifikat gegen ein geeigneteres ersetzen
* Verzeichniss-Skeleton leer machen (gibt sonst Probleme beim Wiederherstellen)
===== Pleskbackup einspielen =====
* /usr/local/psa/bin/pleskrestore --restore -level Backuplevel kann clients, server, domains sein
* Fehler: "WARNING: Backup file has wrong signature for this server" oder "Unable to resolve all conflicts"
* Lösung: .tgz entpacken und xml anschauen, vermutlich stimmt die IP dort nicht also: suchen und ersetzen
* Falls die Berechtigungen nicht stimmen (bei mir wird z.B. die www-data Berechtigung beim zurückspielen des Backups NICHT wiederhergestellt), kann man das Backupfile entpacken und darin liegt eine *vhost*.tgz, die man einfach in den vhost mit -p (perserve permissions) Schalter entpacken kann.
===== Links =====
[[http://wiki.debian.org/de/fwknop|Howto install fwknop on Debian Etch]] \\
[[http://www.isp-control.net/documentation/howto/security/make_ispcp_more_secure|Generelle Apache Sicherheitshinweise von IspCP]]