| |||
|
sgrX1.ulm.go-itservice.de
Jetway J7F2EDEN126 / Via Epia M10000 mit Debian 3.1 Sarge Hardware:
Netzwerk erstmal ausstecken (wegen DHCP) Linux installieren:Mit Debian Sarge DVD 1 booten:(Vorsicht: englische Tastaturbelegung)boot> linux26 debian-installer/framebuffer=falseder Framebuffer muss beim M10000 ausgeschaltet sein, da die Anzeige sonst nicht geht. Ohne linux26 (nur linux) wird der 2.4.27 Kernel installiert.Language: German<enter> Land: Deutschland Tastatur: deutschdann startet Hardwareerkennung und die DVD wird durchsucht... (dauert ca 1 Minute) Debian installer wird geladen, Hardwareerkennung (Netzwerk) , primäres Netz: eth0 (VIA VT6102)DHCP läuft ziemlich lange, falls das Netz ausgesteckt wurde, sonst muss nachher in der /etc/network/interfaces editiert werden:
Konfiguration: manuell (auswahl) IP Adresse: 192.168.80.11 Netmask: 255.255.255.0 Gateway: 192.168.80.1 DNS: 192.168.80.10 Rechnername sgrx1 Domäne: ulm.go-itservice.deResthardwareerkennung Festplatte: manuell (Cursor auf Partition,änderungen schreiben, Partitionierung erfolgt. Anschliessend wird das Grundsystem installiert (dauert ca 10 Minuten auf der alten Miniplatte) und der Bootloader: Bootloader MBRDie installation wird beendet, DVD ausgeworfen und um Neustart gebeten: NeustartNeustart Konfigurationdie Durchsuchung dauert ... 2. CD: (vorher DVD 2 einlegen) weitere CD:Anschliessend wird versucht, Updates von security.debian.org zu holen (was ohne Netz fehlschlägt). DVD1 wieder einlegen. Installieren von Software: * manuelle Paketauswahl Mailserver: derzeit nicht konfigurieren Mails root: goFalls man die Grundkonfiguration später nochmals starten will: base-config als root
aufrufenJetzt das Softwareverwaltungstool Aptitude starten: # aptitudenicht installierte Pakete auswählen, am besten über "Suche": + acl + apache2 (worker) + cryptsetup + hdparm + laptop-mode-tools + ldap-utils + nfs-kernel-server + ntpdate + perlmodule (siehe Allgemein zu "Sarge") + php4 (incl diverser Module, siehe Allgemein zu "Sarge") + rsync + samba + slapd + sudo + sysutils (wegen dos2unix)Pakete (wegen Speicherbedarf) ausschliessen: - dict - ispell - mutt diverse RechtschreibbibliothekenInstallieren, anschliessend wird einiges zur Konfiguration gefragt: SMB Workgr: workgroup Encrypt PW: ja Wins / DHCP: nein Samba: als Demon SMBpaswdDB: nein verschlüsseltes Dateisystem einrichtenZuerst die Zielpartition testhalber mit einem Filesytem beschreiben. Bei Debian Sarge sind alle relevanten Komponenten auf der DVD enthalten. Module laden:# modprobe aes # modprobe dm_crypt # modprobe dm_modTest des Device Mappers # ls -L /dev/mapper/control /dev/mapper/controlTest AES # cat /proc/crypto name : aes module : aes type : cipher blocksize : 16 min keysize : 16 max keysize : 32ausgeben. Test dmsetup: # dmsetup targets crypt v1.0.0 striped v1.0.1 linear v1.0.1 error v1.0.1den Key erzeugen: # ssh-keygen -t rsa -f .download.msg # chmod 600 .download.msgBeim Einbau einer neuen Platte wird bei sgrx1 auch die Option -c twofish-cbc-essiv:sha256
zur Sicherheit gegen Watermark Attack verwendet
(siehe wiki.chaostreff.ch,
wikipedia)
und die verschlüsselte Partition so erstellt:
cryptsetup -d /root/.download.msg -c twofish-cbc-essiv:sha256 create crypt2 /dev/sdb1 ( ohne Watermark :# cryptsetup -d .download.msg -s 256 create crypt1 /dev/sda1) ( mit IDE Platte :# cryptsetup -d .download.msg -s 256 create crypt1 /dev/hdc1) # dmsetup ls name (254, 0)Filesystem erstellen, wegen hdparm und flush wird hier ext2 statt ext3 verwendet # mkfs.ext2 /dev/mapper/crypt1 # mkdir /mnt/crypt1 # mount /dev/mapper/crypt1 /home/commonAm besten kurzen Lese/Schreibtest. Permanente Einstellungen vornehmen: In /etc/crypttab einfügen:
crypt1 /dev/hdc1 /root/.download.msgin /etc/modules hinzufügen: aes dm_crypt dm_modStart der Partition mit Skript S99obi (=obi2) oder manuell # cryptsetup -d .download.msg -s 256 create crypt1 /dev/hdc1 # mount -o acl /dev/mapper/crypt1 /home/commonDie Option acl ist nötig, daß das Verzeichnis common von allen Usern der Gruppe
common gelesen und beschrieben werden kann. (siehe NFS Freigabe)
NFS Freigabe mit ACLsin der/etc/exports folgenden Eintrag:
/home/common 192.168.80.0/24(rw,no_root_squash,sync)Das verschlüsselte Verzeichnis kann von wega und anderen Rechnern aus gemountet werden. Damit die erst von NFS Version 4 unterstützten ACLs funktionieren, muss beim mounten als Option -t nfs4
angegeben werden. Auf dem Rechner, der das mit ACLs versehene Verzeichnis mountet, muß acl übrigens
nicht installiert sein.Die Default ACL wird mit # setfacl -R -m d:group:common:rwx /home/common/rekursiv gesetzt. So kann jeder User der Gruppe die darunter abgelegten Dateien lesen UND schreiben, auch solche, die ein anderes Mitglied der Gruppe angelegt hat. Die ACLs können mit getfacl DIR ,
angezeigt und mit getfacl SRC | setfacl -f - DEST kopiert werdenDie Freigabe auf wega wieder exportieren und dann von z.B.antares mounten geht anscheinend nicht! Nach dem Mounten kann das Verzeichnis via Samba ganz normal freigegeben werden. User und RechteBenutzer und Gruppen so anlegen, dass für jeden User eine Gruppe mit GID=UID existiert. Zugriff auf gemeinsame Resourcen kann dann einfach mittels Gruppenzugehörigkeiten geregelt werden:/etc/passwd
go:x:801:801:Guenther Obermaier:/home/go:/bin/bash USER:x:899:899:USER:/home/USER:/bin/bash common:x:890:890:Common User:/home/common:/bin/false /etc/group
go:x:801:go,www-data USER:x:899:USER,www-data common:x:890:common,www-data,USER,go verschlüsseltes Dateisystem via NFS - Samba freigegebenam sgrX1 werden die User von wega eingerichtet: in der/etc/passwd User go,uw,gast eintragen,
ebenso in der /etc/shadow Die User müssen die selben UIDs, GIDs und Passwörter wie bei
wega, antares ec haben. Die Passwörter werden mittels
# passwd usernamegesetzt. Anschliessend werden im root-Verzeichnis der verschlüsselten Platte die Heimatverzeichnisse angelegt und an die entsprechenden User übergeben. Damit die angelegten Dateien und Ordner die richtigen Rechte erhalten, mu� dies in der /etc/samba/smb.conf auf wega richtig eingerichtet
werden. Für User go:
# cd /mnt/crypt1 # mkdir go # chown go:go go # chmod 770 goOhne die Userverzeichnisse können die Laufwerksfreigaben nicht verbunden werden, der Fehler deutet fälschlicherweise aber auf ein Samba-Problem hin. In dieses Verzeichnis müssen alle Dateien, die bisher auf wega unter /home/go waren!auf wega benötigt man zum mounten des NFS-Verzeichnises ein Kommando. Dies wird am Besten in /etc/rc.d/obi eingetragen und zwar bevor der smb Server gestartet wird.
# mount 192.168.80.11:/mnt/crypt1 /home # mount -o remount -t nfs4 192.168.80.11:/mnt/crypt1 /homeKomischerweise scheint mount -t nfs4 ... in einer Zeile nicht zu funktionieren.Im Produktivbetrieb ist der Schlüssel .download.msg nirgendwo auf sgrX1 gelagert, nach jedem scp vom Schlüsselserver und mounten der Partition wird er mit shred -n 5 .download.msg überschrieben (findet in /etc/init.d/obi2 statt). Nach Booten des Rechners ohne Zugriff zum externen Schlüsselserver ist kein Zugriff auf die verschlüsselte Datenpartition möglich! weiteresDatei/root/daily5h anlegen, dort ntpdate ec eintragen, alles was als cronjob nachts um 5h laufen soll.
chmod 700 vor crontab -e nicht vergessen!Um die Zahl der Schreibzugriffe zu verringern: /etc/fstab wird noatime als Bootparameter
für Systemplatte eintragen.Um (für alle User) den vi (statt nano) als Defaulteditor zu verwenden (z.B. für crontab -e ) in
/etc/profile :
export EDITOR=viFalls Samba benötigt wird: /etc/smb.conf
writable = yesneuen User anlegen: # smbpasswd -a userListe installierter Software: # dpkg --get-selections "*" Manuelles Einstellen der IP Adressein/etc/networks/interfaces
auto eth0 iface eth0 inet static address 192.168.80.11 netmask 255.255.255.0 network 192.168.80.0 broadcast 192.168.80.255 gateway 192.168.80.1 dns-nameservers 192.168.80.10 dns-search ulm.go-itservice.de ändern der InstallationsquelleIn der Datei/etc/apt/sources.list wird folgendes eingetragen:
deb http://security.debian.org/ stable/updates main deb http://debian.uni-essen.de/debian/ sarge main contribIn aptitude erscheint als erstes eine Fehlermeldung, aber mit "u" Update geht das anschliessend jedenfalls. SicherheitsupdatesDies funktioniert, sobaldsecurity.debian.org in der Quellenliste steht. Aptitude starten, dann
u Updates anfordern U alle Updates zum Installieren auswählen g alles ausgewählte installieren g (nochmal, dann geht der Download los) <enter> Download bestätigen, Pakete werden nun konfiguriertLetzter Schritt dauert (wegen DSL)! Duplizieren des Systems auf FlashdiskUm den Stromverbrauch des Servers zu reduzieren, wird eine Flashdisk statt der Bootplatte eingebaut. Die Flashdisk in einen CF2IDE Adapter stecken und z.B. in antares als 3.Master (/dev/hde1) einbauen. Die alte Bootplatte aus sgrX1 als 2.Master (/dev/hdc1) einbauen und die Flash Disk partitionieren (nur 1.Partition, bootbar). Ein ext2 Filesystem anlegen./dev/hdc1 nach /hdc1 mounten,
Flashdisk nach /hde1 , mittels rsync
(oder find -depth -print | cpio -pdauV /hde1 ) von hdc1 nach hde1 kopieren und anschliessend Grub
auf hde installieren.
# cd /hdc1; rsync -avuR * /hde1 # grub grub> device (hd0) /dev/hde grub> root (hd0,0) grub> setup (hd0) grub> quitDa die Flashdisk nicht beliebig viele Schreibvorgänge aushält und obendrein nur 512 MB gro� ist, werden auf der neuen Datenplatte ( /dev/sta ) zwei Partition angelegt (sda5,sda6)
welche als /var und als /tmp verwendet werden sollen. Dummerweise wird der
SATA Treiber erst nach ausführen der /etc/fstab geladen, so dass das nicht direkt geht.
Auf der Flashdisk wird /var angelegt, aber /var/lock , /var/spool ,
/var/log und /var/cache zeigen via symbolischen Link auf Verzeichnisse
auf der (in init2 gemounteten /sda5 ). Dadurch kann es möglicherweise zu Problemen
beim Log kommen, ist auf sgrX1 aber nicht wichtig. Die änderungen am Besten sofort vornehmen,
wenn die Platte noch in antares eingebaut ist.Flashdisk ausbauen, kann in sgrX1 direkt als Bootplatte verwendet werden. Obwohl sgrX1 ganz andere Hardware verwendet als z.B. armageddon II, bootet die Platte auch in diesen Standardrechnern: Debian rulez! Wenn beim Umbau die Bootplatte z.b. an den 2. IDE Controller wandert und damit aus hda hde
wird, muss die /etc/fstab und die /boot/grub/menu.lst angepasst
werden. Dort ist jeweils die Bezeichnung der Rootpartition und anderer zu mountender Partitionen zu ändern.Nachtrag: Dummerweise war die Flashdisk nach einigen Wochen defekt und ich musste wieder die alte, kleine und laute 2.5" Platte einbauen, aber nicht für lange, siehe nächstes Kapitel. Duplizieren des Systems auf neue PlatteDiesmal habe ich es mir noch leichter gemacht: Server herunterfahren, leere Platte als 2. Master einbauen(/dev/hdc) .Damit ich mich um das Datenlaufwerk nicht kümmern muß, habe ich die Datenplatte einfach von der Stromversorgung abgeklemmt. Neu booten. Zum Kopieren habe ich einen Mehrzeiler geschrieben, es reichten aber folgende Kommandos: # mkdir /hdc1 # mount /dev/hdc1 /hdc1 # cd / # rsync -avurt --progress --exclude /hdc1 --exclude /proc --exclude /sys * /hdc1 # mkdir /hdc1/proc # mkdir /hdc1/sysFalls Datenlaufwerk noch gemountet ist oder weitere Verzeichnisse ausgenommen werden sollen, einfach weitere Einträge mit --exclude /DIR einfügen. Nun muss die neue Platte noch mit dem Bootloader bootfähig gemacht
werden:
# grub grub> device (hd0) /dev/hdc grub> root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded succeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2/boot/grub/menu.lst"... succeeded Done. grub> quit # init 0Alte Bootplatte ausbauen, neue Platte als 1.Master einbauen, neu starten, das wars! ach ja, Datenplatte vorher wieder anschliessen ... Umbau auf SSDNachdem ich den alten, etwas unhandlichen Rechner bereits letztes Jahr durch einen älteren IBM X40 Subnotebook ersetzt habe, an den ich eine 1,0 TB Platte über USB als Datenplatte hängte (inzwischen 1,5 TB), bin ich weiter am umbauen. Diesmal habe ich die neue Bootplatte (Solidata K1, 16GB, SLC) des Servers an meiner Workstation in ein USB Gehäuse gehängt und anschliessend über das Netz befüllt.# fdisk /dev/sdf2 Partitionen, sdf1 mit 15 GB und ext2 (als bootbar), sdf2 mit 1 GB als SWAP # mkfs.ext2 /dev/sdf1 # mkswap /dev/sdf2 # mkdir /sdf1 # mount /dev/sdf1 /sdf1 # rsync -e ssh -avuR --progress --exclude /mnt --exclude /proc --exclude /sys --exclude /sdf1 /home sgrx1:/* /sdf1 # mkdir /sdf1/proc # mkdir /sdf1/sys # mkdir /sdf1/mnt # mkdir /sdf1/mnt/crypt1 # mkdir /sdf1/mnt/crypt2Danach die schon gewohnte GRUB Installation: # grub grub> device (hd0) /dev/sdf grub> root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded succeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2/boot/grub/menu.lst"... succeeded Done. grub> quitDa die Platte noch nie eingebaut war, musste ich den MBR noch neu schreiben (Paket mbr muss installiert sein) # install-mbr /dev/sdf # init 0Fertig! Statt ca 60 Sekunden braucht die SSD nur mehr 20 Sekunden zum Booten, wobei die ersten ca 10 Sekunden bei beiden gleich langsam ablaufen, da hängt wohl am BIOS vom X40... Falls der Rechner von der neuen Platte nicht Bootet, hat meistens die Installation des GRUB fehlgeschlagen. Also USB CD-ROM mit Debian-Install CD an dem Rechner, in dem die Platte letztendlich eingebaut werden soll, anstecken und beim der Abfrage "Weitere Optionen" -> "Rescue" auswählen oder über das Netz booten. Die Rescue-Option bietet nach Länderauswahl und dem Hardwaregesums die Option, GRUB neu zu installieren. Danach gings bei mir immer. Update von Debian Sarge (3.1) auf Etch (4.0)Hatte damit gerechnet, daß das total kompliziert ist, vergiß es, ist fast peinlich einfach:In der /etc/apt/sources.list werden die Zeilen für Sarge(sinngemäß):
deb http://security.debian.org/ stable/updates main deb http://debian.uni-essen.de/debian/ sarge main contribersetzt durch: deb http://debian.uni-essen.de/debian/ etch main deb-src http://debian.uni-essen.de/debian/ etch main deb http://security.debian.org/ etch/updates main deb-src http://security.debian.org/ etch/updates mainDie beiden Zeilen mit deb-src sind eigentlich nicht nötig, man
könnte einfach "sarge" durch "etch" ersetzen, ich
wollte aber die Einstellung auf allen Etch Rechnern gleich haben.
Darum verzichte ich bei Etch auch auf den
kommerziellen contrib-Zweig, aus dem ich sowieso nichts installiert habe. Dann
# apt-get update # apt-get dist-upgradeNach erfolgtem Update kommen einige Fragen des Debian-Installers, bei mir konnten überall die Default-Antworten übernommen werden. (dazu habe ich erst einen Spruch gehört: "Im Prinzip kann ein Huhn Debian installieren, wenn man nur genügend Körner auf die Enter Taste legt.") neu booten, fertig! Achtung: Das hat bei mir problemlos funktioniert, ich verwendete aber auch nur Standardkernel und Software von Sarge. Im Internet kann man über eine Menge Probleme bis zur Neuinstallation nachlesen, falls Sarge mit anderem Kernel läuft oder Software aus anderen Quellen verwendet wird! Update von Debian Etch (4.0) auf Lenny (5.0)Zu Beginn erfolgt sofort ein Abbruch, die Key-Rings sind veraltet.In der /etc/apt/sources.list werden die Zeilen für Etch(sinngemäß) durch Lenny oder Stable ersetzt.
Dann folgende Kommandos ausführen.
# apt-get update # apt-get install debian-archive-keyring # apt-get dist-upgradeDann brach der Upgrade mit einer Fehlermeldung ab: A non-dpkg owned copy of the libc6-i686 package was found Rumprobiert, geärgert, kurz im Internet gesucht, folgendes Kommando abgesetzt: # mv /lib/tls /lib/tls.oldDann liefs! Danke an www.debianhelp.org. Alle anschliessenden Fragen des Installers wurden mit den Defaultwerten beantwortet. |