- Bohack - https://www.bohack.com -

Clean Debian Etch Install

My first Linux install was actually a BSD install of OpenBSD and I was quite impressed that nothing was installed except for the operating system. I am now minimalist and when installing operating systems this principal works to my advantage. The ideology is: you only install what is needed and nothing more, thus reducing the surface of attack and lowering wasted process time. So I have put a guide together that was inspired by the Linux how to for “The Perfect Setup – Debian Etch”. This guide was created with screenshots from VMware.

  1. Download the latest current build from the Debian website http://www.debian.org/distrib/. You’ll only need to download and burn the first ISO for CD1, since all the other CDs contain packages that can be downloaded via the ‘apt-get’ command.
  2. Insert the CD and set your BIOS or ‘first boot’ menu to boot from CD. As the CD spins up you will be brought to a prompt with the Debian logo. Debian Etch defaults to install the Linux 2.6 kernel so just hit enter.
  3. Debian Boot Screen
  4. The ‘Choose language’ screen will appear, select ‘English’ or your preferred language.
  5. Choose the language Dialog
  6. The ‘Choose country or region’ screen will appear, select ‘United States’ or your preferred country.
  7. Choose Country or Region Dialog
  8. The ‘Select a keyboard layout’ screen will appear, select ‘American English’ or your preferred layout.
  9. Select the Keyboard Layout Dialog
  10. The pre-installer will start to scan your hardware, scan the packages available on the CDROM, load the components of the Debian installer, then detect and configure the network with DHCP if detected.
  11. Pre-Installer Dialog
  12. You be prompted at the ‘Configure the network’ screen, were you will be asked to select a hostname for your system.
  13. Configure the Hostname Dialog
  14. Then you’ll be prompted with the ‘Domain name’ prompt, were you will select your domain name for your system.
  15. Domain Name Dialog
  16. The installer will detect all disks and start the partition utility. It is preferable to select the ‘Erase entire disk’.
  17. Auto Partition Dialog
  18. The next prompt will ask you for a partitioning scheme, again it is preferable to select the default of ‘All files in one partition’.
  19. Partitioning Scheme Dialog
  20. You will then have a chance to confirm your selection and ‘Finish partitioning and write the changes to disk’.
  21. Confirm Partitioning Scheme
  22. You’ll be prompted again to write the changes, select ‘Yes’ the default is ‘No’.
  23. Final Prompt to Write Changes
  24. The installer will ask for your time zone, enter the desired time zone.
  25. Time Zone Configuration Dialog
  26. The installer will ask for the root’s password (privileged user account).
  27. Root Password Dialog
  28. You will need to type the password again for confirmation.
  29. Root Password Confirmation
  30. You will also be required to create an initial user (non-privileged user account) account.
  31. Non-Root Account Dialog
  32. You will need to supply a login name for the account.
  33. Login Name Dialog
  34. Set the password for this user and confirm it like the previous account.
  35. Non-Root Password Dialog
  36. The system installer will begin installing the entire system now.
  37. System Installation Dialog
  38. The package manager will now require configuration, select ‘Yes’ for a mirror.
  39. Select a Mirror Dialog
  40. Choose ‘United States’ for the mirror’s country or your country.
  41. Mirror Country Dialog
  42. Choose ‘ftp.us.debian.org’ or the first mirror that appears for you prior selection.
  43. Select Mirror Dialog
  44. Select ‘Enter’ if you are not using a proxy.
  45. Select Proxy Dialog
  46. The developers ask that you participate in a feedback survey, for this how-to we will answer ‘No’.
  47. Feedback Survey Dialog
  48. Unselect all software using the spacebar and arrow keys and select ‘Continue’.
  49. Select Software to Install Dialog
  50. Answer ‘Yes’ to the Grub loader screen, this will install the boot manager of Grub on the system; this is used for emergency purposes.
  51. Grub Install Dialog
  52. Finish the install by selecting ’Continue’.
  53. Finish the Install Dialog
  54. You will reboot and see the Grub boot loader.
  55. Grub Boot Screen
  56. You can now login as ‘root’ with the password you supplied for ‘root’.
  57. Initial Login
    Now that we have an installed and running system we need to tweak a few settings. The network was installed and DHCP had been automatically configured, however since this will be a server DHCP is not the right choice; we will need to manually configure an IP address.

  58. Edit ‘/etc/network/interfaces’ by typing:
    nano -w /etc/network/interfaces# This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    #auto eth0
    #iface eth0 inet dhcp

    auto eth0
    iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1

  59. Set the resolver for proper DNS servers.
    nano -w /etc/resolv.confsearch foo.com
    nameserver 192.168.1.3
    nameserver 192.168.1.4
  60. Next you will need to restart the network component.
    /etc/init.d/networking restart
  61. Add your new static IP to the hosts table.
    nano -w /etc/hosts

    127.0.0.1 localhost.localdomain localhost debian

    192.168.1.2 debian.foo.com debian

    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

  62. Set the system’s hostname.echo server1.example.com > /etc/hostname
    /bin/hostname -F /etc/hostname
  63. Install some needed software packages and services.apt-get install wget bzip2 rdate unzip zip ncftp nmap lynx fileutils dnsutils
    apt-get install tcpdump less make tftp rdate file gcc g++ ssh
  64. Sync the time with an atomic clock.crontab -e

    # update time with time.nist.gov
    0 3,9,15,21 * * * /usr/sbin/rdate time.nist.gov | logger -t NTP

  65. Set up the ‘bashrc’ file.nano -w /root/.bashrc

    # ~/.bashrc: executed by bash(1) for non-login shells.

    export PS1=’\h:\w\$ ‘
    umask 022

    # You may uncomment the following lines if you want `ls’ to be colorized:
    export LS_OPTIONS=’–color=auto -h’
    eval “`dircolors`”
    alias ls=’ls $LS_OPTIONS’
    alias ll=’ls $LS_OPTIONS -l’
    alias l=’ls $LS_OPTIONS -lA’

    # Some more alias to avoid making mistakes:
    alias rm=’rm -i’
    alias cp=’cp -i’
    alias mv=’mv -i’

    # Bohack’s stuff
    alias nano=’nano -w -K’
    alias pico=’nano -w -K’
    alias ptree=’ps axf’

    PS1=’\[\033[36;1m\w \[\033[35;1m\h \[\033[0m\$ ‘
    export PS1
    export GREP_OPTIONS=”–color=auto”
    TERM=xterm-color
    export TERM
    cd /

Done! You now have a minimal install of Debian as a clean install. Don’t forget to do an ‘apt-get update’ and an ‘apt-get upgrade’, to install any major/minor updates.