Final Project

The last project consists of three parts. In the first two parts you need to provide different types of restricted access to your Apache web site. In the last part of the project you need to recall what you know about Linux root directory folders, do some research, and come up with the hard disk partitioning schema as described below.

Part 1 – securing Apache directories through htpasswd

You need to create three subdirectories in your DocumentRoot directory and restrict access to these directories by means of basic Apache authentication (mod_auth_basic module):

To do this, you need to select a number of Apache users (at least 4) and make two of them to be members of the topsecret group (which you also have to create). Inside each directory create an index.html file that contains a welcome message with the name of the directory, so that the user can clearly see what he/she accessed. Do not forget to put links to these directories in the main index.html file.

Part 2 – securing Apache directories through MySQL server

To work on the second part of the project you need to have MySQL database installed. This time you need to restrict access to the Apache directories through the MySQL database. That is, instead of using htpasswd program from Apache package, you need to create a table (or two tables) in a MySQL database and create users there by inserting new records into this table. Again, you need to create three directories and restrict access to these directories:

In order to implement this, you need to install mod_auth_mysql module for your Apache server. Also you need to find all of the documentation about installation and configuration of the module.

Part 3 – hard disk partitioning.

This part of the project is pure theory. You do not need to do anything on your own except some research and a lot of thinking. Here it comes: assume that you need to install a web server with a MySQL database server as a back end. You estimate the total amount of web pages as 10GB and amount of data as 25GB. You have a computer with 4GM of RAM and with 3 hard drives, 250GB each. You decided to install Linux system on your computer. Please describe the layout the hard drive partitions you would prefer to have: how many partitions, what they are for, what are the sizes of the partitions, etc. Be as detailed as possible.

When we were installing Fedora on our class-room machines, we did nothing regarding the partitioning and decided to use the default partitioning schema. This approach won't work very well for a production server. While progressing through the class material you have learned a lot about contents of the root directory folders. Most likely some of these folders should be on separate partitions. Please do your research, find out what are these partitions, and how would you use them, explain your results.

Note: once you are done with the initial approach, introduce a new parameter in the assignment by adding a RAID controller or using Linux software RAID capability.

How to report

To submit this project, you need to do two things:

  1. Write a report with detailed instructions describing what needs to be done to achieve the results. The instructions need to be very clear (if you say that a module has to be compiled, you should explain what needs to be done to compile it; if you say that a table has to be created, you need to provide SQL code that creates the table; etc). Send this report to dementiev@marshall.edu.

    To report the last part of the project, write down your final partition layout with the detailed explanations of each partition and its size. While explaining, reason why you think that partition actually has to be a separate partition not just a sub-directory inside another partition.

  2. When all the secure directories are working as they are supposed to, you need to bring me to your computer and prove me that they really work.