Franske ITC-2480 Lab 12: Difference between revisions

From ITCwiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 24: Line 24:
# Remember that in our case these systems are secure from the outside world because we have an upstream firewall which you have bypassed by connecting to our VPN and these systems are using unroutable private IPv4 addresses.
# Remember that in our case these systems are secure from the outside world because we have an upstream firewall which you have bypassed by connecting to our VPN and these systems are using unroutable private IPv4 addresses.
# nmap also supports scanning IPv6 addresses. Note that a running service is not necessarily listening on both IPv4 and IPv6 addresses just because you have them both active on your machine. Figure out how to scan IPv6 addresses with nmap and try scanning both an IPv4 and IPv6 address on your machine and compare the results. Use the same type of address (i.e. both IPv4 and Ipv6 addresses should be the localhost addresses or should both be outside addresses) Are the same services open on both IPv4 and IPv6 on your system?
# nmap also supports scanning IPv6 addresses. Note that a running service is not necessarily listening on both IPv4 and IPv6 addresses just because you have them both active on your machine. Figure out how to scan IPv6 addresses with nmap and try scanning both an IPv4 and IPv6 address on your machine and compare the results. Use the same type of address (i.e. both IPv4 and Ipv6 addresses should be the localhost addresses or should both be outside addresses) Are the same services open on both IPv4 and IPv6 on your system?
== Graphing statistics with Cacti ==
== Monitoring Services and Graphing System Statistics with Zabbix==
# Install the cacti package on your system. You can ignore the message about adodb-php no longer being supported and you can idetnitfy that you are using the apache2 webserver. If you provide your mySQL root password the installation script will create the database automatically for you.
# Install the following packages on your system: zabbix-server-mysql zabbix-frontend-php zabbix-agent
# Visit http://<your-ip-address>/cacti and complete the web portion of the install, taking the pre-filled default options.
# Create a database, a user, and schema following the instructions in the /usr/share/doc/zabbix-server-mysql/README.Debian
# Login to the Cacti interface using admin/admin for the username and password. You will be prompted to set a new password
#* NOTE: These instructions use the MySQL command line, if you prefer you can create the same database, user, and schema using the Webmin software but you'll have to translate the command line instructions into the actions required in Webmin.
# In order to start the data collection process click the "System Utilities" link and then the "Rebuild Poller Cache' link.
# Edit the server configuration file /etc/zabbix/zabbix_server.conf to include the correct database name, username and password used when you setup the database above.
# Click the graphs tab to view some basic statistical graphs about your system. Note that it may take at least ten minutes of data collection before you have graphs as this information is only collected once every five minutes by default.
# Edit the /etc/default/zabbix-server file to allow the server to start and then start the server with the '''service zabbix-server --full-restart''' command.
# Additional graphs can be generated for this system and other systems by collecting data via SNMP or other method. Data to be collected can include network throughput, CPU load, memory and disk usage, power voltage, temperature, etc. Just about any number a system can give you can be tracked. Do a little research online about the types of information that Cacti can collect and graph over time and how that might be useful for monitoring and troubleshooting systems.
# Make the Apache and PHP configuration changes outlined in the /usr/share/doc/zabbix-frontend-php/README.Debian file to enable the Zabbix web application
== Monitoring services with Nagios ==
# Access the Zabbix web application at http://yourserver/zabbix/ and complete the setup wizard.
# Install the nagios3 package on your system.
# Login to http://yourserver/zabbix/ (where yourserver is the IP address or DNS name for your system) with the username and password found in the above README file.
# Visit http://<your-ip-address>/nagios3 and login with the username nagiosadmin and the password which you specified during the installation process.
# Enable monitoring of your Zabbix server host (Configuration -> Hosts)
# Click the "Services" menu link to see what services are being tracked on your local machine by default.
# Add the templates appropriate for the services we are running on the server (HTTP, IMAP, MySQL, POP, SMTP, SSH)
# See if you can follow the Nagios documentation to setup alerts to your local system user's email address if the web server you're running goes down.
# Explore some of the data available through Zabbix such as various graphs (Monitoring -> Graphs), Latest Data (Monitoring -> Latest Data), Screens (Monitoring -> Screens), and Events (Monitoring -> Events)
# Try disabling your web server (service apache2 stop) for at least 5 minutes and see if you get a notification email in your user's mailbox and a notification in the Nagios web UI that the HTTP service is down.
# Try temporarily stopping some of the services on your system (to simulate a problem) such as the Postfix SMTP server, courier-imap server, courier-pop3 server, etc. using the command line '''service''' command.
# Re-check the data in Zabbix with the services turned off, are you alerted of the problems? Make sure to turn the services back on when you're done.
# If you have additional time see if you can get email notifications of failed services working (see Administration -> Media Types -> Email and Configuration -> Actions)
# Note: The Zabbix manual at https://www.zabbix.com/documentation/2.4/manual may be helpful as well.

Revision as of 21:43, 13 April 2016

Introduction

In this lab you will learn about several Linux utilities which can be used for monitoring Linux and other systems for security and service uptime purposes.

Lab Procedure

Prerequisites

  1. Open an SSH console to your Linux system using the PuTTY software, login with your standard user account
  2. The IP address of a partner's system which you have permission to portscan

Monitoring connections with netstat

  1. One common activity you would want to do when evaluating the security of a system is to find out what ports the system is accepting connections on. For this reason most operating systems have some kind of utility to display active network connections and open ports, Linux is no exception. The netstat utility can show you currently active network connections as well as open ports on your local system.
  2. Take a look at the man page for the netstat command. Specifically, figure out what the -n -a -t and -u options do.
  3. Run the netstat -natu command on your system and observe the output.
  4. Try to identify what the purpose of each open port on your system is. Note, there are many online guides to common uses for ports.
  5. You'll find that there are a number of ports open on your system. Some of these we have opened to provide a specific service such as SMTP, DNS, Webserver, etc. but some such as the sunrpc port are open simply by default on a fresh install. There are a number of different strategies you can use to secure your system including disabling a service, binding it to an internal-only IP address, or blocking access with a firewall rule. If your firewall is setup with an implicit (or explicit) reject any rule at the bottom of the input chain and you have not specifically opened a port it should not be accessible from other systems. How can we test that though? The netstat utility is useful at making a list of ports somehow open on the system but it does not show us how those ports react if someone outside actually tries to connect.

Scanning ports using nmap

  1. The nmap Network Mapper utility is a very powerful security scanning utility available on Linux. Before we begin this section of the lab it is important to remember that scanning a system is often seen as an attack against the system and should not be done unless you are the administrator of both the system that you are scanning from and the system you are scanning or have the explicit permission of the system administrator of those systems! In some areas people have been legally charged and prosecuted for scanning of systems which they are not authorized to do. You have been warned!
  2. Unlike netstat, nmap is not part of the default Debian installation so you will need to install the nmap package before proceeding.
  3. nmap is complex and powerful. Entire books and extensive documentation are available which you may want to reference but we'll only be exploring some of the more basic features in this introduction.
  4. nmap provides a system on the Internet which they allow you to scan for testing purposes so let's try a verbose scan (which gives additional diagnostic detail using the nmap -v scanme.nmap.org command.
  5. Review the output and then run the same command without the -v verbose option and compare the output you receive.
  6. When scanning your own system there are a few different ways to go about it. You could either scan the localhost address 127.0.0.1 or the actual outside IP address of your system. You could also setup a separate system or VM and do the scanning from that system. In each case you might see somewhat different results, can you guess why?
  7. The answer is related to how you have firewall rules setup and what addresses you have services bound to. For example by default on Debian systems mySQL connections only listens for connections on the localhost address (127.0.0.1) and not on outside interfaces. Try running the nmap 127.0.0.1 command and then compare output with the nmap <your outside ip address here> command. Do you see some network services listening only on the localhost address. These services are not accessible from outside your computer even though the ports are open and you would see them as open with netstat. This shows us some of the additional value of using nmap.
  8. The most realistic use of nmap though is to scan like an attacker would using a system outside of the one you're testing. Use nmap to scan a partner's IP address and take a look at some of the nmap documentation to try a few different types scans on that system. If you would like you can also try scanning the entire ITC-2480 subnet (172.17.50.0/24) if you want to try some subnet scanning capabilities.
  9. Remember that in our case these systems are secure from the outside world because we have an upstream firewall which you have bypassed by connecting to our VPN and these systems are using unroutable private IPv4 addresses.
  10. nmap also supports scanning IPv6 addresses. Note that a running service is not necessarily listening on both IPv4 and IPv6 addresses just because you have them both active on your machine. Figure out how to scan IPv6 addresses with nmap and try scanning both an IPv4 and IPv6 address on your machine and compare the results. Use the same type of address (i.e. both IPv4 and Ipv6 addresses should be the localhost addresses or should both be outside addresses) Are the same services open on both IPv4 and IPv6 on your system?

Monitoring Services and Graphing System Statistics with Zabbix

  1. Install the following packages on your system: zabbix-server-mysql zabbix-frontend-php zabbix-agent
  2. Create a database, a user, and schema following the instructions in the /usr/share/doc/zabbix-server-mysql/README.Debian
    • NOTE: These instructions use the MySQL command line, if you prefer you can create the same database, user, and schema using the Webmin software but you'll have to translate the command line instructions into the actions required in Webmin.
  3. Edit the server configuration file /etc/zabbix/zabbix_server.conf to include the correct database name, username and password used when you setup the database above.
  4. Edit the /etc/default/zabbix-server file to allow the server to start and then start the server with the service zabbix-server --full-restart command.
  5. Make the Apache and PHP configuration changes outlined in the /usr/share/doc/zabbix-frontend-php/README.Debian file to enable the Zabbix web application
  6. Access the Zabbix web application at http://yourserver/zabbix/ and complete the setup wizard.
  7. Login to http://yourserver/zabbix/ (where yourserver is the IP address or DNS name for your system) with the username and password found in the above README file.
  8. Enable monitoring of your Zabbix server host (Configuration -> Hosts)
  9. Add the templates appropriate for the services we are running on the server (HTTP, IMAP, MySQL, POP, SMTP, SSH)
  10. Explore some of the data available through Zabbix such as various graphs (Monitoring -> Graphs), Latest Data (Monitoring -> Latest Data), Screens (Monitoring -> Screens), and Events (Monitoring -> Events)
  11. Try temporarily stopping some of the services on your system (to simulate a problem) such as the Postfix SMTP server, courier-imap server, courier-pop3 server, etc. using the command line service command.
  12. Re-check the data in Zabbix with the services turned off, are you alerted of the problems? Make sure to turn the services back on when you're done.
  13. If you have additional time see if you can get email notifications of failed services working (see Administration -> Media Types -> Email and Configuration -> Actions)
  14. Note: The Zabbix manual at https://www.zabbix.com/documentation/2.4/manual may be helpful as well.