# Data Networking/Fall 2013/Group9
## The Folks

1. Sabrina A. Liza
2. Tahmina Binte Mansur
3. Pranav Srivatsav Jagannath
4. Chaitanya Rallabhandi

## Motivation

The linux project has created a great motivation to learn new applications on linux and this project is a great opportunity to learn DNS, DHCP, Web server, Firewall and Backup server configuration. Through this project we have become quite familiar with linux commands and can be able to create a small network by the help of ubuntu.

## Understanding the Protocol

Domain Name System (DNS):
DNS is an application protocol that translates hostnames to IP addresses. This protocol is a distributed database which is implemented in a hierarchy of DNS servers. Hosts can query the distributed database by this DNS protocol. The DNS protocol can use either TCP (Transmission Control Protocol) or UDP (User Datagram Protocol) using port number 53 at the transport layer. Besides the translation of host names to IP addresses the DNS protocol provides many important services such as host aliasing, mail server aliasing, load distribution.
Dynamic Host Configuration Protocol (DHCP):
DHCP is an application layer protocol that allows a host to get an arbitrary and temporary address from its pool of ip addresses. When a host leaves, its ip address is returned to the pool. As DHCP can provide functions that automate the network-related aspects of connecting a host into a network, this is called plug-and-play protocol. Besides getting the ip address from DHCP, a host can get important information such as its subnet mask, the default gateway and the ip address of its local DNS server. So, DHCP is client-server protocol. DHCP follows four step processes such as DHCP server discovery, DHCP server offer, DHCP request and DHCP ACK.
HyperText Transfer Protocol (HTTP):
HTTP is the Web’s application layer protocol that uses TCP on port 80 at the transport layer. HTTP is used in a client program and a server program. Web browsers use the client side HTTP and web servers use the server side of HTTP. When a client requests a web page, the browser sends request message to the server using HTTP. Then the server receives the request message and gives the response message using HTTP. As an HTTP protocol does not maintain information about the clients, so this is called stateless protocol.
Secure Shell (SSH):
SSH is a cryptographic network protocol that provides secure data communication, remote command line login, and remote command execution. When two computers are connected with each other through a secure channel over an insecure network SSH provides secure network services. SSH uses public-key cryptography to give permission the remote computer and allow it to give permission the user. SSH is used to backup file to another machine for security purposes. SSH uses the TCP port 22.

## The Requirements

We have to build a DNS server, a DHCP server, a Web server within a small network.When a client pc comes to the network, it has to get ip from DHCP ip pool. IT also has t access a web page from web server. DNS should be able to resolve the name. Firewall should block the client and a backup server must be built so that a client can take file from backup server, if necessary.

## Steps to perform the setup / installation
### DNS Sever Setup

1. We installed Bind9 for DNS server.
2. Domain zone and reverse zone has been added in /etc/bind/named.conf.local file.
3. We have added ip address of our ISP's DNS server in /etc/bind/named.conf.options file.
4. We have added ip address of our own DNS server in /etc/resolv.conf file.
5. At forward zone and reverse zone we created A records and PTR records.
6. We restarted the Bind9.

### DHCP Sever Setup

1. In Ubuntu 12.04 at terminal prompt, the command was entered first to install the DHCP server.
2. Static IP can be given manually from the “Edit Connections” of Ubuntu 12.04. We have given static IP address manually.
3. Next, we have to edit the dhcpd.conf file and write the commands that will take the range of IP addresses and release when DHCP client is on the network.
4. The command will generate the DHCP server giving clients an IP address from the range 192.168.10.15-192.168.10.50. If the client doesn't ask for a specific time frame then it will lease an IP address for 600 seconds. Otherwise the maximum (allowed) lease will be 7200 seconds. The server will also recommend the client to use 192.168.10.1 as the default-gateway and 192.168.10.18 as its DNS server.
5. After this we have to restart the DHCP server.
6. Check the DHCP released IP addresses on client machine.

### Web Sever Setup

1. We installed the Apache2 Web server as it serves all purposes required for the configuration of a web server on Ubuntu.
2. Once installation of Apache2 is complete, few changes need to be made in the following files /etc/hosts and add the hostname of the webserver as group9.linux
3. We to copy the files from a known file into a new one and We need to add the domain name in the new file we created by appending the directory with ServerAlias *.group9.linux
4. To save these changes and to make them permanent we need to restart the server.
5. The web server should start running. In order to confirm that it is working, there are 3 steps which could be used:
* Type group9.linux in the URL bar. • Type in 127.0.0.1 which points to group9.linux again. • Type in the IP address using ifconfig in the terminal.
6.The Firewall is allowed and made it active.

### Firewall and Backup

1. Firewall was activated by entering few commands.
2. One of the ways to create backup for webserver is to run a shell script which describes which files to be backed up and whereto and when or how frequently.
3. To make this backup shell script we need to copy the contents to the backup.sh file.
4. Then we have to check if it is working or not.

### Progress on Project
#### Work Flow

Update on 11/24/2013 11:50 AM (EST)
1. Configured Web server successfully.
2. Configured DNS server with static IP which we will replace with DHCP later. We have not tested DNS server yet.
3. Configured DHCP server.
4. Next our plan is to modify the DNS server for DHCP and connect the whole network.
5. Configured and tested DHCP Server.
6. Our previous DNS server showed some error. We reconfigured DNS server successfully. Locally tested the DNS server.
7. Now we are trying to setup the firewall and backup.
8. As we found out that our DNS server was not working properly, we checked the files that we edited and observed that we did mistake in forward zone file. After correcting it DNS server was working fine.
9. Next we connected our DHCP server, DNS server and web server together and tested through a client PC. This configuration was for IPv4. Our network worked fine.
10. Now we are trying to implement IPv6 in our DNS and DHCP servers.

#### Problems Faced

1. We were not able to connect to NUWave via Wifi in Ubuntu. We tried to rectify it by replacing the wireless LAN driver and other possible ways found in the web, but unable to get connected. Then we used LAN cable to get connected to the internet in college and also in home Wifi in working fine.
2. At the lab session we found that our DNS server was not working properly. There must be something wrong with our configuration for zones as we could view the web page by IP address, but not by name. So we think, we have to again modify our DNS server correctly.
3. We cannot implement ipv6 address for DHCP and DNS server.

## Testing
### DNS

1. used nslookup for testing.
2. used ping command.

### DHCP

1. used if config to check the ipv4 address.

### Web Server

1. used host name to browse the website. 2. used ip address to browse the website.

### Firewall

1. Check the ping to see block the icmp.

### Backup

1. Fixed the time to check the update of zipped file on specific directory.

## Future Prospects

1. We can try to implement ipv6 address for DHCP and DNS server.
2. We can try to implement NIS, NFS, VPN in future.
3. Security level can be increased for better result.

## Citations

1. https://help.ubuntu.com/12.10/serverguide/serverguide.pdf
2. http://www.360doc.com/content/09/0724/12/1484_4418139.shtml