Version 8 (modified by Jamie McClelland, 13 years ago) (diff)


Installing Debian

Assumptions: The server has two identically sized hard drives

Ideally - you should boot using a Debian installer that uses the serial console. If you can't - just install the normal way.

Prepare your laptop - Screen

  • Install screen on your debian laptop:
sudo apt-get install screen
  • Connect your serial cable (or USB - serial cable) from your laptop to the server. You may want to check dmesg after plugging in the cable to see which device is being used. You should have a line along the lines of: usb 3-1: PL-2303 converter now attached to ttyUSB0
  • Start screen with:
    mkdir screen-log
    cd screen-log
    screen -L /dev/ttyUSB0 115200

Install Linux

Initial steps

  • Put in Daniel's Serial Console debian installer and boot (note - if you don't have a serial installer, use a normal installer and a keyboard and monitor attached to the server).
  • At the boot prompt hit enter to install the 2.6 kernel
  • [Skipping easy steps]
  • Manually partition the drive
  • There should be two drives. Remove any existing partitions.
  • Add one partition on each disk that is:
    # bootable
    # 250 MB
    # Physical volume for RAID array
  • Add a second parition on each disk that is:
    # Takes up remaining space
    # Physical volume for RAID array
  • Choose "Congifure software RAID"
  • Choose "Create MD Device"
  • Choose RAID1
  • Number of active devices: 2
  • Number of spare devices: 0
  • Now select the first partition on each device.
  • Click Continue. Repeat for second partition on each device.
  • When you are done, click Finish. Now you are back at the partition menu.
  • Scroll down to the raid devices. Modify as follows:
250 MB RAID device: Filesystem: ext3, mount on /boot
Remaining: Physical Volume for LVM
  • Choose "Congifure LVM"
  • Create a volume group called vg_nameofserver0
  • Create a logical volumes in this volume group
dom0: 1 GB
dom0-swap: 512MB
  • After returning to the main disk config menu, click on the LVM #1 and configure it to use ext3 and /.
  • Click on the #2 lvm disk and configure it as swap

Afer reboot

  • Set Hardware clock to GMT (even if it isn't)
  • Insert root password into pass db
  • Create new user: mayfirst
  • Do not select any of the pre-set application packages. Just tab to OK.
  • For mail congiration - choose No configuration (we will be installing postfix later)
  • Root and postmaster recipient: root@…

Post Install

Syn Cookies ===

  • Enable syncookies:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
  • Preserve syncookies on reboot:
    echo 'net.ipv4.tcp_syncookies=1' >> /etc/sysctl.conf

Setup xen

  • Install with:
apt-get install xen-hypervisor-3.0.3-1-i386 xen-linux-system-2.6.18-4-xen-686 libc6-xen
  • Edit /boot/grub/menu.1st
## Xen hypervisor options to use with the default Xen boot option
# xenhopt=dom0_mem=131072
  • run update-grub and reboot
  • Install bridge-utils and xen-tools
    aptitude install bridge-utils xen-tools
    /etc/init.d/xend restart
  • Edit /etc/xen-tools/xen-tools.conf. Apply the following diffs:
    0 gramsci:/etc/xen-tools# diff -u xen-tools.conf.orig xen-tools.conf
    --- xen-tools.conf.orig 2007-05-27 19:59:38.000000000 -0400
    +++ xen-tools.conf      2007-05-27 20:01:15.000000000 -0400
    @@ -35,6 +35,7 @@
    # lvm = skx-vg
    +lvm = vg_gramsci0
    @@ -61,7 +62,7 @@
    # copy = /path/to/pristine/image
    -# debootstrap = 1
    +debootstrap = 1
    # rpmstrap = 1
    # tar = /path/to/img.tar
    @@ -95,7 +96,7 @@
    swap   = 128Mb    # Swap size
    # noswap = 1      # Don't use swap at all for the new system.
    fs     = ext3     # use the EXT3 filesystem for the disk image.
    -dist   = sarge    # Default distribution to install.
    +dist   = etch     # Default distribution to install.
    image  = sparse   # Specify sparse vs. full disk images.
    @@ -154,8 +155,8 @@
    # Default kernel and ramdisk to use for the virtual servers
    -kernel = /boot/vmlinuz-2.6.16-2-xen-686
    -initrd = /boot/initrd.img-2.6.16-2-xen-686
    +kernel = /boot/vmlinuz-2.6.18-4-xen-686
    +initrd = /boot/initrd.img-2.6.18-4-xen-686
    #  The architecture to use when using debootstrap or rpmstrap.
    1 gramsci:/etc/xen-tools#
  • Create new xen instances with:
xen-create-image --size=5Gb --swap=512Mb --gateway= --netmask=255.2
55.255.240 --ip= --hostname=mendes

Change settings as needed.


  • Edit /etc/group and change the group id of mayfirst to 1500 (so it will be consistent with red)
  • Login as root and install the following packages:
# apt-get install --purge ssh ntpdate ntp-server sudo vim less rsync postfix
  • Add the group wheel.
# addgroup wheel
  • Add mayfirst to wheel:
# addgroup mayfirst wheel
  • Configure sudo:
    # visudo

Add a line at the bottom that says:

%wheel	ALL=(ALL) ALL
  • Upload the mayfirst public keys to:
  • Configure ssh to only accept connections with auth keys (unless this is a server that should be accessible by members). Edit /etc/ssh/sshd_config.
  • Uncomment and change the ChallengeResponseAuthentication line to match the following:
ChallengeResponseAuthentication no
  • Reload ssh:
# /etc/init.d/ssh reload
  • Uninstall unecesary packages:
$ sudo apt-get remove --purge portmap lpr nfs-common ppp
  • Make sure no uneeded services are running. Look through /etc/rc2.d. Move from S to K any services that are not needed (e.g. rsync and inetd).

Serial console login

If you did not use the serial console installer, then perform the following:

  • Edit the /etc/inittab file. Uncomment the line that reads:
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

and change 9600 to 115200 so it reads:

T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
  • Refresh:
$ sudo init q
  • Add the following lines after the timeout line in /boot/grub/menu.1st
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
  • Add the following lies to the Start Default Options

You should already have a line such as:

# kopt=root=/dev/md0 ro

add to it, so that your final line says:

# kopt=root=/dev/md0 ro console=ttyS0,115200n8

Refresh grub:

$ sudo update-grub

Encrypted File system

  • Install programs:
$ sudo apt-get install dmsetup cryptsetup
  • Create an encrypted file system for members:
  • Now, unmount the partition (make sure there is no data on it that you care about).
$ sudo umount /home/members
  • Create the encrypted filesystem:
$ cryptsetup luksFormat /dev/mapper/vg_NAMEOFSERVER0-members

You will be prompted for a password. Put password in resource db!

  • Add to crypttab
echo crypt_members /dev/mapper/vg_NAMEOFSERVER0-members none luks >> /etc/crypttab
  • Start it
/etc/init.d/cryptdisks start
  • Create a file system on the partition:
$ mkfs -t ext3 /dev/mapper/crypt_members
  • Remove cryptdisks from the rc2.d directory - we do not want this to start automatically on boot! Instead we want to start it manually so the boot process doesn't hang waiting for a password.