# Data Networking/Spring 2015/Group6
## SETTINGS
### DNS Server

One identifier for an Internet host is its hostname (such as www.google.com) and IP address (such as 192.168.100.1/24). For humans, it is easy to identify and remember hostnames. However, networks identify IP addresses. As a result, we need a function for network to transfer hostnames and IP addresses. It is DNS—The Internet’s Directory Service. In this project, one of the tasks is to build a DNS server in a local area network. Our DNS server (BIND 9.9.5-3ubuntu0.2-Ubuntu) works on Ubuntu 14.04.2 LTS.

#### Configurations

In the main configuration file (named.conf), we included all of the files, which are necessary for DNS. In the configuration options file (named.conf.options), we set options, which influence the work methods of DNS. In the local DNS server configuration file (named.conf.local) In the RR for name reso file (db.gp6.dn), we included RRs (Resource Records). Those RRs are remembered by our DNS server. In the RR for inverse name resol file (db.192.168.100), we included inverse RRs. We set TSIG Signature. With this signature, the DHCP server cannot update the gp6.dn domain if it loses this key.

#### Testing

We started DNS server. Then we showed out the its information, and check the ports listening and syslog file. Everything is all set.
Here we started to check the performances of DNS server. Command: dig www.gp6.dn We could get the IP address of host www.gp6.dn --- 192.168.100.254.
Command: dig www.xwy.gp6.dn We could get the IP address of host www.xwy.gp6.dn --- 192.168.100.90.
Command: dig –x 192.168.100.254 We could get the hostname of IP address 192.168.100.254 --- www.gp6.dn.
Command: dig –x 192.168.100.90 We could get the hostname of IP address 192.168.100.90 --- www.xwy.gp6.dn.

### DHCP Server

The Dynamic Host Configuration Protocol (DHCP) is a network service that enables host computers to be automatically assigned settings from a server as opposed to manually configuring each network host. Computers configured to be DHCP clients have no control over the settings they receive from the DHCP server, and the configuration is transparent to the computer's user. And in out group, we assign the IP range from 192.168.100.101 to 192.168.100.200, 255.255.255.0 as subnet mask, 192.168.100.1 as the default gateway and assign the static IP address 192.168.100.50 as DHCP server' IP address. In addition, we also assign permanent IP address for Web server, DNS server and other servers.

### Web Server & Firewall

Apache is the most commonly used Web Server on Linux systems. Web Servers are used to serve Web Pages requested by client computers. Clients typically request and view Web Pages using Web Browser applications such as Firefox, Opera, Chromium, or Mozilla. Users can enter a URL to point to a web server by means of its Fully Qualified Domain Name (FQDN) and a path to the required resource. So we choose apache2 to set the web server To set firewall in this case, we use ufw to set firewall, Ubuntu default firewall configuration tool is ufw. To make iptables firewall configuration easily developed ufw provides users a friendly way to create a firewall based on IPv4 or IPv6 host. We need to enable ufw to set firewall because ufw is utilized, we do not need to install. In our group, 192.168.100.90 is the server

### Add-ons
#### Back-up

There are several parts in backup, such as MYSQL, php5, phpmyadmin, ssh, rsync and cron.

##### MYSQL Database

MySQL is a fast, multi-threaded, multi-user, and robust SQL database server. It is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.

##### PHP5

PHP is a general-purpose scripting language suited for Web development. PHP scripts can be emss-bedded into HTML. This section explains how to install and configure Apache2 and MySQL existing Ubuntu system PHP5.

##### phpmyadmin

phpMyAdmin is a LAMP application specifically written for administering MySQL servers. Written in PHP, and accessed through a web browser, phpMyAdmin provides a graphical interface for database administration tasks.

##### SSH

This section of the Ubuntu Server Guide introduces a powerful collection of tools for the remote control of, and transfer of data between, networked computers called OpenSSH. You will also learn about some of the configuration settings possible with the OpenSSH server application and how to change them on your Ubuntu system. OpenSSH is a freely available version of the Secure Shell (SSH) protocol family of tools for remotely controlling, or transferring files between, computers.

##### Rsync

Rsync is a tool for efficiently copying and backing up data from one location (the source) to another (the destination). It is efficient because it only transfers files which are different between the source and destination directories.

##### Cron

Cron make the automatically backup comes true. A crontab is a simple text file with a list of commands meant to be run at specified times.

#### VPN

VPN is short for Virtual Private Network) which allows users to set up a connection over networks. Like a local workstation connect to a remote server. For running VPN on Ubuntu, we need to install the required VPN protocol which requires general knowledge on networks. In this case, our group implement the PPTP protocol to run in the Linux to achieve the VPN function.

#### NFS

short for Network File System which is a distributed file system protocol that allows you to mount remote directories and files on your server. It can let users balance the storage space in difference places and store in the same space from multiple servers.

#### NIS

The NIS Client abd Server module handles the use of NIS, Network Information Service which is a protocol for sharing users, groups and other information between multiple systems. This project explains how NIS works, and how to set your system up as either a client or server using Webmin.