FreeBSD v6 Install

Installing FreeBSD 6.0

Preface:

The article is focused on a standard (standard for me anyway) server install of FreeBSD. If you are planning on running a workstation, FreeBSD probably isn't your best choice as, in my opinion, FreeBSD is better suited for a server role. We will be using the FTP installation process and configuring and installing several standard services for the base install. Additional installation of packages will be discussed in other articles. This is focussed on the installation process only.

Assumptions:

The basica install of FreeBSD does not require a lot of UNIX experience but once you start using the server you will likely need to become experienced quickly. That being said, I still strongly encourage you to experiment with FreeBSD as a server if you haven't already.

Specifications:

There are several different types of architecture dependent installs to choose from. In this scenario we will assume you are using a basica i386 system (no 64bit extensions) and as such will be using the i386 installation files. While this article could be applied to any platform it may not be 100% accurate for your particular install.

The first that you will need to do is get the installation media that will be required for the installation process. As mentioned previously we will be working under the assumption that this is an i386 system but you can find the installation media here:

FreeBSD Installation Media

Instructions:

The first thing that we need to do is select the i386 FTP install floppy images. Go to the FreeBSD website and select "Get FreeBSD" from the top menu. Once you have arrived at the selection screen select the i386->Distribution option and then click on Floppies. We will want to download the following files:

boot.flp
kern1.flp
kern2.flp

If you will be using windows to make the floppy disks you should also download the fdimage application available here:

fdimage.exe

Now we need to put the images onto disk. If you are using windows use the following command (assuming you have fdimage.exe and the .flp images in the same location:

fdimage boot.flp a:
fdimage kern1.flp a:
fdimage kern2.flp a:

If you are using a UNIX machine you should do the following (replace /dev/floppy with your floppy device - ie: rfd0, fd0, or floppy):

# dd if=boot.flp of=/dev/floppy
# dd if=kern1.flp of=/dev/floppy
# dd if=kern2.flp of=/dev/floppy

You should now also select an appropriate mirror for the ftp installation process before hand. Visit the freebsd website and look at available mirrors. Find one that is close and make sure you select it during the installation process when prompted.

Our example will use: ftp://ftp3.ca.freebsd.org/

Now that you have the floppies ready let's start the install process.

:: INSTALLATION PROCEDURE

Install Minimal
Add Custom -> /src/sys and /ports and shells/bash3
Root Password & User Account (with /usr/local/bin/bash)
Reboot
Enable sshd
- enable PasswordAuthentication in /etc/ssh/sshd_config
- add sshd_enable="YES" to /etc/rc.conf
- /etc/rc.d/sshd restart
Install portupgrade
- cd /usr/ports/sysutils/portupgrade
- make all install clean
Install screen
- portupgrade -N screen
- Run screen
Install cvsup-without-gui
- portupgrade -N cvsup-without-gui
- Configure cvsup (cp and edit /usr/local/etc/cvsup dir)
- Run cvsup (/usr/local/etc/cvsup/cvsup.sh)
Update Kernel
- cd /usr/src
- make buildkernel KERNCONF=GENERIC
- make installkernel KERNCONF=GENERIC
Reboot
install remaining ports

portupgrade -N sudo
- visudo (add no password for wheel)
portupgrade -N mldonkey-core-devel
portupgrade -N isc-dhcp3-server
portupgrade -N poptop
portupgrade -N apache22
portupgrade -N mod_php5
portupgrade -N php5-extensions
portupgrade -N awstats
portupgrade -N mysql51-server
portupgrade -N samba-3
portupgrade -N vsftpd (ssl)

:: POST INSTALL CONFIGURATION

Change Root Shell to bash and modify .bashrc and .bash_profile
- #chpass: shell: /usr/local/bin/bash
- .bashrc and .bash_profile (in user and skel)
# umask 002
# set prompt: ``username@hostname:/directory $ ''
PS1="[\u@\h:\w]"
case `id -u` in
0) PS1="${PS1}# ";;
*) PS1="${PS1}> ";;
esac

ipnat/firewall: modify kernel and conf files

# move current www back to /srv/www and create a ln to /srv/www

TODO:
awstats
mail?