7 Create a Linux Server
Jacob Christensen and Mathew J. Heath Van Horn, PhD
The Linux operating system has been increasing in popularity for many reasons. Most Linux platforms are free and open-source with very active development communities. Linux is also very reliable in that it often does not require reboots when something goes wrong. Furthermore, Linux is very customizable so only the features that are required are installed. A bare-bones Linux distribution can run on as little as 58MB of RAM! Finally, most applications on Linux are free and open-source.

Many people are reluctant to use Linux because it typically uses a command-line interface (CLI) rather than a graphical user interface (GUI) like Windows or macOS. However, all those easy-to-use images require a lot of RAM and CPU power, so using CLI allows the operating system to focus on the essentials. We use Linux in the GNS3 environment because it requires very few hardware resources. This allows us to build complex enterprise networks without overloading our hosting machine. This lab will help you download, install, and configure a Ubuntu Linux Server for use in a GNS3 environment.
TIME: 45 minutes not including download
Learning Objectives
- Successfully download, install, and run Ubuntu Server in a GNS3 environment
- Optional installs for later labs
-
- Phase II – DHCP Server – KEA
- Phase III – DNS Server – BIND9
- Phase IV – Text-Based Web Browser – w3m
- Phase V – GUI – LXDE Desktop
- Phase VI – Web Hosting Service – Apache2
-
Prerequisites
Deliverables
- None – this is a preparatory lab that supports other labs in this book
Resources
- Download Ubuntu Server
Contributors and Testers
- Kyle Wheaton, Cybersecurity Student, ERAU-Prescott
Phase I – Download and Installation
Installing a Linux Server is pretty straightforward. We will use the Ubuntu Linux distribution due to its extensive documentation and support. However, learners will find that other Linux distributions follow similar processes prescribed here.
Furthermore, various tools on the Ubuntu server will be used in part 2 of this book. It is highly recommended that you install all optional tools, as you may need them later.
If you have limited PC resources, we recommend skipping Phase V (installing the LXDE Desktop) and using the CLI interface instead.
-
- Download Ubuntu Server
- Start Oracle VirtualBox Manager
- Click on New
- Pick a name, for this example, we use something clever like “Ubuntu Server – no GUI”
- Use the dropdown menu to select the Ubuntu Server ISO image that you downloaded

Figure 1 – Create a new VM - Open the settings for “Set up unattended guest OS installation” and complete the following fields:
- User Name (cannot use spaces)
- password
- confirm password
- Host Name (cannot use spaces or underscores)
- Click on “Install Guest Additions” – If you installed VirtualBox guest additions

Figure 2 – Unattended Guest OS settings - Open the settings for “Specify virtual hardware” and complete the following fields:
- You can leave the hardware on its defaults for now and adjust them for specific uses later

Figure 3 – Hardware Settings
- You can leave the hardware on its defaults for now and adjust them for specific uses later
- Open the settings for “Specify virtual hard disk” and complete the following fields:
- Disk size will vary based on your needs:
- 25 GB (default) is good for general use and saving space on your hard drive
- 50 GB is necessary to install a GUI
- Anything larger is based on need. We warn against making a large one-size-fits-all image. After all, if you add everything but only need one function, you will have a server at 100GB, then another at 100GB, and another at 100GB…

Figure 4 – New virtual hard disk settings.
- Disk size will vary based on your needs:
- Click on Finish
- The Ubuntu Server should start automatically since we selected an unattended install. It will take a few minutes.
NOTE: If you want to manually install, read the instructions
- When the VM starts, log in using the credentials you created earlier
NOTE: If you are new to Linux, the password cursor does not move. This is a security feature that masks the number of characters in the password. Anyone who shoulder surfs can accelerate their password brute-force efforts by knowing the password length.
- You may get an error at the end of the installation. Just reboot the VM, and it should clear

Figure 5 – possible error - Use Chapter 6 to add the Ubuntu Server to the GNS3 Working Environment
Phase II – Install DHCP Server – Kea (Optional)
These are the instructions for installing Kea as the DHCP server, since isc-dhcp is no longer supported.
- At the terminal prompt, type
sudo apt install kea
- On the Kea password screen, select ‘configured_password’

Figure 6 – select authentication - For the password, use one of your own or use the book’s default Security1
- Kea installation is now complete. If you need to configure Kea at this stage, type
sudo vi /etc/kea/kea-dhcp4.conf
- The instructions to configure Kea are included in the file
- You can also use the Kea tutorial to configure Kea
Phase III – Install DNS Server – BIND9 (Optional)
- Install software and additional utilities
sudo apt install -y bind9 dnsutils bind9-utils
- The Bind9 installation is now complete. If you need to configure Bind9 at this stage, we’ve included some commonly used commands:
- Modify the configuration file
sudo nano /etc/bind/named.conf.options
- Configure master zone declarations
sudo nano /etc/bind/named.conf.local
- Start DNS daemon
sudo systemctl start named
- To restart
sudo systemctl restart named
- To check status
sudo systemctl status named
- Modify the configuration file
Phase IV – Install a GUI (Optional)
There could be times when you want a graphical user interface (GUI). Ensure your Linux VM has at least 25GB of available space on the hard drive. Use the default settings whenever prompted.
- DO NOT install a GUI if you need a lightweight Linux server.
- Installing this GUI will enable your Ubuntu server to have a Web Browser, which is not needed for server applications. However, you may occasionally choose to use your server for dual purposes.
- Install the LXQT GUI
sudo apt install lxqt -y
- This can take a while

Figure Zzzzzz - Reboot the server
sudo reboot
- Upon restart, enter the credentials that you created earlier

Figure 7 – GUI install complete
Phase V – Install a web hosting service (Optional)
Creating a web hosting service isn’t complicated, but it involves several steps. A web server requires a platform, a database, and an interface. Follow these steps to set up a local web hosting service and create a test website that is accessible.
- Install a GUI on the Ubuntu Server by following the steps in Phase IV
- Open a terminal
- Install Apache HTTP Server
- Install Apache by typing
sudo apt install apache2
- Restart the Apache Server by typing
sudo service apache2 restart
- Test that it is running by opening Firefox and typing 127.0.0.1 in the address bar
- Check that it says it works

Figure 8 – Apache2 default page
- Install Apache by typing
- Install MySQL database management system
- From a terminal, install MySQL by typing
sudo apt install mysql-server
- Verify it was installed by viewing the version number by typing
sudo mysql -v
- Quit the MySQL interface prompt by typing
\q
- Set the password validation by typing
sudo mysql_secure_installation
- Press y and set the password strength according to your needs
- Press y to remove anonymous users
- Press y to disallow remote root login
- Keep the test database by pressing n
- Reload the privilege tables by pressing y
- Test the operability of mysql
- Start mysql by typing
sudo mysql -u root
- Create a database by typing
create database <name>;
- List all the databases by typing
show databases;
- Start mysql by typing
- You should have a screen that looks like

Figure 9 – mySQL is installed - To leave mysql and return back to the Ubuntu Server console, type
exit
- From a terminal, install MySQL by typing
- Install PHP web-server scripting language module
- From the terminal, install PHP by typing
sudo apt install php
- View the version by typing
php -v
- Make a check file by typing
sudo vi /var/www/html/info.php
- Type i and add the following information
<?php
phpinfo();
?> - Save the file by pressing the escape key followed by
:wq
- Type i and add the following information
- Restart the Apache service by typing
sudo service apache2 restart
- Test PHP by opening Firefox and typing the following into the web browser address bar 127.0.0.1/info.php
- You should get the following screen

Figure 10 – PHP Test Successful
- From the terminal, install PHP by typing
NOTE: if a service fails to start and you do not know why, try the following commands:
systemctl status <service>
Record the service’s process ID (PID) number.
journalctl _PID=<pid_number>
Look at the error logs closely, they often help locate the root of most issues!
End of Lab
