# Data Networking/Fall 2016/Sanket Jabade

Data Networking

## Linux Project to implement DNS, DHCP, Web Server, Firewall and Backup

In this webpage we describe our Linux project based on implementation of networking concepts such as DNS, DHCP, Web Server, Firewall and Backup.

## Team Members

1) Sanket Jabade 2) Maheshwar Gurav 3) Prajwal Patil 4) Riteshkumar Gupta

## Why Linux over other operating systems?

Linux is an open source and free operating system widely used in almost all major Telecommunication and IT companies. Anyone can easily modify the source code and use it according to their needs for different applications.

## Introduction

The main aim of this project is to implement networking concepts using Linux. We tried to implement various networking concepts like DNS, DHCP, Web Server, Backup and a Firewall. We have used Ubuntu 16.04 LTS for implementation.

## Background

1) Domain Name System (DNS) DNS (Domain Name system) is a service similar to a phone-book. It basically translates any host-name to its specific IP address. This service makes it easier for users to access any website via its host-name rather than remembering its IP address. DNS runs over UDP and uses port 53. It uses few additional services along with host-name to IP address translation like host aliasing, mail server aliasing and load distribution.
2) Dynamic Host Configuration Protocol (DHCP) DHCP (Dynamic Host Configuration Protocol) is a standardized network protocol that dynamically provides various networking parameters such as IP address, subnet mask, default gateway to any host machine who wants to communicate over a network. It basically works on DORA process i.e. D-Discovery, O-Offer, R-Request and A-Acknowledgement. Step 1: Host machine sends "Discovery" message to request for IP address to all listening DHCP servers. Step 2: Any DHCP server will then "Offer" an IP address from its pool of addresses. Step 3: The host will now "Request" this offered IP address from the DHCP server. Step 4: The DHCP server will finally "Acknowledge" this request and provides the IP address along with other necessary network parameters.
3) Web Server A web server is a machine or a program that uses HTTP (Hypertext Transfer Protocol) to process requests from users and provides information in the form of web pages over the Internet or the World Wide Web. The users who request for information are called clients and the machines who respond to this request are called Web Servers. This process is called as a client-server model. There are 4 primary different Web Servers like Apache, IIS, nginx and GWS. We are using Apache web server for project implementation, currently the most popular one in the market.
4) Backup Web Server The web server is a machine and it may crash anytime due to various reasons like increase in usage or heavy processes running on it. So it is always better to have a backup of everyday's work in some another machine so that data can be recovered easily. Hence we create a backup server to avoid loss of data.
5) Firewall Firewall is a network security system (either hardware or software based) that manages the incoming and outgoing network traffic based on predefined set of rules. It basically acts as a barrier between a secured internal network and any outside network(either secured or unsecured).

## Configuration Steps
### DHCP Server

1. Install DHCP Server
2. Install the radvd to configure the parameters
3. To configure DHCP modify below files
4. For clients install below package

### DNS server

Configuring Primary DNS Server 1. Install Bind9
2. Configure caching name server (edit named.conf.options file)
<syntaxhighilight lang="text">
3. Restart bind9 service
4. Edit named.conf.local file
Define the forward and reverse file as shown below <syntaxhighilight lang="text">
</syntaxhighlight>
5. Create forward zone file
Add the following lines <syntaxhighilight lang="text">
</syntaxhighilight>

### Web Server

1. Install Apache Web Server
2. Restart the web server
3. Modify or create the web page as per requirement

### Firewall

1. Install IP tables Persistent packages
2. Add Net filter persistent startup
3. Stop Netfilter Persistent service
4. Open the rules.v4 file from /etc/iptables and do the following changes
5. Start netfilter persistent service
6. Check status

### Backup Server

1. Generate a pair of public keys
2. Create .ssh on host
3. Appending the Web server's public key to host
4. Compress the backup
5. We use crontab to take backup every minute