Changes

Jump to: navigation, search

OPS235 Assignment 2 OLD

833 bytes removed, 23:36, 10 September 2019
m
Chris.johnson moved page OPS235 Assignment 2 to OPS235 Assignment 2 OLD without leaving a redirect
= OPS235 Assignment 2 =
'''Weight: ''' 5% of the overall grade
'''Due Date: 8th of August at ''' Week 13 <br />Refer to your instructor for submission instructions  {{Admon/important|It is YOUR responsibility to Backup your centos3 VM for this Assignment!|You are required to frequently backup your VM prior to exiting a work session during this assignment. Your instructor will NOT accept the start fact that your hard disk crashed and lost all of classyour work. If you properly backed up your VM images and xml configuration files to a USB, then you can purchase a new hard-disk or wipe and recreate your hard disk and restore your VMs.}}<br>
== Introduction and Purpose ==
In this assignment, you will demonstrate the skills you have learned to this point by configuring two services: a '''database server''' and a '''web server'''. You will install and use a database-backed web application, '''Wordpress''', to show that these services have been installed properly. You will also configure the '''SELinux''' security system to further enhance the security of your computer system.
'''NOTE: Do this assignment inside the fedora3 centos3 virtual machine. '''
== Installing Packages using Yum ==
<u>Install these packages using ''yum'':</u>
* '''httpd''' - this is the Apache web server software.
* '''php''' - this is the PHP server software, which allows Apache to run more complex websites.
* '''php-mysql-server''' - this is a PHP extension that allows PHP to use a MySQL server.  <u>Install the '''mysql-server''' (MySQL database server) package</u> '''NOTE:''' This package may not be in the main repository.There a couple of options: :*'''Preferred method:''' Use an alternative package (for example: '''mariadb''' and '''mariadb-server'''):*Download a "zipped tar-ball" from a website (google-search), decompress, and compile
== Configuring Apache ==
# Start the httpd service using the '''systemctl''' command.
# Ensure that the httpd service starts automatically during boot.
# Confirm that you can connect to your web server using a web browser -- both from fedora3 centos3 (you can test using '''links''') as well as from the host. You should see the Fedora Apache Test Page.# ?? Create a very simple HTML index page for your system, and place it at <code> /var/www/html/index.html </code># Confirm that If you can view 't connect to it from outside the machine - perhaps your firewall is blocking access to the index pageweb server. If not, check for errors in <code>/var/log/httpd</code>
==== Configuring MySQL (Section Total: 6 Marks)====
:# Start the MySQL service (mysqldor mariadb) using the '''systemctl''' (or '''.# Ensure that the mysqld/mariadb service''') commandstarts automatically during boot.:# '''When started You may get messages after starting the MySQL service for the first time. Do not ignore these messages, this service it will print a message telling tell you how to set a password and take other basic steps to secure the the MySQL server.''' Follow those instructions to set a password, recording the detail of what you do for later use. '''#* If this message does you do not appear see any messages, research how you can secure the MySQL installation and set the MySQL-root password.#* Read those messages carefully, you are setting up a production MySQL server and there shouldn't be any "test" databases or anonymous users or users without a password.# Set your MySQL root password to your learn ID (without the @senecac.on .ca part).# This following part is challenging so take your time and read the screeninstructions to make sure you do it properly, look in <code>we have to set up a dedicated user and database for wordpress:## Start by looking at http:/var/logcodex.wordpress.org/httpd/messages</code>'''Installing_WordPress#Using_the_MySQL_Client where you will find instructions for the setup.:# Configure this software # You will need to start when the system run those commands in a centos3 terminal.## Your adminusername is root## Your databasename is myblog## Your wordpressusername is your learn ID## The password should also be your learn ID## Your hostname is booted using '''systemctl'''.localhost
== Installing and Configuring Wordpress ==
Wordpress (like most web applications) is not available in the Fedora repositories, it must be downloaded and installed manually.
* # Download the latest .tar.gz version from wodpress.org into your fedora3 centos3 (use wget).# Extract it into '''/var/www/html'''# Now we need to allow Apache to modify the wordpress installation. To do this use chown -R to make the owner and group of every file and directory inside wordpress "apache".# Check your work so far by pointing your web browser to http://centos3/wordpress/ where you will get an error starting with "There doesn't seem to be a wp-config.php file"# Copy the wp-config-sample.php file to wp-config.php and edit the new file:#* Change the DB_NAME, DB_USER, DB_PASSWORD to the appropriate values.# Now go back to http://centos3/wordpress/ - you should see a Wordpress Welcome/Setup page.#* Set the title to Your Name's Blog. For example for me it would be "Andrew Smith's Blog"#* Set the password to your learn ID.#* Set the email to your Seneca email address.#*Click "Install Wordpress", you should see a "Success!" message.
==== Serving Personal Web Pages (Section Total: 12 Marks)==Write-up ==
:# Configure httpd to serve the <code>~/public_html</code> directories of your users. This will require changes to <code>/etc/httpd/conf/httpd.conf</code> as well as the SELinux configuration. See the man page for <code>httpd_selinux</code> and the Apache [http://httpd.apache.org/docs/2.2/ httpd documentation] for details.:# Prove that this works by creating Write a page in blog post on your <code>~/public_html</code> directory. The URL will be <code>httpnew blog explaining://''hostname''/~''your-user-id''/</code>:# Create a short web script which displays the available disk space on the computer. At its most basic level* What is Apache, a web script is the same as a regular scriptPHP, with this additional requirement::#* It must output the line "Content-type: text/plain" or "Content-type: text/html" (depending on whether the script output is plain text or HTML)MySQL, followed by a blank lineand Wordpress.:# Name the script <code>~/public_html/diskfree.cgi</code> - The URL will be <code>http://''hostname''/~''your-user-id''/diskfree.cgi</code>:# Configure httpd to allow your script to be run from the web. This will require changes to <code>/etc/httpd/conf/httpd.conf</code> as well as the SELinux configuration * What problems (possibly including both booleans minor and SELinux contextmajor). As with step 1, see you ran into during the man page for <code>httpd_selinux</code> installation and the Apache [http://httpd.apache.org/docs/2.2/ httpd documentation] for detailshow you solved them.
{{Admon/tip|Hint|Look Write a second post on your blog explaining:* Are you ready for an "add-handler" line in your httpdthe exam or not.* List the material you are strong on.* List the material you are worried about.conf file* List any questions or topics you would like me to address during exam review.}}
===C''' Make your posts look professional. That means use good english, headings, bullet or numbered lists, etc. Write-up (Section Total: 12 Marks)===
Create a high-quality write-up of this assignment on your wiki. '''Describe in detail exactly what you did to set up each component'''. Include at least these pages:# A main page (page name Main Page), describing in general terms what you did and containing links to the other wiki pages, as well as a link to the page and the script in your <code>~/public_html</code> directory.# A page for your httpd configuration (page name httpd_conf). Along with a description, include the exact text of your httpd.conf file.# A page for your MySQL configuration (page name mysql_conf). Along with a description, include the details of the steps you performed to set up MySQL.# A page for your MediaWiki configuration (page name mediawiki_conf). Along with a description, include your MediaWiki configuration file.# A page for your iptables configuration (page name iptables_conf). Show the exact iptables rules that are in effect. Demonstrate that the configuration is as tight as possible (for example, test access to other services, and include the results of those tests in the wiki page).# A page for the SELinux configuration (page name selinux_conf). Show the SELinux booleans and the context of your script file. The easiest way to create new page is to create a link to it from an existing page (such as the main page), and then follow that link.== Submitting Your Assignment ==
'''Write well and be creativeDue date:'''* Make sure your spelling and grammar are correct (they count!).* Present the pages attractively, and take advantage of graphics, colour, and fonts as appropriate -- for example, you may want to highlight the changes that you made Your name will be called in the configuration files using '''bold''' print, use outline numbering, divide lab on the pages into easy-to-navigate sections, or use colour to show the <span style="color:orange">commands you typed</span> and <span style="color:green">what due date for the system displayed in response</span>assignment.* Stick to the important information - avoid including excessive text which doesn't add to the content that If you are presenting (remember, not there when your professor name is called - you will be reading hundreds lose 20% of wiki pages while marking!)your markResources on wiki markup:* [http://en.wikipedia.org/wiki/Help:Wiki_markup Wiki markup] - Wikipedia* [[Sandbox|Sandbox page on this wiki]] - examples {{Admon/tip|Tip: Customizing In that case you may show me your WIKI|Change the default icon submission in the upper-left corner of your MediaWiki installation to second lab that week instead. Assignments submitted after that will receive a picture grade of your choosing. Be sure that you have copyright clearance to use that image (e.g.0, it is licensed but must still be completed satisfactorily in order to you, or it is a picture you own)pass the course.}} == Submitting Your Assignment ==
Your professor will require you === Ready to submit this assignment in at least one of two ways:show ===
# Demonstrate that the wiki is working.# Use wget Open one or more terminals in c7host, SSH to harvest centos3 from those terminals, and have the wiki pagesfollowing ready:#* Make sure all The correct RPMs are installed* Output showing firewall has been properly set up* Output of chkconfig --list mysqld* Output of chkconfig --list httpd* MySQL output of the <code><nowiki>http://</nowiki></code>-style links (for the wiki image, the link to diskfree.cfgishow databases; use mysql; select User, and so forth) use the same hostname (don't Password from user; use "localhost" for one and "f16host" for another, for example).myblog; show tables;#* Issue the command: <code>wget Output of ls -prk http:la /var/www/''hostname''html/wiki<wodpress/code> * Output of head -- where ''hostname'' matches the hostname used in the <code><nowiki>http:30 /var/www/<html/nowiki><wodpress/code> links in your wiki pageswp-config.php#* Create Open a compressed tar file containing the results. (name the file ''learnid''-a2.tgz)#* Check the tar file to see that it contains everything necessary to view your site (in particular, check that all needed image files are included). Do not edit the files in the tar archive -- if changes are needed, modify your wiki, and then repeat the <code>wget<firefox with http://centos3/code> and <code>tar<wordpress/code> steps above.#* Refer to your OPS235 instructor on the proceedure to submit the tar archive file.
= Old Assignments == Rubric ===
Still here for historical purposes. Obviously you don{| class="wikitable" border="1"! Task !! Maximum mark !! Actual mark|-| Correct packages installed || 1 |||-| Firewall setup properly || 2 |||-| Apache set up and running || 2 |||-| MySQL set up correctly || 3 |||-| Wordpress extracted correctly || 1 |||-| Wordpress set up correctly || 2 |||-| Wordpress showing in Firefox || 1 |||-| Everything ready to show || 2 |||-| First blog post || 3 |||-| Second blog post || 3 |||-| '''t need to do them.Total''' || 20 ||
* [[OPS235_Assignment_2/W12]]|}
[[Category:OPS235]]

Navigation menu