Mastering Linux Network Administration

4.3 (18 reviews total)
By Jay LaCroix
    What do you get with a Packt Subscription?

  • Instant access to this title and 7,500+ eBooks & Videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Setting up Your Environment

About this book

Linux is everywhere. Whether you run a home office, a small business, or manage enterprise systems, Linux can empower your network to perform at its very best. Armed with the advanced tools and best practice guidance of this practical guide, you'll be able to mold Linux networks to your will, empowering your systems and their users to take advantage of all that Linux-based networks have to offer.

Understand how Linux networks function and get to grips with essential tips and tricks to manage them - whether you're already managing a networks, or even just starting out. With Debian and CentOS as its source, this book will divulge all the details you need to manage a real Linux-based network. With detailed activities and instructions based on real-world scenarios, this book will be your guide to the exciting world of Linux networking.

Publication date:
November 2015


Chapter 1. Setting up Your Environment

Welcome to the world of Linux networking! This book will be your guide to perfecting your Linux network management skills. In this chapter, we will go over what's needed to get your environment up and running. We'll talk about several Linux distributions that are of interest to enterprise networking, the things to keep in mind while setting up an environment in your home or office so you can follow along with this book, and some best practices for setting up a few Linux installations that we'll use throughout this book. Basically, we'll lay the groundwork that you'll use to develop your skills.

In this chapter, we will cover:

  • Getting started

  • Distributions to consider

  • Physical machines versus virtual machines

  • Setting up and configuring VirtualBox

  • Acquiring and installing Debian 8

  • Acquiring and installing CentOS 7


Getting started

Network management in Linux is a fun, diverse field that is always changing. While the core components typically remain the same throughout the years (such as the TCP/IP protocol), how these services are managed have evolved in each generation, such as the rise of systemd. Linux is definitely exciting.

In this chapter, we'll see how to set up your environment. Depending on your experience level, you can skip directly to Chapter 2, Revisiting Linux Networking Basics. If you're already comfortable setting up a distribution or two on a physical or virtual machine, you already have the knowledge needed to get started. Here, we'll discuss how to install a few distributions of interest for the exercises in this book and some general pointers.

In a nutshell, the more Linux installations you have to work with, the better. While practicing networking concepts, it's a good idea to have as many nodes as possible, so you can test how your configuration changes, will affect your environment. If you are already comfortable installing Linux, feel free to set up some nodes and then I'll meet you in the next chapter.


Distributions to consider

There are over a hundred distributions of Linux in existence today. These include distributions geared specifically toward workstations or servers (or even both) and specialist distributions, which solve a specific task, such as Kali, Mythbuntu, and Clonezilla. Naturally, the first question one might have when studying a concept such as network administration is which distributions to start with.

Let's not focus on any one distribution. In the enterprise, no two data centers are same. Some organizations that utilize Linux might standardize on a specific distribution set (for example, Ubuntu and Ubuntu Server) though it's far more common to see a mix of one or more distributions in use. Distributions such as SUSE Enterprise Linux, Red Hat Enterprise Linux, Ubuntu Server, CentOS, and Debian are extremely common among servers within Linux-based networks. In my experience, I've seen Debian (as well as its derivatives) and Red Hat-based distributions in use most often.

You are encouraged to experiment and mix up whichever distributions you might favor. There are many candidates, and websites such as would give you a list of possibilities. Specifically for the sake of the examples in this book, CentOS and Debian are recommended for your use. In fact, these two distributions are wonderful places to start. You'll get a taste for two different forms of package management (rpm and deb packages) and familiarize yourself with two of the most popular distributions. Regarding Debian, quite a few distributions are based on it (Ubuntu, Linux Mint, and others). By learning how to manage a Debian installation, much of that knowledge would be transferable to other distributions should you consider switching. The same can be said about CentOS, which is based on Red Hat. Red Hat is a very popular distribution and since CentOS is created from its source, you're essentially learning it as well. While Fedora is more bleeding-edge than Red Hat or CentOS, much of the knowledge will be useful there as well; Fedora is popular as a workstation distribution.

The examples within this book were tested in both CentOS and Debian. Whenever an instruction is specific to a particular distribution, I will let you know. Having a CentOS and Debian installation will suit you for the purposes of this book, but feel free to experiment. As far as individual versions of these distributions are concerned, both CentOS 7 and Debian 8 were used. Install these in your environment or home lab.


Physical machines versus virtual machines

Seeing a section on virtual machines in a networking book may come as somewhat of a surprise. To be fair, it certainly is out of place. In addition to being an important enterprise platform, virtualization can also be an invaluable learning tool. In real networks, a technician may test a service in a virtual machine before rolling it out to the environment. For example, a new DNS server may begin life as a VM, and then once it is tested and proven, moved into an environment for use by the organization. One benefit of this approach is that you can take several snapshots as you develop the solution, and should you mess up and ruin it, you can just restore the snapshot and begin from a known-working state.

As far as mastering our Linux networking skills are concerned, virtual machines allow you to test how a procedure differs from one distribution to another. It's easy to bring up a virtual machine, and it's even easier to trash it. If you're limited by physical hardware, then virtual machines may offer you a chance to build a small virtual network to practice on. Of course, the trade-off with virtual machines is how much RAM they use. However, without a GUI, most Linux distributions will run quite comfortably with just 512 MB RAM. Nowadays, quite a few computers ship with 8 GB or even 16 GB RAM, so you should be able to run several VMs on even the budget computers available today.

To be fair, using virtual machines for purposes of practice and study isn't always ideal. In fact, when studying networking, physical equipment is usually preferred. While you can certainly practice setting up and serving a web page via Apache running in a VM, you wouldn't be able to practice racking switches and routers in such an environment. Whenever possible, try to use physical equipment. However, virtual machines offer a unique chance for you to create a small army of nodes to maintain on your network.

Of course, not everyone has a stack of Dell towers sitting in the closet, ready and waiting for a shiny new Linux install. Depending on what you have at your disposal, you may use all physical machines or a mix of physical and virtual. In this book, no assumptions are made about your inventory. The name of the game is to manage nodes, so set up as many as possible.

In this book, VirtualBox is discussed. However, it's by no means the only solution for creating virtual machines. There are other solutions as well, such as KVM, Xen, VMware and others. VirtualBox has the benefit of being free, open source, and cross-platform (it's available for Linux, Mac OS X, and Windows), so there's a good chance it will work in your environment. In most cases, it's even easier to set up than KVM or Xen (but perhaps not nearly as cool). You don't have to use VirtualBox (or even VMs at all, for that matter) in order to follow along with this book. Use whatever solution you prefer. In this book, I try not to limit the instructions to any one specific solution, so the content works for as many people as possible.


Setting up and configuring VirtualBox

If you've decided to use VirtualBox in your environment (either for studying, testing distributions, or evaluating network services before implementation), we will set up our VirtualBox host in this activity.

Acquiring VirtualBox

Downloading and installing VirtualBox is actually fairly straightforward, but each platform has its unique quirks. In Windows, the initial installation is simply a matter of navigating to the following site and downloading the setup file and running through the installation wizard:

After installation, all you would need to do is skip to the Downloading and installing the Extension Pack section of this chapter. Installing on Mac OS X is also straightforward.

For Linux, there are several methods to install VirtualBox. One way is to use your package manager, if your distribution already has it available in its repositories. Unfortunately, depending on the version of your distribution, the version of VirtualBox that may be included is very likely to be out of date. For example, Debian typically contains older packages in its repositories, but bleeding-edge distributions such as Arch are more likely to contain the latest and best.

Perhaps a better way of acquiring VirtualBox is to import the repositories that VirtualBox itself provides into your system. The following URL has a list of Debian repositories and even a method of adding a repository for RPM-based distributions (Fedora, Red Hat, and so on):

For example, using the instructions on the page as a guide, we can run through the following procedure on a Debian-based system. However, Oracle may change their instructions and repository listing at any time; always consult the previous URL before installation to see if the procedure has changed.

To verify that we will add the correct version, we need to determine which repository to use. This differs based on which distribution you're running, so definitely consult the documentation on the VirtualBox site to ensure you're importing the correct repository.

For Debian 8 "Jessie", we would use the following:

deb jessie contrib

To add this repository to our Debian system, we would use the following command:

# echo "deb jessie contrib" > /etc/apt/sources.list.d/virtualbox.list

Then, we can add the public key for the repository with the following command:

# wget -q -O- | apt-key add -

From now on, we can find Oracle's VirtualBox package in our repositories and install it. To do so, let's first update our package listing with the following command (as root):

# apt-get update

Then install VirtualBox with the following command:

# apt-get install dkms virtualbox-4.3


This same procedure for installation will work for Ubuntu as well, as long as you choose the appropriate matching repository.

For distributions such as Fedora, Red Hat Enterprise Linux (RHEL) and openSUSE, Oracle provides similar instructions.

The public key can be downloaded via the following command:

# wget -q -O- | rpm --import -

In order to add the repository to a Fedora system, execute the following command:

# wget -P /etc/yum/repos.d/

After adding the repository, VirtualBox can be installed with the following command:

# yum install VirtualBox-4.3

In addition, instructions for OpenSUSE and RHEL are also available on the VirtualBox website. See the VirtualBox website for more details at

Downloading and installing the Extension Pack

Oracle offers an Extension Pack, which enables USB support as well as support for Preboot Execution Environment (PXE) booting. You may or may not need these features. If you think you would benefit from being able to insert a flash drive on your host PC and accessing it from within your VM, it's probably a good idea to install the pack.


The extension pack isn't built-in to VirtualBox due to licensing issues. Feel free to consult the VirtualBox license should you wish to learn more.

The installation procedure for the extension pack is mostly the same, regardless of whether your host computer is running Linux, Windows, or Mac OS X. However, there is one added step if your host is running Linux, which is to add your user account to the vboxusers group.

  1. When you first install VirtualBox, it should have created this group. To verify, execute the following command:

    cat /etc/group |grep vboxusers
  2. You should see an output similar to the following:

  3. If you don't see the output, create the group with the following command:

    # groupadd vboxusers
  4. Then, add yourself to that group:

    # usermod -aG vboxusers yourusername


You'll need to log out and then log in before adding yourself to the vboxusers group takes effect.

Now, you're ready to install the extension pack. Again, this procedure should be the same regardless of your underlying operating system. First, download the Extension Pack from the following URL and save it locally:

After downloading, follow the next steps:

  1. Open VirtualBox and go to File | Preferences....

    Accessing the file menu in VirtualBox

  2. Next, click on Extensions and then click on the green triangle icon on the right-hand side.

    VirtualBox settings

  3. Select the extension pack that you downloaded earlier and click on Open.

    Extension pack selection

  4. You'll then be asked to confirm the installation. Click on Install.

    Confirmation of extension pack installation

  5. The VirtualBox license agreement will be displayed. Feel free to check it. Then, scroll to the bottom and click on I Agree to confirm it.

    VirtualBox license agreement

  6. If you're running Linux, you may be asked for the root or sudo password. If you do, enter it and continue. After authenticating, you should see confirmation that you've successfully installed the extension pack.

    Confirmation of successfully installing the VirtualBox extension pack

After this procedure, VirtualBox will be up and running on your machine.


In some distributions, the password prompt may not appear, causing the installation of the extension pack to fail. If that happens, run VirtualBox with root privileges using the following command:

sudo VirtualBox

Then, try installing the extension pack again. Once finished, close VirtualBox and then reopen it as a normal user before continuing.


Acquiring and installing Debian 8

In order to install Debian, we first need to acquire an ISO image file. To do that, go the following URL:

There will be several options for download, but the netinst ISO will be our target. For most computers, the 64-bit (amd64) version should suffice—unless you know for sure that your computer doesn't support 64-bit. The main difference between the netinst and the complete installation image is that the netinst version will download what it needs from Debian's servers over the Internet. As long as you're not within a bandwidth-constrained area, this should not be an issue.

Of course, the ISO file by itself is not useful unless you're attaching it to a virtual machine. If you are, then you're ready to go. If you're setting up a physical machine, you'll need to either create a bootable CD with a disc mastering utility of your choice, or create a bootable flash drive.


Because there is a multitude of different disc mastering utilities available, a complete walkthrough of how to create a bootable CD in your environment is not possible. In most cases, your utility should have an option to burn an ISO image in its menu. The disc will not function as Debian installation media if you simply create a data disc.

The steps for installing Debian 8 are as follows:

  1. In a Linux system, you can create a bootable Debian flash drive with the following command:

    # cp name-of-debian.iso /dev/sd? && sync
  2. Essentially, we're copying the downloaded ISO image directly to a flash drive. Of course, change the file name and target to what is relevant on your system. To determine the device node to use, execute the following command:

    # fdisk -l
  3. Within the output, you should see the node designation of your flash drive. The output of that command will look like this:

    Device     Boot Start      End  Sectors  Size Id Type
    /dev/sdb1        2048 60563455 60561408 28.9G 83 Linux
  4. Then, /dev/sdb would be the device to use to create the flash drive. Putting it all together, we would create the flash drive with the following command:

    # cp name-of-debian.iso /dev/sdb && sync


    Downloading the example code

    You can download the example code files from your account at for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit and register to have the files e-mailed directly to you.

  5. Once you have created bootable media, insert it into your computer and follow your computer's specific directives to access the boot menu and select your Debian media. After it finishes loading, the first screen will ask you to select your language. Choose your language, then click on Continue.

    The Debian installer's language selection screen

  6. After selecting your language, the next screen will have you choose your location. Select it and then click on Continue.

    Language selection in the Debian installer

  7. Similarly, choose a keymap that fits your keyboard and click on Continue.

    The Debian installer's keyboard selection screen

  8. At this point, the Debian installer will detect your hardware, and then allow you to configure your host name. For this option, choose a unique host name that will identify your device on the network. When finished, click on Continue.

    Choosing a hostname during installation of Debian

  9. The installer will then ask for your domain name. Enter your domain name here if you have one; otherwise, just leave it blank. Click on Continue.

    Domain name configuration while installing Debian

  10. Next, you'll be asked to set a password for the root account. For this, you should create a unique (and preferably randomly generated) password. As you probably know, the root account has full access to the system. After setting the password, click on Continue.

    Root password entry during Debian installation

  11. In the next three screens, you'll set up your user account. First, you'll enter your first and last name, and then click on Continue.

    First screen of setting up primary user account

  12. Then, type in username and click on Continue.

    Creating a username

  13. The final portion of the user setup section will ask you to create a password. When done, click on Continue again.

    Setting the password for the primary user

  14. Next, Debian will try to use Network Time Protocol (NTP), if available, to configure your clock. Then, you'll be presented with a screen to select your time zone. Make sure your time zone is highlighted, and click on Continue.

    Configuring your location, for the time zone

  15. Now, we'll partition our disk. Feel free to partition your disk any way you want, as there are no partitioning requirements as far as this book is concerned. For the sake of this instruction, Guided - use entire disk, the default for Debian, is chosen. If you have a preferred partitioning scheme, feel free to use it. When finished, click on Continue.

    First screen of the partitioning portion of the Debian installation

  16. Next, you'll have to select the hard disk on which to install Debian. In this example, there is only one hard disk available in the VM that was used to capture the procedure. If you have more than one disk, select the appropriate disk for installation and click on Continue.

    Selecting the target disk for Debian

  17. In the next section, the Debian installer will ask if you would like to have a separate /home partition (recommended if you wish to retain files between installations), separate /home, /var, and /tmp partitions, or all files in one partition. This book has no partitioning requirements, so choose the one that best fits your preference. When you've made your selection, click on Continue.

    Disk partitioning selection

  18. Next, Debian will display a summary of the changes it's about to make. If these changes look good to you, ensure Finish partitioning and write changes to disk is highlighted and click on Continue.

    Partitioning overview

  19. Then, you'll have to confirm the details again. Select Yes and then click on Continue.

    Confirmation of changes to partitioning

  20. The base system will be installed next; this might take a little while depending on the speed of your computer and hard disk. Afterwards, you'll be presented with a screen where you'll select the country nearest you in order to set up Debian's package manager.

    Choosing a location for the package manager

  21. Next, you'll select a mirror for Debian's package archives. In most cases, the default selection is usually accurate. So unless it guessed incorrectly, leave the default selection as-is and click on Continue.

    Choosing a mirror for Debian's package archives

  22. In the next screen, Debian will give you a chance to configure an HTTP proxy, if you have one. If not, leave it blank.

    HTTP proxy configuration

  23. Next, Debian will configure your package manager and update your sources. After a few progress bars scroll by, you'll see a new screen asking you whether or not you'd like to submit usage statistics to Debian. This information is helpful to Debian's developers, but it's not required. Make your choice and click on Continue.

    Choosing whether to provide anonymous statistics to Debian developers

    The next screen will offer us additional packages that we can add to our system, but these aren't required (it's a good idea to leave standard system utilities enabled, though). Most of the options presented allow us to choose a desktop environment, but you are not required to install one. Typically, servers are not installed with a desktop environment. However, if you are setting up a workstation PC, it may be of benefit.

    • GNOME: It is the default desktop environment for Debian. GNOME is state of the art, and offers a unique paradigm for interacting with your computer. GNOME uses virtual workspaces heavily, which allows you to split your workflow between several desktops. Unfortunately, GNOME has relatively modest hardware acceleration requirements; this means if you don't have a modern video card, it won't function properly.

    • Xfce: It is a very lightweight alternative to GNOME, and it has been around for a long time. Xfce is great for computers with lower end processing capabilities. Nowadays, Xfce doesn't see much active development, so it doesn't change much. This means that it is more stable in quite a few cases, though it may not interest those who prefer something with modern features.

    • KDE: It is a modern desktop environment like GNOME, but it resembles the user interface of Windows. Like GNOME, KDE also has relatively modest hardware requirements, though not quite as bad as GNOME. KDE features the Dolphin file manager, which is respected by Linux users.

    • Cinnamon: It was originally created as a fork of GNOME, but it has evolved into its own desktop environment with little GNOME dependencies. Cinnamon offers a more traditional style of desktop, with the modern feel of GNOME.

    • MATE: It is a continuation of the older 2.x versions of GNOME. As such, MATE runs well on older machines and sees more development than Xfce. It may not be as stable as Xfce, but it is close.

    • LXDEL: It is also a good choice for older computers, and it is similar to Xfce but not as popular.

    Other than the desktop environment choice, it's recommended to select SSH server from this list. Web server can also be chosen, but you may as well wait until we come to the part of the book in which Apache is discussed, as we'll walk through the installation.

    Debian software selection

  24. Make your selections and then wait for the rest of the installation procedure to finish, as Debian installs the software you selected in the previous step. Then, it's time to configure GRUB. GRUB is an acronym for Grand Unified Bootloader and is necessary in order for us to boot our system. You'll be asked whether you'd like to install GRUB into the master boot record (which you more than likely will want to do), so ensure the Yes radio box is checked and click on Continue.

    GRUB configuration

  25. Next, select a target on which GRUB should be installed. In most cases, this will be /dev/sda.

    GRUB target selection

  26. Whew! We are finally ready to reboot into our new Debian environment. Click on Continue one last time and we're off to the races!

    The final screen of the Debian installation process


Acquiring and installing CentOS 7

In this activity, we install CentOS 7 (which has far fewer steps than Debian). To download an ISO, navigate to the following URL:

The DVD ISO link should satisfy our needs.

Just like with the Debian walkthrough, we'll need to either create a bootable disc or flash drive to get the installation started. Unlike the Debian installer, now we need a DVD-R disc, as the image will be too large to fit onto a CD-R.

If you're installing via a flash drive, the following URL from the CentOS wiki describes the procedure:

After you boot from your installation media perform the following steps:

  1. You'll first see a screen asking you to select the language to be used during installation. Choose your language and click on Continue.

    Language selection during CentOS installation

  2. The next screen that appears is one of two main sections of the installation. The items shown here (DATE & TIME, KEYBOARD, LANGUAGE SUPPORT, INSTALLATION SOURCE, SOFTWARE SELECTION, INSTALLATION DESTINATION, and NETWORK & HOSTNAME) can be completed in any order. As you can see in the screenshot, only one section (INSTALLATION DESTINATION) is actually required. Basically, you can go through each section listed and complete its task and then click on Begin Installation when you're finished. If you choose not to complete a section, its defaults will be used.

    First main section of the CentOS installation procedure

  3. For LANGUAGE SUPPORT, you'll choose your language. When finished, click on the icon labeled Done on the top-left corner.

    Language selection

  4. Don't skip the NETWORK & HOSTNAME section. By default, networking isn't even enabled at all, so you can enable it by clicking on the toggle switch next to your interface. Near the bottom, you can type in the desired host name of your computer. When finished, click on Done.

    Networking configuration during the CentOS installation

  5. In the DATE & TIME section, you can set up your clock and location. Keep in mind that if you didn't enable your network interface in the NETWORK & HOSTNAME section, you'll be unable to utilize NTP.

    Date and time configuration

  6. Completing the INSTALLATION DESTINATION section is compulsory. Here, you will select which disk to install CentOS onto, as well as your partitioning scheme. In this walkthrough, we'll select a disk and keep the default partitions, but feel free to customize the partition scheme if you prefer.

    Disk configuration section of the CentOS installer

  7. By default, CentOS will be a Minimal Install. This means that there will be no graphical user interface, just the default packages. If you prefer, you can opt for a desktop environment such as GNOME or KDE by selecting the corresponding option.

    CentOS software selection

  8. After you click on Begin Installation, you'll be brought to the second main section of the installation procedure while CentOS installs itself onto your system in the background. This section is much smaller and has just two steps. We'll set our root password and create a standard user account.

    CentOS user configuration

  9. For the root password, choose something secure. A password meter will show the presumed strength of the password. Click on Done when finished.

    Root password entry

  10. Finally, we'll create a standard user. On this screen, we'll enter the values in the Full name and Username fields, and choose a strong value for Password. You can also tick the box labeled Make this user administrator, if necessary.

    CentOS user creation

  11. Finally, when installation is complete, click on Reboot and we're all set.

    Confirmation of a completed CentOS installation

With that out of the way, feel free to set up as many Linux installations as you may need. In future chapters, we'll use these installations to configure networking and advance our knowledge.



In this chapter, we worked through setting up our environment. We discussed virtual machines and physical machines as network nodes, and we even set up a Debian and CentOS installation or two.

Now that we've set up our environment, it's time to dive in and get started. In Chapter 2, Revisiting Linux Networking Basics, we'll cover all the commands we'll need for our journey, for example, configuring network interfaces, manually connecting to networks, and setting up Network Manager. Stay tuned!

About the Author

  • Jay LaCroix

    Jay LaCroix is a technologist and open-source enthusiast, specializing in Linux. Jay currently works as a Senior Solutions Architect and holds a masters degree in Information Systems Technology Management from Capella University. In addition, Jay also has a YouTube channel, available at, where he posts instructional tutorial videos . He has also written Linux Mint Essentials and Mastering Linux Network Administration, also published by Packt Publishing.

    Browse publications by this author

Latest Reviews

(18 reviews total)
I haven't received my book yet.
Very easy to follow instruction unlike most Linux books
Quick turn around on purchase
Mastering Linux Network Administration
Unlock this book and the full library FREE for 7 days
Start now