Site Navigation:       Home       Page1       Page2       Page3       Page4       Page5       Do more       Word of Mouth       Donate



Page 1 of 5:



    OK... Let’s begin



Although this guide was created using Debian 5, it will also help Debian 6/7/8 and Ubuntu users. You may run into

some problems with Ubuntu’s firewall (UFW) and Ubuntu’s Network Manager. Ubuntu’s AppArmor and the way Ubuntu

restarts services. Both now come with nano as the text editor and not vim.

So you will need to install vim in order to follow along (apt-get install vim) which we will cover, or learn how to use nano


But these aren’t major problems, the work-a-rounds and differences are fairly minor and easy to overcome.


You can email me or read my blog for help. For a step-by-step install, please use Debian.



Start by downloading and burning the latest stable Debian .iso from

You only need CD #1 ,  if there is more than one to choose from


(32 bit PC)


(64 bit PC) *Dont worry that it says AMD, it also works for 64bit Intel.


Here are what the most common choices means...


iso-cd = A bootable CD image to download and then burn

i386 = 32bit

amd64 = Both Intel 64bit and AMD 64 bit processors, This is most likely the one you need (Core2 duo, i5, i7, Xeon, etc...)

Multi-Arch = A larger CD download with 32bit and 64bit on the same CD.

Net Install = A smaller CD download that depends on the internet to complete the install.


The links above get old and retired\archived very quickly, with each new revision.

If the links above die, simply navigate to the homepage, Stable Downloads Section.



* Again you only need CD #1 ,  if there is more than one to choose from


Linux Download




* Again due to upgrades some versions may no longer be available, if you run into this, just go to and

find the stable section, and find the newer link.



Before you begin the install… Remove any unwanted \ unneeded hardware.

such as zip drives, sound cards, etc…



Disable any useless BIOS options, such as com ports, integrated sound cards, etc…

Disable any Keyboard or Mouse warnings

Disable any power management features

If your BIOS has an OS option, choose “Other”




Remove all hard drives except the one you’re planning on being the OS drive.

This will ensure you do not format the wrong drive, and help make this how-to a little

smaller and easier to follow.


It is assumed you only have one network card at this point. If you have more than one, you

may want to remove or disable them. The second NIC wont be used until the

optional \ advanced sections, and can interfere with the eth numbering and

firewall setup pre optional \ advanced section.




Boot the computer off the Debian install CD, and choose “Install”



Debian Installer


Do not choose “Graphical Install” you don’t want that, just choose Install.



Everything in this how-to is case sensitive, so if I use lower-case, then use lower-case.

If you see something in capital letters, make sure to use capitals.

Basically copy it exactly as you see it.


Choose your Language


Choose your Country


keyboard layout



Computer Name


Choose a unique name for the computer, I did    deb32server1

To me that means, Debian, 32bit, Server, first one of several


Think of it as your computers first name, and on the next page we will set the last name.


You can make something up, we will be referring to this computer by its IP address anyway

so the name is somewhat meaningless, as long as the name is unique, so that you don’t have

a same name conflict with another computer on your network.


You can even use       deb32server1      just like I did


This is private to your network, it doesn’t matter if you copy me exactly

it may even help make the how-to a little easier to follow.

Local Domain Name


Choose a domain name for the computer, I did    diy.lan


Which to me means,   Do It Yourself  .   Local Area Network


You can make something up. It’s almost like a last name for your computers.

It’s totally private to your network. But just like your family, you’re going to want to have all the same

last name on all your computers.


Which makes this computers full name

Which to me means

Debian, 32bit, Server, first one of several, on a custom do it yourself Local Network


We will be referring to this computer by its IP address for now anyway, so this

isn’t too important at this point.




Much later on in the how-to, when we setup a Local Dynamic DNS server

(which is optional and advanced) you might find it easier to follow

the how-to, if you also use diy.lan


It doesn’t have to end with    .lan   you could make something up.

I just think it will help the flow of the how-to if you chose something ending in .lan



Time Zone


Choose your time zone



Partition Disk


Choose  “Guided – use entire disk”


Disk Partition


If you removed all the other hard-drives pre install, you should only see one option here.


All files in one partition


Choose   “All files in one partition”


Write changes to disk


Confirm Partition Scheme





root password


Choose a password for the account named root  (choose a very strong password here)


Users and Passwords


Created a second user, so you don’t always have to login as root.

Here I used the name    wood


You can use anything you want     


non root


I like to keep the username the same as the full name, this can help avoid confusion later on.


Choose a password


Choose a password for the account you just created 

(Choose a very strong password here, this user will have more rights than a normal user)



Disk 2


Network Mirror


Archive Mirror Country


Archive Mirror Server



HTTP Proxy


You should be able to leave this blank, and click “Continue”

If you have a proxy, chances are you would know what to do here anyway.





Linux Packages


Using the Space bar on your keyboard, un-check Desktop environment.

Make sure to un-check everything. With the exception of Standard system


We will install most of these things later in the how-to, don’t be tempted to click on them now.

And most importantly, do not choose Desktop environment.

This is a server how-to, not a desktop how-to.





Installation Complete



Remove the CD, and press Continue


Grub Menu


Did you see this screen? If not you probably didn’t remove the CD.

Make sure you are not booting off the CD anymore.


Linux Shell


If everything goes right, you should get a lot of text on the screen

and finally a login prompt like this one.


Please ignore that mine says     debian-1   at the bottom left. I am just at a different computer today.

If you were expecting that to say; deb32server1  login :      you are right

I am just at a different computer today.


Your screen will say your computer name, followed by a login prompt


This won’t interrupt the flow of anything at this point


Login Prompt


Login as username  root   with the password you specified during setup.

*Note, if you can’t login as root, login as your username, and type     sudo     before every command



Command Line


Type    vim /etc/apt/sources.list


Then hit the Enter key on your keyboard


(there is always a space after vim)


*Note, if you get an error, some versions of Linux dont come with vim, you can install it by typing    apt-get install vim


Text Editor


* If you don’t see anything on the screen (the contents of that file) then you typed something wrong.

** When you see the screen above, you know you typed it correctly


Press the insert key on your keyboard to allow you to type inside the file


Use the # symbol to comment out un-wanted lines


Comment out any lines that have “cdrom” in them



When you are finished press the Esc key on your keyboard, this will take you out of insert mode

and should move your cursor to the bottom left of the screen


 Then press the  :   key

You should see this symbol on the bottom left of your screen


 Then type  wq!

So that it reads   :wq!   In the bottom left corner of the screen


Save and Exit


Then press the enter key


It should then save the changes to that file, and exit you back to the command prompt.

It will say something like “filename written”


You won’t need to use that vim editor very often after we complete the setup. But if you’re stuck

on it and can’t get it to work. Do a Google search on “Linux vim editor” there should be some

good examples that will help you. Only do this if you’re stuck, you don't need to master vim to complete this guide.


apt-get update


What that did was tell the computer to not use the CD when looking for software.


Now run    apt-get update   so it will both realize your cd-rom changes, and go look on

the internet for the newest software sources. This only looks for new sources

it doesn’t actually go get them.


(there is always a space after apt-get)


APT Repositories


As long as you’re connected to the internet, you should see something like this above.


We continue to use vim a couple more times in this guide but many Linux distributions are now using nano.

We continue to use vim but here is a really brief example of nano if you would like to try it.

Type    nano /etc/apt/sources.list


Unlike vim, nano doesn't require you to press the insert key to get started, nano is ready for input.


To exit nano without saving you hold down the control key on your keyboard (ctrl) and then press x

To save changes with nano you hold down the control key on your keyboard (ctrl) and then press o

Note that is an "o" as in oatmeal and not a zero. There are hints at the bottom of the nano screen to help you to remember.

When saving your given the option at the bottom of the screen to change the filename, don't.

Simply release the control key and press enter.

Either way when your ready to exit you hold down the control key on your keyboard (ctrl) and then press x


You can use whichever your most confortable with, most poeple find nano easier to remember, for a step by step install use vim


This next step is optional. After an    apt-get update   you will almost always want to

do an     apt-get dist-upgrade


That’s the command that actually goes out and installs the newest versions.


But… if you want your screens to match mine exactly, you might want to hold off on

this step until your further into the setup and more comfortable with the screens.


I will leave this as optional right now, and rest assured we will perform one later.

Newer is better, but doing it now could put you at a version that doesn’t match this how-to.

Pick your poison :- )


apt-get upgrade



If you have chosen to upgrade now, here is how.


Type   apt-get dist-upgrade    and it will go get any approved updates that are available for your computer


(there is always a space after apt-get)



If it finds something, you will probably be asked to type   Y    or   YES    and hit enter.


Either way, you’re ready for the next step.

Now we are going to install some packages (software)


Type    apt-get install samba samba-common-bin ssh openssl dnsutils apt-show-versions



apt-get install



(there is always a space after apt-get)

(there is a space between each installer above)

(this is the hard-way, later on in the how-to we will get into copying and pasting)


Type it word for word





It’s going to tell you that you need some additional installers, and it will prompt you to go get them.

When asked make sure you type   Y    for yes and hit enter.


*note, you do not have to specify whether you want 64 or 32 bit installers, apt-get will decide for you

based on your system. This is an excellent feature.



The install of Samba is going to ask you a few questions on screen. A GUI box will come up, without

any mouse support. So use the TAB key on your keyboard to move around it, and the enter key to

choose things like next, continue, and OK.


Samba Server



Enter the same name you did before.



I’m going to use            diy.lan





Choose “No”  to this



You are almost ready to remove the keyboard and the monitor. We just need to set a static IP address

(or reserve a DHCP one)


If you type   ifconfig   and hit enter, it will show your current eth0 (Ethernet) IP address

(inet addr) as well as your MAC address (HWadrr)





You should see something like this.




If you’re familiar with setting up DHCP reservations from your router, you just need the MAC address

and you will know what to do from here.


If you’re not familiar with how to do that and just want to set a local static IP address, here is how.

Note, later on in this how-to it’s assumed you have a static IP address, so you may want to setup a

static address, even if you know how to do DHCP reservations.


First chose an IP address that isn’t part of your DHCP scope. For example, if your router is handing out

IP addresses in a pool of – through - then you wouldn’t want to use any of those

available 98 address’s in that pool (.2 through .100)


But you could safely choose anything above that pool, such as,, etc… 

just as long as it isn’t in the range of the available IP addresses to the DHCP server pool of addresses.


inet addr


If you don’t know how to check what IP range your router is handing out, just add 100 to the IP address

you currently have. This is sloppy, but will most likely work. For example, if you automatically got an

IP address of it’s probably safe to set a static address of, as most address

pools are not larger than 100 (100 higher than what you currently have) This is sloppy, but should work

if this all sounds French to you.


Giving this a lot of extra thought can help with future problems, for example on my network

anything above a .100 address means it’s a server or printer of some kind. Anything above .200

means its wireless. Setting up meaning to these can be of great importance later on, as your

network starts to grow.


If all those numbers look French to you, just remember to make sure you give your Linux box an IP

address that is on your same network. For example


If you’re on a network


address   (replace 111 with the IP address you want)







If you’re on a network


address   (replace 111 with the IP address you want)






If you’re on a network


address   (replace 111 with the IP address you want)







If you’re on a network


address   (replace 111 with the IP address you want)








To enter a static IP address type    vim /etc/network/interfaces

(there is a space after vim)


You should see something like this





Find the area that says

   iface eth0 inet dhcp 


hit the   insert   button on your keyboard


Change it to say static instead of “dhcp” and add the following lines  


iface eth0 inet static

            address   #(the IP address you want)








That’s it, you just have to tell the editor to save it


Press   esc   on your keyboard, this should drop your cursor to the bottom left of the screen.


Type     :wq!

Press enter on your keyboard


If you did it correctly it should say something like “filename written”


And return you to the command prompt.






Once you are back at the command prompt, type  reboot  and hit enter on your keyboard.


Your system should reboot, and load up the new ip address.


After you login again as username  root  , type   ifconfig    and make sure   eth0   is getting

the IP address you specified.


IP Address



Now go to different computer, running Windows, and make sure you can ping that IP address.

Type    ping  (or whatever IP address you gave it)



If you’re not familiar with ping on a Windows machine. Just click on the start button

and type   cmd





In the black DOS like window, type     ping 





Make sure it replies back from the IP you’re pinging. If it comes back saying something like

“Destination Unreachable” go back and figure out what’s wrong.


Look for typos

Maybe your network card is eth1, and not eth0

Don’t continue with the how-to until it replies.



Now go back to the Linux box, and make sure you’re connected to the internet

try to ping


It should reply back something like this, the numbers don’t really matter, just make sure its replying.





You can hit control + c on your keyboard to make it stop pinging


That’s the Ctrl key and the C key, hold down Ctrl and press the C key


If it replies, you’re connected to the internet


If it doesn’t reply, check your internet connection.


Make sure in your /etc/network/interfaces file, the IP address of your “gateway” is the same

IP address as your router.


If you have checked everything, and determined you are having a DNS issue.


And that your Linux box is the only computer having this issue



You can edit the file /etc/resolv.conf   by typing  

vim /etc/resolv.conf  


And add some name servers



You should see something like this





I got these numbers from


They provide some awesome name servers. Another good one is OpenDNS 




And just like before, to save and exit its









Or you can use the name-servers (DNS servers) from your ISP, that you’re actually paying for.

To figure out what your name-servers are from your ISP, launch another cmd window from

your Windows computer, and type    ipconfig /all



ipconfig /all 



Look towards the bottom, for DNS servers, and use those IP addresses as

your nameservers in /etc/resolv.conf


DNS Servers



Once you can ping your Linux box, and your Linux box can ping



You can go back over to your Linux box and shutdown by typing    halt –p  


It will turn off, and you can remove the monitor and keyboard.


You may want to just remove the keyboard, and leave the monitor plugged in for now.

So you can watch it power on \ boot up the first time, and make sure your computer isn’t complaining

that it can’t find the keyboard. If it complains about the keyboard, go into your BIOS and tell it not to

warn about missing keyboards or mice.


Once you sure it will boot up without a keyboard, you can go ahead and remove the monitor.


Fight any temptation to plug the monitor and keyboard back in. doing so will hurt your learning

experience, as it’s no longer needed. We will be accessing and managing the computer remotely from

here on. So the rest of this how to will be completed remotely, using a Windows computer.


You will be using two forms of remote management tools to access the Linux server. Putty is one of them

and Webmin is the other. You will be using Webmin most of the time, until you get more familiar

with Putty.


You can download Putty from 



*Due to upgrades some versions may no longer be available, if you run into this just use the links to go to 

and find the newer link.



You have to choose save, not “run” or “open” It isn’t an installer, it’s a self contained exe, and has

to be saved to the hard drive before running.


We will use Putty to install Webmin onto the Linux box. Then you won’t need Putty again until

much later in the how-to.


Launch Putty, and enter the IP address of the Linux box.





You should see something like this


Putty Configuration


Everything else is already configured correctly, just enter the IP address of the Linux box and

click “Open”


The very first time you connect, it will ask you if you want it to remember that you trust this computer

you can say yes.


If successful you should get a black box asking you to login. Login as username root.

(We will continue to use root until the setup is complete)



You should see something like this


Putty Session


If your root password doesn't work and your sure you typed it coreectly this most likely means you need to edit the following configuration file.

Which unfortuantley will require you to hookup your montior and keyboard again.

Using the keyboard and monitor on your server (hopefully for the very last time) type the following command

Type    vim /etc/ssh/sshd_config


Or if you have found you perfer nano, you can use this command, whichever you are more comfortable with.


Type    nano /etc/ssh/sshd_config


Scroll down using the down arrow key and find the line that says something like "PermitRootLogin No" or "PermitRootLogin without-password"

Find that line and change it to just say     PermitRootLogin Yes

Save the changes and reboot your server, this will fix that password problem.




Try again to access your server remotley via Putty. If successful remove the monitor and keyboard from the server.



Once logged in via Putty, type  or copy and paste the following commands


To paste something into a Putty window, all you have to do is right-click


Once it is pasted into the Putty window, press the enter key on your keyboard. Your Linux box

will run the pasted or typed commands.

Say yes if prompted.



Paste in the following command, then press enter.


apt-get install apache2 vsftpd quota


Paste in the following command, then press enter.


apt-get install rssh etherwake ntpdate libio-socket-ssl-perl


Paste in the following command, then press enter.


apt-get install monit ethtool rsync




This should take awhile to complete, after it finishes


Type the following command


mkdir /options       and hit enter on your keyboard




This stands for  “make directory” and will make a folder called options on the root of the hard drive.

We are going to use this folder to download the webmin installer into.


Type    cd /options     and hit enter on your keyboard


This will put you into the options folder


Change Directory


Next we will use the    wget     command to download the webmin installer.

wget  + the full path to the location of a website file, will download that file




Type or paste          wget


and hit enter on your keyboard.


(there is a space after wget)


*Due to upgrades some versions may no longer be available, if you run into this just go to and find the newer link by right-clicking the download link, and viewing its properties.


Link address




Once you have the http path to the Webmin installer, type    wget http://xxxxxxxxxxxxxxxxxxx    and hit enter






You should see it start to download the file, and will show you the download progress.


You should see something like this


Downloading via command line


It will download it to the current folder that you’re in, so it just downloaded it to the /options folder


When it finishes downloading, type   dpkg –i webmin_1.690_all.deb      and hit enter on your keyboard.      or     dpkg -i webmin_x.xxx_all.deb (if new name or version)


Or dpkg –i /options/webmin_1.690_all.deb     or     dpkg –i /options/webmin_x.xxx_all.deb  (if new name or version)


That stands for Debian Package – Install, and will install the Webmin program packaged for Debian.


If it tells you you’re missing something, just type  


apt-get -f install



apt-get install -f


and hit enter on your keyboard. It will then go get anything it needs to finsh the install.


*If that doesnt work, try typing in everything. apt-get install  “all those things above it says your missing”  and hit enter on your keyboard.


It will remember you were trying to install Webmin, and will finish installing it after any missing packages are installed.


Still cant get Webmin to install? Try watching the video


You should now have Webmin installed, and can exit out of Putty

by typing   exit  or   logout


To login to Webmin, open Internet Explorer or Firefox and type your IP address, followed by :10000

proceeded by https://


https://the-ipaddress-of your-linux-box:10000


For example if your Linux box IP address is   you would type


*Note, If you have been following along, you probably expect my IP address to be 

or (your right)

I’m just at a different office and server today.


In the example below, this Linux box is now      so I  need to type


You would type the same thing, but with your IP address instead.


Webmin URL



You will probably get a warning telling you not to trust the webpage. You can ignore this, it’s completely

secure. It’s just your using a self signed ssl certificate, and not a paid one. This is still completely

secure from within your internal network.



If you have problems with this later on, switch to Firefox. With Firefox you can choose to

save the certificate so you’re not always prompted. In Internet Explorer you just have to

choose  “Continue to this Webpage” every time.



You should see something like this


SSL Warning




It’s safe, just click continue


You should get to a screen that looks like this





With all of your management tools are on the left. You can do almost everything from here,

Webmin is an extremely powerful tool.


                                                                                                           Continue to Page 2 >

Site Navigation:       Home       Page1       Page2       Page3       Page4       Page5       Do more       Word of Mouth       Donate