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

Lin Zhu
Xiao Yu
David Martin

## Motivation

We all want to learn something about network, such as DNS, DHCP, HTTP and so on.

## Understanding the Protocol

DNS
A DNS server can give client IP address when client has the domain name, and give domain name when it has IP address.
DHCP
A DHCP server can assign IP address (both ipv4 and ipv6) to clients.
Web
A web server can let client access the web page in the web server.
Back-up
Back-up service can back-up all the configure files to one server.
VPN
VPN server can allow client log into a Virtual Private Network.
NFS
NFS can create a shared directory between server and client
NIS
NIS server can manage all the users. Client can log in the users which exist in NIS server.

## The Requirements

1.DNS
2.DHCP
3.Web server & Firewall
4.Back-up
5.VPN
6.NIS
7.NFS
8.DNS slaves

## Progress

Friday, November 22 By Lin Zhu
DNS server can basically work now. It has been tested.
Web server can basically work too, and it has been tested, but not firewall yet.
Working on DHCP right now,it is almost done, but not be tested yet.
All the details will be update by Monday, November 25. By Lin Zhu.
Sunday, November 24 By Lin Zhu.
DHCP server can work on both ipv4 and ipv6 now, and it has been tested on Dual Boot.
Firewall works, and it has been tested.
Back-up server works, and it has been tested.
All basic requirement has been realized.
Monday, November 25 By Lin Zhu
VPN has been done, and tested successfully.
NIS has been done, and tested successfully.
NFS has been done, and tested successfully.
I'm trying to think about other add-ons.
Thursday, November 28 By Lin Zhu
DNS master and slave has been done, and tested successfully.
All the basic requirement and add-ons has been tested again, and they all work normally.
I'm trying to finish the report and prepare for the demo.

## Steps to perform the setup / installation

All the details are in our report(Command part)
4.1 DNS commands
4.1.1 Install bind9
Sudo apt-get install bind9
4.1.2 Add zones
Nano /etc/bind/named.conf.local
4.1.3 Set up zone and reverse zones
Open the file of db.group17.com: nano /etc/bind/db.group17.com
4.1.4 Restart bind server
sudo /etc/inti.d/bind9 restart
4.2 DHCP commands
4.2.1 Install DHCP server
sudo apt-get install dhcp3-server
4.2.2 nano /etc/default/isc-dhcp-server
4.2.3 nano /etc/dhcp/dhcpd.conf
4.2.4 sudo /etc/init.d/isc-dhcp-server start
4.2.5 sudo apt-get install radvd
4.2.6 nano /etc/radvd.conf
4.2.7 nano /etc/sysctl.conf
4.2.8 sudo /etc/init.d/radvd start
4.3 Web Server & Firewall
4.3.1 apt-get install mysql-server mysql-client
New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword
4.3.2 apt-get install apache2
4.3.3 apt-get install php5 libapache2-mod-php5
4.3.4 /etc/init.d/apache2 restart
4.3.5 apt-cache search php5
4.3.6 apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
4.3.7 /etc/init.d/apache2 restart
4.3.8 Firewall
sudo apt-get install ufw
ufw enable
ufw allow 80
4.4 Back up
4.4.1 nano /home/xiao/back-up.sh
Add below:
rm /var/www.zip
zip -r /var/www.zip /var/www
rsync -zvr /var/www.zip root@192.168.4.114:/home/www_$(date +%Y%m%d- %H%M%).zip
4.4.2 crontab -e
*/1 * * * * sh /home/xiao/back-up.sh
4.4.3. chmod +x back-up.sh
4.4.4 Set up ssh server on both sides
sudo apt-get install openssh-server
sudo /etc/init.d/ssh resart
4.4.5 Change public key
At server:
ssh-keygen -t rsa
scp id_rsa_pub root@192.168.4.114:/root/.ssh/authorized_keys
At client:
ssh-keygen -t rsa
scp id_rsa_pub root@192.168.4.1:/root/.ssh/authorized_keys
4.5 Add-ons 1: DNS slaves
In the slaves server:
nano /etc/bind/named.conf.options
4.6 Add-ons 2: VPN
sudo apt-get install pptpd
sudo nano /etc/pptpd.conf
Add below:
localip 192.168.4.1
remoteip 12.10.102.2-10
sudo nano /etc/ppp/chap-secrets
Add below:
zhu.lin pptpd zhu.lin *
sudo /etc/init.d/pptpd restart
4.7 Add-ons 3: NFS In server:
sudo apt-get install nfs-kernel-server
mkdir /home/xiao/nfstest
nano /etc/exports
Add below:
/home/xiao/nfstest *(rw,sync,all_squash,anonuid=1000,anongid=1000)
sudo /etc/init.d/nfs-kernel-server restart
In client:
sudo apt-get install nfs-common
sudo mount 192.168.4.1:/home/xiao/nfstest /home/lin/shared
4.8 Add-ons 4: NIS In server:
sudo apt-get install nis portmap
NIS domain:
zhu.lin
nano /etc/default/nis
Change below:
NISSERVER=master
nano /etc/yp.conf
Add below:
domain zhu.lin server xiao-ThinkPad-T420
sudo /usr/lib/yp/ypinit –m
In client:
sudo apt-get install nis portmap
nano /etc/yp.conf
Add below:
ypserver 192.168.4.1
nano /etc/passwd
Add below:
nano /etc/group
Add below:
nano /etc/shadow
Add below:

## Testing

Test plan
Connect together and test one by one.
All the details are in our report(Testing part)
There are lots of screenshot that I cannot upload here, they all in our report, please check it!

## Future Prospects

Expansion
DNS is the way forward. Without it companies, online shops, banks, governments and home users will continue be susceptible by threats the original DNS.
FIS is a new technology in 2010. In that year, the professor said that FIS will instead the old things.
Growth
We learned DHCP, VPN, DNS, backup, firewall, NFS and NIS how to work in this project.
All of these above are useful in our life. Even some of these have not been learn in the class, our group had a good job in last 2 weeks.
We learned DHCP and DNS in Fridays class which called TSMG 5330. We learned NIS and NFS by ourselves.
We learned the important of the firewall. Actually, security is the most important things in our life.
Improvements
Backup is the best way for people who work for computer programmer. In my opinion, backup is the way to survive the things what you want to save and which do not exist. In our project we luckily to use it once. A good behavior for us is use back up in our project.

## Citations

Textbook