Install Ubuntu 11.04
Simply use the CD, DVD or USB to install vanilla Ubuntu Linux install.
Setup Static Network Interface configuration
Uninstall Network Manager so that your network does not rely on your desktop login.
sudo apt-get remove --purge network-manager*
cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
#auto wlan2
#iface wlan2 inet static
#wpa-ssid SSID
#wpa-psk PASSPHRASEORKEY
#address 192.168.0.3
#netmask 255.255.255.0
#network 192.168.0.0
#broadcast 192.168.0.255
#gateway 192.168.0.1
Setup DNS or Nameservers for dns resolution
Network Manager automatically tries to populate nameservers upon initial configuration so if you uninstalled network manager dns entries may still exist in config file. Modify /etc/resolv.conf to update your nameservers that I usualy use Google's open DNS nameservers.
vi /etc/resolv.conf
sudo /etc/init.d/networking restart
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver x.x.x.x
nameserver 8.8.4.4
nameserver x.x.x.x
sudo /etc/init.d/networking restart
Install and Configure SSH Server
sudo apt-get install openssh-server
sudo sudo vi /etc/ssh/sshd_config
Modify Port to listen on a port different than usual port 22.
Port 2222
Restart SSH Server
sudo /etc/init.d/ssh restart
Test SSH connectivity on required port
ssh localhost -p 2222
Update your repositories and Upgrade packages to latest versions
sudo apt-get update && sudo apt-get upgrade -y
Install and configure VNC Server for remote X Windows connectivity
sudo apt-get install vnc4server fluxbox
vncserver :1
Enter password for VNC session
vi ~/.vnc/xstartup
Modify default Window manager to fluxbox for better performance
fluxbox &
#x-window-manager &
Now restart vncserver
vncserver -kill :1 && vncserver :1
Connect from your Linux or Windows remote desktop
vncviewer x.x.x.x:1
Install and configure Uncomplicated Firewall
sudo apt-get install ufw gufw
sudo ufw enablesudo ufw logging medium
sudo ufw allow 80/tcp
sudo ufw allow 53
sudo ufw allow 8080
sudo ufw allow from 203.204.205.206
sudo ufw allow from 192.168.0.1/24
sudo ufw allow 2222/tcp
sudo ufw allow 10000:11000/udp
Uncomment following line from /etc/rsyslog.d/20-ufw.conf to enable logging
# & ~
View firewall status and rules
sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 80/tcp ALLOW IN Anywhere
[ 2] 53 ALLOW IN Anywhere
[ 3] 8080 ALLOW IN Anywhere
[ 4] Anywhere ALLOW IN 203.204.205.206
[ 5] 2222/tcp ALLOW IN Anywhere
[ 6] 10000:11000/udp ALLOW IN Anywhere
[ 7] Anywhere ALLOW IN 192.168.0.0/24
Configure noip (dyndns) with no-ip.org account
sudo apt-get install noip2
Enter no-ip.org username
Enter no-ip.org password
Enter Interval - select default 30 minutes
List of hosts or groups - leave it blank unless you have multiple hosts
Network Device Name - again can be left blank for single hosts
Disable NAT - No unless you have machine with real public IP address on the internet.
Check no-ip update status
$ sudo noip2 -S
1 noip2 process active.Check no-ip update status
$ sudo noip2 -S
Process 26486, started as noip2, (version 2.1.9)
Using configuration from /var/lib/noip2/noip2.conf
Last IP Address set 203.101.203.103
Account yournoiporgusername
configured for:
host yournoiporghostname.no-ip.org
Updating every 30 minutes via /dev/eth1 with NAT enabled.
Configure Network Time Protocol (NTP) and Timezone details
Configure Timezone
sudo dpkg-reconfigure tzdata
Select Area such as Europe
Selct Timezone such as London
Install NTP Date package and configure ntp
sudo apt-get install ntpdate ntp
sudo ntpdate ntp.ubuntu.com
sudo vi /etc/ntp.conf
add more servers such as
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org
Restart NTP service
sudo /etc/init.d/ntp restart
Configure a Daily cron job to update system, index filesystem and reboot
Other useful pacakges that I usually install and may need
sudo apt-get install vncviewer fwanalog php5-cli curl libcurl3 libcurl3-dev php5-curl flashplugin-installer wine msttcorefonts
sudo apt-get install sun-java6-jre
sudo apt-get install asterisk
sudo touch /etc/cron.daily/mydailycron
sudo chmod 755 /etc/cron.daily/mydailycron
sudo vi /etc/cron.daily/mydailycron
#!/bin/sh
echo "`date` - Daily cron - Updating file indexes using updatedb." >> /var/log/mycron.log
/usr/bin/updatedb & >> /var/log/mycron.log
echo "`date` - Daily cron - Updating repositories using apt-get update." >> /var/log/mycron.log
/usr/bin/apt-get update >> /var/log/mycron.log
echo "`date` - Daily cron - Updating file indexes using updatedb." >> /var/log/mycron.log
/usr/bin/updatedb & >> /var/log/mycron.log
echo "`date` - Daily cron - Updating repositories using apt-get update." >> /var/log/mycron.log
/usr/bin/apt-get update >> /var/log/mycron.log
echo "`date` - Daily cron - Upgrading packages using apt-get upgrade." >> /var/log/mycron.log
/usr/bin/apt-get upgrade >> /var/log/mycron.log
echo "`date` - Daily cron - Rebooting server using shutdown now -r" >> /var/log/mycron.log
/sbin/shutdown now -r >> /var/log/mycron.log
/usr/bin/apt-get upgrade >> /var/log/mycron.log
echo "`date` - Daily cron - Rebooting server using shutdown now -r" >> /var/log/mycron.log
/sbin/shutdown now -r >> /var/log/mycron.log
Other useful pacakges that I usually install and may need
sudo apt-get install vncviewer fwanalog php5-cli curl libcurl3 libcurl3-dev php5-curl flashplugin-installer wine msttcorefonts
sudo apt-get install sun-java6-jre
sudo apt-get install asterisk