User:Dynamiszmx

= Members= Caiyi Zhou Minhao zhou

=Background understanding=

Domain Name System (DNS)
DNS is a service that maps IP addresses and fully qualified domain names to one another. DNS alleviates the need to remember IP addresses and make people easy to remember website names. Ubuntu ships with BIND9 (Berkley Internet Naming Daemon), which is the most widely deployed DNS server.

Dynamic Host Configuration Protocol (DHCP)
Dynamic Host Configuration Protocol (DHCP)is a standardized network protocol used on Internet Protocol (IP) networks for dynamically distributing network configuration parameters, such as IP addresses for interfaces and services. With DHCP, computers request IP addresses and networking parameters automatically from a DHCP server, reducing the need for a network administrator or a user to configure these settings manually.

Secure Shell (SSH)
Secure Shell(SSH） is a common used protocol that provides secure remote login in an unsecure network. SSH provides secure channel betwen two computers. One computer will perform as client and the other will perform as server. There are two common applications which are remote command-line login and remote command execution.

=Step-To-Step Procedure=

DHCP
1)Install DHCP server in the machine. 2)Assign on what interfaces should the DHCP server serve DHCP requests. 3)backup a copy of the original dhcpd.conf file in order to restore later if we make any mistakes. 4)Edit dhcpd.conf file to do meet the configuration command. 5)restart the dhcp service.

DNS
1. Install master DNS on local machine using Ubuntu & BIND9 package. 2. Edit forward zone file. 3. Create db.X files 4. Edit reverse zone file 5. Create db.X files 6. Install slave DNS on another virtual machine using Ubuntu & BIND9 package. 7. Edit zone file.

Webserver
1)Install apache2 in the computer to perform web server. 2)The default page of apache2 is located at /var/www/html/index.html 3)Restart the apache2 server.

Firewall
)1)Start ufw service 2)Allow tcp and ssh in ufw 3)Allow log on in ufw 4)Add tcp/ip rules in ufw

SSH
1)install SSH in linux 2)generate key at server computer（webserver and DNS) 3)send the key to the backup computer, and get permission with backup's password 4)give permission to the key file at backup computer

Rsync
1)Install Rsync at server computer(webserver and DNS) 2)create sh file that can run Rsync 3)Set destination's(backup computer) IP address, name, file location 4)Set server computer's backup location 5)Zip command that zip the files 6)Send the zip file to the backup computer

=Challenges= Initially,in DHCP configuration, we do not know how to assign a fixed IP address to a client such as DNS and webserver,so we spend a lot of time in editing dhcpd.conf file and get really upset with it. then we search many documents and know we should make declarations in the dhcpd.conf file. Besides,not knowing "if config eth0 192.168.xxx.xxx netmask 255.255.255.0”to assign ip address to the host is also a big problem. The remote login SSH technology requires key-less login between server and backup computer. They need to have a common key that can replace the login password. However, when editing an root-allowed files, sometimes the location of a software may change or different from what we know. I need to spend times finding the proper location of those files.

=Future Improvements= We only have one webpage at the webserver. However we can use MYSQL service to create a table that contains multiple webpages. This may improve our webserver. Maybe we can backup msomething more other than the webserver's files.