DNS Server in Ubuntu / Debian

December 4, 2015 in Services

Local DNS Server in Ubuntu Debian

What is a DNS

DNS stands for Domain Name System and its a service that associates domain names with ip addresses. Let me try to explain this a bit more.Since you are reading this article it means that you have typed my domain name (www.allaboutlinux.eu) or you found that link on another website. but when you are typing www.allaboutlinux.eu, your computer is not really able to know where this website is hosted and of course  computers are only good with numbers. So your computer will ask the DNS server about a domain name and the DNS server will reply with an ip address. Then your computer will contact that ip and hopefully the server behind that ip will reply. Enough with that lets start with the setup of the DNS server.

What you will need:

bind9 will be used in this tutorial and this one is the most widely used DNS in the world. BIND stands for Berkeley Internet Name Domain and was initially a project of 4 graduate students at the Computer Research Group at the University of California, Berkeley. Lets say now now that i have my DNS server (the one that we create now) at, my sql server at "″, my Apache server at "″, my file server at "″, my router at "″ and my computer at all of them are at /24. so my network is working but i have to remember all the ips in order to connect to each server. and as my company growth i will have more servers and more workstations and that is making things more complicated. it would be easier if I had a way to connect to my sql server by just providing the name and not the ip and that is exactly what we will do here. Open a terminal and type the following commands.

sudo apt-get update

sudo apt-get install bind9

Now we need to define a name for our local zone. I will name this one "allaboutlinux.local" but you can choose whatever you want. more zones are also possible. All files that you will need to configure are in "/etc/bind/". lets define the new zone. Open the /etc/bind/named.conf.default-zones

sudo gedit /etc/bind/named.conf.default-zones

and add the following lines at the end of the document:


install latest Darktable in Debian 8

September 17, 2015 in software, Web Server

install Darktable in Debian 8

There is an easy way to install darktable in Debian by issuing the command "sudo apt-get install Darktable" but this one will install an old version of Darktable.
If you need the latest stable one then you need to follow those steps:
open a terminal and type:

sudo apt-get update

sudo apt-get build-dep darktable

sudo apt-get install libglew-dev libcanberra-gtk-module mesa-opencl-icd mesa-utils-extra

Now go to the official website http://www.darktable.org/ and download Darktable. you should get a file with a name like darktable-x.x.x.tar.xz where x is the version of Darktable.

go to Downloads directory and extract that file.

cd ~/Downloads/

tar xvf darktable-1.6.8.tar.xz

now go into darktable directory and start the build process by typing:

cd darktable


Then issue the following command to install it.


Install vmware player in Debian 8

September 17, 2015 in Web Server

Install vmware player in Debian 8


Download the installation files from vmware official site https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/ .

Now you should have a file like VMware-Player-12.0.0-2985596.x86_64.bundle.

open a terminal and execute it:

cd ~/Downloads/

chmod +x VMware-Player-12.0.0-2985596.x86_64.bundle

sudo ./VMware-Player-12.0.0-2985596.x86_64.bundle

This will bring up the installation dialog

You need to accept the agreement in order to continue. Take a look before you accept it.


Install Thunderbird in Debian 8

September 17, 2015 in software, Web Server

Install Thunderbird in Debian 8

Lets begin by downloading Thunderbird.

Visit the official Thunderbird site https://www.mozilla.org/thunderbird/ and click on Download button.

This will download a file like thunderbird-xx.x.x.tar.bz2 where "x" is the current version of Thunderbird.

Lets move that file in /usr directory.

sudo mv ~/Downloads/thunderbird-xx.x.x.tar.bz2 /usr/

Go to /usr and decompress Thunderbird:

cd /usr

sudo tar xvf thunderbird-xx.x.x.tar.bz2

Remove the compressed file:

sudo rm thunderbird-xx.x.x.tar.bz2

lets create the launcher. Press the "Super Key" (this one is located on your keyboard between "ctrl" and "alt". In windows world is also called "Windows Key")

then type "main menu"



Install Filezilla in Debian 8

September 16, 2015 in Web Server

Install Filezilla in Debian 8

Lets begin by downloading Filezilla.

Visit the official Filezilla site https://filezilla-project.org/download.php?type=client and click on Download button.

This will download a file like FileZilla_x.xx.x_x86_64-linux-gnu.tar.bz2 where "x" is the current version of Filezilla.

Lets move that file in /usr directory.

sudo mv ~/Downloads/FileZilla_x.xx.x_x86_64-linux-gnu.tar.bz2 /usr

Go to /usr and decompress filezilla:

cd /usr

sudo tar xvf FileZilla_x.xx.x_x86_64-linux-gnu.tar.bz2

Remove the compressed file:

sudo rm FileZilla_x.xx.x_x86_64-linux-gnu.tar.bz2

lets create the launcher. Press the "Super Key" (this one is located on your keyboard between "ctrl" and "alt". In windows world is also called "Windows Key")

then type "main menu"



fstab in ubuntu

July 11, 2013 in Web Server

How to configure fstab in Ubuntu

what is fstab?

In fstab or FileSystemTABle,you will be able to find informations regarding all your mount points in your computer.

In other words is a list of disks and partitions and also include information regarding where they are mounted in your Operating System.

It maybe sounds a bit complicat right now but i think that you will be able to understand if you see an example.

I will post here an fstab file (you can find yours under /etc/fstab)


# <file system> <dir>         <type> <options>       <dump> <pass>
/dev/sda1         /                   ext4      defaults             1           1
/dev/sda2        /usr              ext4      defaults              1           1

/dev/sda4        /home         ext4       defaults             0            0
/dev/sda5         swap          swap    defaults              0           0
/dev/sdc1         /data2         ext4      defaults,auto     0           2
/dev/sdb1         /data            auto     defaults,auto     0           2

Lets check this table:

on the first column:

Here you can find informations regarding the hard drives and partitions. In this computer there are 3 Hard Drives sda1, sda2, sda3 . On the first hard drive the OS is installed and the other 2 hdds are there for some additional storage. The first hard drive is divided into partitions but the other hard drives are not in this example.

On the second column:

Here you can see where in your file system are mounted your hard drives and your partitions

On the third column:

You can specify here what is the file system of your partitions. Some of the options are: ext2, ext3, ext4, nfs, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap, and auto. the auto   is my favourite because in that mode you let the O.S. decide what kind of file system is your partition. This is very useful for CD and DVD ROMS.

On the forth Column:

Here you can specify how the system will mount your drives and partitions. You can add more than 1 option with ","

auto -- file system will mount automatically at boot.

noauto -- the filesystem is mounted only when you want to mount it (you can the mount command)

exec -- allow the execution binaries that are on that partition (default).

noexec -- do not allow binaries to be executed on the filesystem.

ro -- mount the filesystem read only.

rw -- mount the filesystem read-write.

user -- permit any user to mount the filesystem

nouser -- only allow root to mount the filesystem (default).

suid -- allow the operation of suid, and sgid bits.

nosuid -- block the operation of suid, and sgid bits.

noatime -- do not update inode access times on the filesystem. Can help performance.

nodiratime -- do not update directory inode access times on the filesystem. Can help performance.

relatime -- update inode access times relative to modify or change time. Access time is only updated if the previous access time was earlier than the current modify or change time (similar to noatime, but doesn’t break mutt or other applications that need to know if a file has been read since the last time it was modified). Can help performance.

sync -- I/O should be done synchronously.

async -- I/O should be done asynchronously.

defaults -- this is the most used and it includes the default mount settings (equivalent to rw,suid,dev,exec,auto,nouser,async). I also like this one 😉

Fifth Column

This is where you tell to dump utility if it needs to be backuped or not. if its 0 the dump will ignore this one. if it is 1 the dump will include this drive in the backup process.

Sixth Column.

this is the priority on check disk and can be 0,1,2. the root file system must have 1 and that means high priority on check. the other can be 0 no check or 2 check after file system.


Install Google Chrome in Ubuntu 13.04

April 28, 2013 in software, Web Server

Google Chrome in Ubuntu



Download this package from here (right click and save link as…)and install it with Ubuntu Software Center or in Terminal:

navigate to the directory where the package is:

cd ~/Downloads

sudo dpkg -i libudev0_175-0ubuntu19_i386.deb


Install chrome:


Now just go to the following link:

http://www.google.com/chrome and download the chrome package.

then install it with Ubuntu Software center or from the Terminal like before.

Enjoy the Google Chrome


Manage Cisco Switch / Router from Linux

April 14, 2013 in Services, Web Server

Connect your Cisco Switch / Router on Ubuntu

Requirements for Configure a Cisco device from Console port:

A Host machine with your preferred O.S. In this case I’m using an Ubuntu 12.04 LTS.

A serial port in your computer motherboard or a USB to RS232(Serial) Converter.

A text based terminal emulation (i use minicom in this example)

Its also useful to install a TFTP server on your machine if you want to copy file from or to your Cisco switch / Router. I choose to use the tftpd-hpa

Check for active Serial ports on Linux:

Before we proceed we need to check all the available Serial ports on your machine and write down the port name because we will need it for configuring minicom. Open a terminal and type :


dmesg |grep tty


In my case i have a pl2303 USB to Serial Converter and the name of this device is "ttyUSB0″


How to Install Samba Server on Ubuntu

April 7, 2013 in Services

Installing Samba on Ubuntu

What is samba?

Samba is an easy way to share files over Linux And Windows environment. Samba is presented by samba.org and is an Open Source/Free Software suite that provides seamless file and print services to SMB/CIFS clients.

Installing Samba.

lets update first the repositories.

open a terminal and type the following :

sudo apt-get update

now install samba

sudo apt-get install samba

now lets edit the configuration file of samba, but before that lets backup the initial configuration file.

cd /etc/samba/

sudo mv smb.conf backsmb.conf

Setup public folder:

First we will create the configuration for a share folder accessible from everyone without any user need it

sudo nano smb.conf

for that add the following to this file:

workgroup = Workgroup
server string = My Samba Share %v
security = user
map to guest = bad user
dns proxy = no
comment = This is a folder accessible from everyone
path = /sharefolder
browsable = yes
guest ok = yes
read only = no
create mask = 0755

next we need to create the directory that will host the share folder and change the user permissions


Apache load balancing and failover

October 5, 2012 in Web Server

Apache load balancing and failover with pound

What is server load balancing?

Load balancing is a way to split all the income requests, to more than 2 servers. You must have a load balancing when you have a lot of income requests that a server can not handle. If you have for example a web site with a lot of visitors that a single server will not be able to handle, you must split the traffic to 2 or more web servers.  In this tutorial i will use 2 web servers and a load balancing server to redirect the http request.

What is server failover?

If you have a web site in a web server and you want for example to close this server for maintenance reasons or if your server due to a technical reason stop operating, your website will be offline until you fix this problem! Fail over is a way to automatically redirect the incoming requests for your website to another web server.

In this tutorial you will find an easy way to load balancing and failover using pound. Pound is an open source reverse proxy that can handle load balancing and failover with a strong emphasis in security.

Lets say that you have a static ip (i will use a non-existing IP, a domain name (allaboutlinux.eu) for your website, a webserver (with internal IP and a router (configured to redirect all the incoming requests for port 80 to If you have all the above its easy to create a public website hosted on your webserver. But this server has no failover or load balancing since its a single server.


If you need failover and load balancing you will need one more server with a replica of your website and a server that will handle the load balancing and fail over. Lets start creating the Pound server!