Alberto Cammozzo, 21.01.2004
Installazione e configurazione di un nuovo server in ASID
Predisposto con filesystem XFS e virtual servers.
Preparazione array RAID
Il raid Array Hardware va preparato facendo il boot con il CD del produttore.
Predisposizione di un nuovo kernel ad-hoc
Dopo aver effettuato un boot con knoppix annoto l'output di lspci, cat /proc/meminfo, cat /proc/cpuinfo, lsmod, ifconfig -a
: sono le caratteristiche in base alle quali determinare i requisiti minimi per un kernel rescue. Deve contenere anche le patch per XFS, se il server operativo avra' root xfs. L'importante e' che siano visibili i dischi e la rete.
Installazione sistema e boot col nuovo kernel
Boot da floppy col kernel nuovo a sostituire quello di default di un floppy debian rescue (e.g. 2.4bf) e un floppy root standard. Da qui in poi l'installazione e' standard, da rete. Non installare alcun pacchetto aggiuntivo, non eseguire tasksel
e dselect
.
Predispongo tre partizioni: la prima di swap (doppio della ram) la seconda linux (30Gb), la terza linux (20Gb). La terza sara' quella montata, nella quale installero' il sistema debian, che poi verra' trasferito nella seconda, dopo che la avro' formattata in XFS, come spiegato dopo. La terza verra' cancellata alla fine dell'installazione.
Anche dopo aver detto 'make system bootable' la macchina potrebbe non riuscire a fare boot da disco dopo il reboot, motivo per cui conviene partire con il floppy rescue preparato prima, o ancora meglio utilizzare un floppy di boot di grub e caricando il kernel e il filesystem preparati sul disco fisso (kernel (hd0,1)/boot/vmlinuz-2.4 root=/dev/sda2
, boot
).
Installazione di bootloader GRUB
Installo grub e faccio sparire lilo:
apt-get install grub
dpkg --purge lilo
grub-install /dev/sda
vi /boot/grub/menu.lst
menu.lst conterra':
default=0
timeout=5
title main kernel
root (hd0,1)
kernel (hd0,1)/vmlinuz root=/dev/sda2 vga=ask
title backup kernel
root (hd0,1)
kernel (hd0,1)/vmlinuz.old root=/dev/sda2
boot
Con questo dovremmo aver sistemato il boot, che avverra' da disco.
Reboot. Assicurarsi che vi sia il link da /vmlinuz al kernel giusto.
Se manca, linkarlo.
Trasferimento del sistema sulla partizione XFS
apt-get install xfsprogs
mkfs.xfs /dev/sda2
mount /dev/sda2 /mnt
tar plcvf - / | (cd /mnt ; tar pxvf - )
vi /mnt/etc/fstab
Correggere fstab: la riga del root filesystem deve essere:
/dev/sda2 / xfs defaults 0 1
Qui conviene fare un reboot, per verificare che tutto sia a posto nel nuovo filesystem.
In alternativa, fare chroot /mnt
.
Se il reboot va bene, cancellare la terza partizione e creare eventiali altri filesystem (e.g. /vservers).
Personalizzazione, messa in sicurezza
Installo subito bastille, un decente script che chiude quasi tutto quello che c'e da chiudere.
Fa parecchie domande e bisogna capire che cosa chiede...
apt-get install perlmenu
apt-get install bastille
/usr/sbin/InteractiveBastille
dpkg --purge nfs-common nfs-kernel-server portmapper
dpkg --purge lpr pidentd
apt-get install ssmtp
dpkg --purge lilo
apt-get install ssh
vi /etc/hosts.allow
In aggiunta conviene commentare tutto /etc/inetd.conf
Con netstat -ln
verificare che siano attivi solo i servizi che interessano (ssh).
Gia' che ci siamo:
editiamo /etc/ssh/sshd.conf in modo che ascolti sull'indirizzo IP giusto (per non dare fastidio a
vserver).
#ListenAddress 0.0.0.0
ListenAddress IP_DEL_SERVER
Se si vuole che le sessioni grafiche X11 vengano trasferite,
bisogna aggiungere X11UseLocalhost no oltre alle
solite opzioni, questo perche' l'interfaccia lo0 non e'
agibile da vserver.
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
Preparazione ambiente nuovo kernel
apt-get install wget
apt-get install bzip2
apt-get install libncurses5-dev
apt-get install gcc gawk make patch less
Compilazione kernel definitivo
Scarico kernel e parch, applico patch, correggo se necessario a mano.
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.23.tar.gz
wget http://www.13thfloor.at/vserver/patchset/ps23v1.22-1/patch-set-2.4.23-vs1.22-1.diff.gz
wget ftp://oss.sgi.com/projects/xfs/patches/2.4.23/xfs-2.4.23-all-i386.bz2
tar zxvf linux-2.4.23.tar.gz
cd linux-2.4.23
bzcat ../xfs-2.4.23-all-i386.bz2 | patch -p1
zcat ../patch-set-2.4.23-vs1.22-1.diff.gz | patch -p1 | grep rej
Che mi da alcuni errori, o patch respinte:
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
1 out of 1 hunk FAILED -- saving rejects to file fs/Makefile.rej
1 out of 5 hunks FAILED -- saving rejects to file kernel/sysctl.c.rej
In questo caso e' stata necessaria la correzione a mano di alcuni rejected chunks.
Questi chunk sono 'cosmetici':
vi Makefile
vi ./kernel/sysctl.c
vi fs/Makefile
Questo e' piu' sostanziale, ma per fortuna in google si trova l'errore di compilazione del kernel
con la correzione a mano di alcuni errori di coesistenza tra vserver e xfs.
vi include/linux/fs.h
(cfr http://www.paul.sladen.org/vserver/archives/200311/0007.html)
#define S_IMMUTABLE S_IMMUTABLE_FILE /* mmzz- 20.01.04 http://www.paul.sladen.org/vserver/archives/200311/0007.html */
#define IS_IMMUTABLE IS_IMMUTABLE_FILE /* mmzz- 20.01.2004 - http://www.paul.sladen.org/vserver/archives/200311/0009.html */
Compilazione...
make menuconfig
make dep && make bzImage && make modules modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.23-xfs-vs1.22
cp System.map /boot/System.map-2.4.23-xfs-vs1.22
cp .config /boot/config-2.4.23-xfs-vs1.22
rm /vmlinuz
ln -s /boot/vmlinuz-2.4.23-xfs-vs1.22 /vmlinuz
ln -s /boot/vmlinuz-2.2.20-compact /vmlinuz.old
Per caricare il kernel nuovo serve un reboot...
Con modconf
seleziono i moduli che mi interessa tenere.
installo altri pacchetti utili
apt-get install ntp
i time server sono ntps.net4u.it ntp1.ien.it ntp2.ien.it
Installazione Vserver
Scarico, compilo e installo le utility vserver:
apt-get install automake g++
wget http://www.13thfloor.at/vserver/s_release/v1.23/util-vserver-0.27.tar.bz2
tar jxvf util-vserver-0.27.tar.bz2
cd util-vserver-0.27
./configure --prefix=/
make
make install
Per creare i vserver mi serve debootstrap:
apt-get install debootstrap
mkdir /var/lock/subsys/
mkdir /vservers
chmod 000 /vservers
cd /vserver/
Creo il vserver 'campione':
debootstrap woody wikkit
File di configurazione del vserver:
vi /etc/vservers/wikkit.conf
Che contiene:
IPROOT=IP_DEL_VSERVER
IPROOTMASK=255.255.255.0
IPROOTBCAST=147.162.35.255
IPROOTDEV=eth0
ONBOOT=no
S_HOSTNAME=wikkit.stat.unipd.it
S_DOMAINNAME=
S_NICE=
S_FLAGS="lock nproc"
ULIMIT="-H -u 1000"
S_CAPS="CAP_NET_RAW"
Ultimi tocchi per la configurazione del vserver client:
ad es. default gw.
cp /etc/apt/sources.list /vservers/wikkit/etc/apt/
cp /etc/network/interfaces /vservers/wikkit/etc/network/
cp /etc/resolv.conf /vservers/wikkit/etc/resolv.conf
vi /vservers/wikkit/etc/network/interfaces
Partenza del vserver... Entrare nell'ambiente vserver.
vserver wikkit start
vserver wikkit enter
Una volta nel vserver, installare e configurare i pacchetti necessari come se fosse un server normale.
Configurazione virtual server
Come per il server principale, pulizia dei servizi e dei daemon fino a una configurazione 'pulita'
(/etc/inet.conf /etc/hosts.allow /etc/hosts.deny /etc/ssh/sshd.conf
).
Installazione di samba-3 nella versione di www.samba.org:
cat >> /etc/apt/sources.list
deb http://fi.samba.org/samba/ftp/Binary_Packages/Debian/samba3 stable main
apt-get update
apt-get install samba samba-common samba-doc