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 generally uses a command line interface (CLI) instead of a graphical user interface (GUI) like Windows or Apple. 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 little in the way of 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.
Learning Objectives
- Successfully download, install, and run Ubuntu Server in a GNS3 environment
- Optional installs for later labs
-
- Phase II – DHCP Server – KIA
- Phase III – DHCP Server – isc-dhcp-server
- Phase IV – DNS Server – BIND9
- Phase V – Text-Based Web Browser – w3m
- Phase VI – GUI – Ubuntu Desktop
- Phase VII – Web Hosting Service – Apache2
-
Prerequisites
Deliverables
- None – this is a preparatory lab that supports other labs in this book
Resources
- Download Ubuntu Server https://ubuntu.com/download/server
Contributors and Testers
- Quinton D. Heath Van Horn, 7th Grade
- David Reese, Mathematics Student, SUNY Brockport
- Cody Shinkyu Park, Honeywell Software Engineer, ERAU-Prescott Alumni
- Evan Paddock, Cybersecurity Student, ERAU-Prescott
- Dante Rocca, Cybersecurity Student, ERAU-Prescott
- Sawyer Hansen, Cybersecurity Student, ERAU-Prescott
Phase I – Download and Installation
Installing Linux Server is pretty straightforward. We will use the Ubuntu distribution of Linux due to its expansive documentation and support structure. 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 of the optional tools in case you need them later.
- Download Ubuntu Server from https://ubuntu.com/download/server
- Start Oracle Virtual Box Manager
- Click on New (Figure 1)
- Pick a name, for this example, we use something clever like “Ubuntu Server”
- Use the dropdown menu to select the Ubuntu Server ISO that you downloaded
- Click Skip Unattended Installation IMPORTANT!
- Click Next
- You can leave the hardware on its defaults –> click next (Figure 2)
NOTE: If you are planning on installing the GUI interface you will need at least 50GB of hard disk storage in the next step.
- Leave the default Virtual Hard Disk settings –> click next (Figure 3)
- Review the summary and click on Finish
- Start the Ubuntu Server VM
- Use the arrow keys to Install Ubuntu Server (Figure 4)
- Use the arrow keys to select your language (Figure 5) and your keyboard
- Use the arrow keys to select Ubuntu Server and press done (Figure 6)
- Accept the default network connections and select Done (Figure 7)
- Enter a proxy address if you need one select Done (Figure 8)
- Enter an alternative Mirror if you know you have one, otherwise, just select Done (Figure 9)
- Use the default storage configurations and select Done for both screens (Figure 10)
- Confirm the action and select Continue (Figure 11)
- For the profile information, the following is recommended (Figure 12)
Your Name: student
Your Servers Name: ubuntu_server
Pick a username: student
Chose a password: Security1
- For the profile information, the following is recommended (Figure 12)
- There is no need to update to Ubuntu Pro, so skip it for now (Figure 13) and continue
- Select Install OpenSSH Server and continue (Figure 14)
- No snaps are needed – select done (Figure 15)
- Allow the installation and update to complete, then select Reboot Now (Figure 16)
- You might have to hit enter a couple of times depending on the way your VirtualBox is configured
- Login using the credentials you created earlier
NOTE: If you are new to Linux, you should know that the password cursor does not move. This is a security feature to mask how many characters the password is. Anyone shoulder surfing can accelerate their password brute force efforts by knowing the length of the password.
Phase II – Install DHCP Server – Kea (Optional)
These are the instructions to install Kea as the DHCP server because it is replacing isc-dhcp which is no longer supported. We found documentation limited, so for new learners, we recommend installing the isc-dhcp-server which has expansive examples on the web that new learners can refer to as needed.
- At the terminal prompt, type
sudo apt install kea
- Kea can be configured by typing
sudo vi /etc/kea/kea-dhcp4.conf
- The instructions to configure Kea are included in the file
- You can also use this guide to configure Kea
- Use this guide to add the Ubuntu Server to the GNS3 Working Environment
Phase III – Install DHCP Server – isc-dhcp-server
The isc-dhcp-server is no longer supported as of October 2022. However, it was in use for a long time and there are many writeups on the web on different configurations. We felt it best to continue to have this option for learners at this time.
- To install type
sudo apt install isc-dhcp-server
- Some shortcut commands for future reference include:
- To bind the DHCP server to an interface type
vi /etc/default/isc-dhcp-server
- To configure type
sudo vi /etc/dhcp/dhcpd.conf
- To test the configuration file type
dhcpd -t
- To start the DHCP server type
sudo systemctl start isc-dhcp-server.service
- To enable the DHCP service to start on boot type
sudo systemctl enable isc-dhcp-server.service
- To restart the DHCP server type
sudo systemctl restart isc-dhcp-server.service
- To check the status of the DHCP server type
sudo systemctl status isc-dhcp-server.service
- To bind the DHCP server to an interface type
Phase IV – Install DNS Server – BIND9
- Install software and additional utilities
sudo apt install -y bind9 dnsutils bind9-utils
- Modify configurations 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
Phase V – Install a Text-Based Web Browser (Optional)
Occasionally you may want to visit the web from the Ubuntu Server that does not have a GUI. This is how you install w3m.
- Install by typing
sudo apt install w3m
- Run by typing
w3m -v http://www.google.com
- Exit the browser by pressing Ctrl-z
Phase VI – Install a GUI (Optional)
There could be times when you want a graphical user interface (GUI). Make sure your Linux VM has at least 50GB available on the hard drive. Use the default settings whenever prompted.
- To install the GUI type
sudo apt install ubuntu-desktop
- Install the display manager by typing
sudo apt install lightdm
- Enable the LightDM service by typing
sudo systemctl start lightdm.service
- To make sure it starts on boot type
sudo service lightdm start
- You may have to restart the Ubuntu VM
sudo shutdown now -r
Phase VII – Install a web hosting service
Creating a web hosting service isn’t that complicated, but there are a lot of steps. A web server requires a platform, a database, and an interface. Follow these steps to create a local web hosting service and create a test website that can be accessed.
- Install a GUI on the Ubuntu Server by following the steps in Phase 6
- 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 17)
- 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 typing
sudo mysql -v
- 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 18)
- 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 19)
- 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
Figures for Print Version