Data Networking/Spring 2015/Group6

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

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. 1.	--dry-run This tells rsync to not actually do anything. It will just write a log of what it would do to the screen. Once you've made sure everything will work as you expect, you have to remove this option, and run the command again      to perform the actual backup. 2.	--delete deletes files that don't exist on the system being backed up.(Optional) 3.	-a preserves the date and times, and permissions of the files (same as -rlptgoD). 4.	With this option rsync will: 1.	Descend recursively into all directories (-r), 2.	copy symlinks as symlinks (-l), 3.	preserve file permissions (-p), 4.	preserve modification times (-t), 5.	preserve groups (-g), 6.	preserve file ownership (-o), and 7.	preserve devices as devices (-D). 5.	-z compresses the data 6.	-vv increases the verbosity of the reporting process 7.	-e specifies remote shell to use

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.