User:Gaurangdeshmukh1995/sandbox

Motivation
This project builds a deeper understanding of basic Networking concepts by practical implementation of a Dynamic Host configuration Protocol Server (DHCP), Domain Name System Server (DNS), Web Server, Firewall, Backup Server. The concepts that are part of the Data Networking class (TELE5330) became clearer through the implementation of this project. The aim of this project is to deliver a complete network solution in which the servers and clients will obtain an IP address from the DHCP server, and then with the help of our DNS Server, the users within our network should be able to successfully fetch the web page that is being host in our own web server. Moreover, we will implement and configure extra networking tools like firewall, backup server etc. to provide a robust, secure, intelligent inter-networking scheme that could be used at any company or organization.

Team Members
1.	Gaurang Dilip Deshmukh

2.	Karan Sandip Mahaddalkar

Domain Name System
The Backbone of the Internet

Computers work best in the language of numbers, while humans prefer words. Today’s Internet was built in a way that caters to each preference, allowing both computers and people to navigate the Web with ease. It runs over primarily on UDP and on TCP on port number 53. It follows hierarchical system of Local name servers, Root name servers, Top level domain (TLD) servers and Authoritative name servers. Generally, queries from host to local name server are recursive and rest all are iterative. Resource record is a four-tuple: {Name, Value, Type, TTL}

1) First the client sends a query with the given hostname to the DNS server 2) The DNS server receives the query from the client and maps it with the IP address 3) The DNS server sends the IP address to the DNS client operating at the user machine 4) Once the Host user receives the IP address, it can access the web server.

Dynamic Host Configuration Protocol
DHCP stands for dynamic host control protocol used for dynamically assigning the IP address to the network hosts using from the given pool of IP address. The IP assignment can be assigned for a time interval decided by the lease parameter, post which the lease has to be renewed to hold the same IP address. The DHCP is a 4 step process which involves the below phased for IP allocation. 1) DHCP discover 2) DHCP offer 3) DHCP request 4) DHCP acknowledge

Webserver & Firewall
A Web server is a program that uses HTTP (Hypertext Transfer Protocol) to serve the files that form Web pages to users, in response to their requests, which are forwarded by their computers' HTTP clients.The Server can be requested using the fixed IP address of the server as well. Since it is difficult for users to remember the IP address of servers the fixed IP address is mapped with to a unique name using the DNS server. Apache2 is one of the most commonly used web server. This web server is used to serve Web pages requested by client computers.

A firewall is a network security implementation that allows or denies specific network traffic to the monitored incoming and outgoing traffic. Ubuntu has an inbuilt firewall called “uncomplicated firewall”- ufw. By default, ufw is disabled. We need to enable ufw and add the specific commands to allow or deny IP addresses and protocols.

Backup Server
This is a dedicated server used for storing the configuration files coming from each attached server. This helps in restoring the configuration files as a disaster recovery measure.

Network File System (NFS)
NFS allows a system to share directories and files with others over a network. By using NFS, users and programs can access files on remote systems almost as if they were local files. Some of the most notable benefits that NFS can provide are: 1)	Local workstations use less disk space because commonly used data can be stored on a single machine and still remain accessible to others over the network. 2)	There is no need for users to have separate home directories on every network machine. Home directories could be set up on the NFS server and made available throughout the network. 3)	Storage devices such as floppy disks, CDROM drives, and USB Thumb drives can be used by other machines on the network. This may reduce the number of removable media drives throughout the network.

The Requirements

 * Implement a DHCP server that assigns IP addresses to the clients in the network
 * Implement a web server that hosts a web page
 * Implement a master DNS server and a slave DNS server
 * Ensure that the clients in the network can access the web pages in the server by getting the name-to-IP address resolved by the DNS server
 * Create backups of the webpages of the web server to another backup server on the network

Installation & Configuration
We have logged in to the root user with the "sudo su" command and we have configured the entire project as a root user on all systems.

BIND9 DNS server is used. Master and slave configuration is implemented in which slave is updated automatically with the master DNS. Both forward and reverse look ups have been implemented.

Installation
Step 1: Update the package list( Command:                sudo apt-get update

Step 2: Install Bind9 for DNS server configuration Command: sudo apt-get install bind9 Step 3: Make virtual machine interface as static Command: sudo nano /etc/network/interfaces Add For IPv4 configuraiton auto eth0 iface eth0 inet static address 192.168.77.5 netmask 255.255.255.0 broadcast 192.168.77.255 gateway 192.168.77.1 dns-nameservers 192.168.77.5 dns-nameservers 192.168.77.6 For IPv6 configuration face eth0 inet6 static address 2001:aaaa:1000:0000:0000:0000:0000:0007 netmask 64 gateway 2001:aaaa:1000:0000:0000:0000:0000:0001 dns-nameservers 2001:aaaa:1000:0000:0000:0000:0000:0007 dns-nameservers 2001:aaaa:1000:0000:0000:0000:0000:0008

Step 4: Configuring the forwarding addresses Command: sudo nano /etc/bind/named.conf.options Add forwarders { # Local DNS and Google DNS 192.168.77.5               192.168.77.6                2001:aaaa:1000:0000:0000:0000:0000:0007 2001:aaaa:1000:0000:0000:0000:0000:0008 8.8.8.8;                8.8.4.4;   };

Step 5: Add ZONES TO THE ROOT FILES OF bind9 Command: sudo nano /etc/bind/named.conf.local Step 6: Creating DNS forward Zone file Command: sudo nano /etc/bind/db.gaurangkaran.com

Step 7: Creating DNS reverse zone file Command: sudo nano /etc/bind/db.192

Step 8: Adding name server in resolv.conf file Command: sudo nano /etc/resolv.conf

Step 9: Adding server addresses in hosts file Command: sudo nano /etc/hosts

Step 10: Commands to start/ restart/stop the DNS server Command: Start: sudo /etc/init.d/bind9 start Restart: sudo /etc/init.d/bind9 restart Stop: sudo /etc/init.d/bind9 stop

Step 11: Configuring named.conf.local file on slave Command: sudo nano /etc/bind/named.conf.options

Step 12: Adding server addresses in hosts file for slave Command: sudo nano /etc/hosts