Installing Nagios on Fedora

If you follow these instructions, here's what you'll end up with:
  • Nagios and the plugins will be installed underneath /usr/local/nagios
  • Nagios will be configured to monitor a few aspects of your local system (CPU load, disk usage, etc.)
  • The Nagios web interface will be accessible at http://localhost/nagios/
  • Preparing Linux for Nagios installation
    • Make sure you've installed the following packages on your Fedora installation before continuing
      • Apache
      • GCC compiler
      • GD development libraries
    •  They can be installed by running
      • yum install httpd
      • yum install gcc
      • yum install glibc glibc-common
      • yum install gd gd-devel
    • Become the root user.
      • su -l
    • Create a new nagios user account and give it a password.
      • /usr/sbin/useradd -m nagios passwd nagios
    • Create a new nagcmd group for allowing external commands to be submitted through the web interface. Add both the nagios user and the apache user to the group.
      • /usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd apache
  • Create a directory for storing the downloads.
    • mkdir ~/downloads
    • cd ~/downloads
  • Download the source code tarballs of both Nagios and the Nagios plugins
    • wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.1.2.tar.gz
    • wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
  • Compile and Install Nagios
    • Extract the Nagios source code tarball.
      • cd ~/downloads tar xzf nagios-3.1.2.tar.gz cd nagios-3.1.2 
    • Run the Nagios configure script, passing the name of the group you created earlier like so
      • ./configure --with-command-group=nagcmd
    • Compile the Nagios source code.
      • make all
    • Install binaries, init script, sample config files and set permissions on the external command directory.
      • make install
      • make install-init
      • make install-config
      • make install-commandmode
  • Customize Configuration
    • Sample configuration files have now been installed in the /usr/local/nagios/etc directory. These sample files should work fine for getting started with Nagios. You'll need to make just one change before you proceed... 
      •  Edit the /usr/local/nagios/etc/objects/contacts.cfg config file with your favorite editor and change the email address associated with the nagiosadmin contact definition to the address you'd like to use for receiving alerts.
        • nano /usr/local/nagios/etc/objects/contacts.cfg
  • Configure the Web Interface
    • Install the Nagios web config file in the Apache conf.d directory.
      • make install-webconf
    • Create a nagiosadmin account for logging into the Nagios web interface. Remember the password you assign to this account - you'll need it later.
      • htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
    • Restart Apache to make the new settings take effect.
      • service httpd restart
  • Compile and Install the Nagios Plugins
    • Extract the Nagios plugins source code tarball.
      • cd ~/downloads tar xzf nagios-plugins-1.4.11.tar.gz cd nagios-plugins-1.4.11
    • Compile and install the plugins.
      • ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install
  • Start Nagios
    • Add Nagios to the list of system services and have it automatically start when the system boots.
      • chkconfig --add nagios chkconfig nagios on 
    • Verify the sample Nagios configuration files
      • /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    • If there are no errors, start Nagios.
      • service nagios start
  • Modify SELinux Settings
    • Fedora ships with SELinux (Security Enhanced Linux) installed and in Enforcing mode by default. This can result in "Internal Server Error" messages when you attempt to access the Nagios CGIs.
      • See if SELinux is in Enforcing mode.
        • getenforce
      • Put SELinux into Permissive mode.
        • setenforce 0
      • To make this change permanent, you'll have to modify the settings in /etc/selinux/config and reboot.
    • Instead of disabling SELinux or setting it to permissive mode, you can use the following command to run the CGIs under SELinux enforcing/targeted mode:
      • chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
  • Login to the Web Interface
    • You should now be able to access the Nagios web interface at the URL below. You'll be prompted for the username (nagiosadmin) and password you specified earlier.
      • http://localhost/nagios/ 

To make sure an snmp check is working you can issue the following command in /usr/local/nagios/libexe.

./check_snmp -H -p -w 35 -c 40 -o 1.3.6.1.4.1.1748.3.1.1.6.0
 

    Preparing Fedora

    # Install wget a utility for retrieving files using the HTTP or FTP protocols
    yum install wget

    # Install wput a utility for uploading files or whole directories to remote ftp-servers
    yum install wput

    #install apache
    install httpd

    #install GNU Compiler Collection (GCC). A compiler system produced by the GNU Project #supports languages: C, C++, Objective-C, Fortran, and Java compiler
    yum install gcc

    #install the corresponding desired libraries
    yum install gcc-ada
    yum install gcc-java
    yum install gcc-objc

    Installing and Configuring TFTP Server on Linux

    • Install
      • yum install tftp-server
    • Setup 
      • nano /etc/xinetd.d/tftp
        • Find disable = yes, make it no 
        • change server_args to the location that you want the root of the tftp server to be in 
          • -v is necessary so the tftp will log all requests 
          • -c option allows you to upload files to the tftp server without them first existing






          • server_args             = -v -s /tftpboot 
    • Start TFTP Server (Note: auto-startup tftp might not be good idea)
      •  /sbin/chkconfig tftp on
      • /sbin/chkconfig xinetd on




      • /sbin/service xinetd start 
    • Testing
      •  touch /tftpboot/test
      • From another computer, Linux, OS X:
        • tftp [ip of tftp server]
        • tftp get test
        • tftp quit
      • From another computer, Windows OS:
        • tftp 192.168.0.1 GET test
        • If you can see “test” under the current directory, then this TFTP server should work properly.
        • If not, check the firewall, open UDP port 69. You can run system-config-security to open it.
      • You can use grep tftp /var/log/messages to see the log

    Installing and Configuring Apache & PhpMyAdmin on Fedora

    If you install Phpmyadmin on Fedora using yum, it will place the files in /usr/share/phpmyadmin
    and will add phpmyadmin.conf to the /etc/httpd/conf.d folder. To configure http://[url]/phpmyadmin to go to the /usr/share/phpmyadmin folder

    Remote Desktop from linux to windows

    To be able to rdp from a linux box to a windows box you must have find a program that uses windows' proprietary rdp protocol. http://www.rdesktop.org/ seems to be the best program this. The rdesktop software requires libX11-devel to be installed

    To install rdesktop:
    1. yum install libX11-devel
    2. cd  /home/[username]/Download
    3. wget http://prdownloads.sourceforge.net/rdesktop/rdesktop-1.6.0.tar.gz?download
    4. tar -xvzf rdesktop-1.6.0.tar.gz
    5. cd redesktop-1.6.0
    6. ./configure
    7. make
    8. makeinsall
    To run rdesktop:
    1. run rdesktop from the command line

    VPN From Fedora to Edgemarc

    To setup a PPTP connection in Fedora that mimics the default for a windows VPN (PPTP) connection, do the following: 
    • Add PPTP VPN connection
    • Set host, username and password
    • Click advanced
    • Check only MSCHAPv2 for authentication methods
    • Click use Point-to-Point encryption (MPPE)
    • Leave Security at "All Available"
    • Under IPv4 settings
    • Under routes
    • Uncheck "use this resource only for resources on its network"

    Installing X-lite on Fedora

    • Download the linux distro of x-lite 
    • Download the following dependent pacakages
      • yum -y install compat-libstdc++-33 compat-libstdc++-296

    Start Services Automatically in Linux

    • add the script to be executed at startup to /etc/rc.d/rc.local
    • if you dont want to follow the symlinks in /etc/rc.d/* directories you can use the graphical interface to configure
    • The following cli commands will also make services start automatically
      • chkconfig snmpd --list
      • chkconfig snmpd on

    Installing Apache on Fedora

    • Restart Apache
      • apachectl restart
    • Edit httpd.conf
      • nano /etc/httpd/conf/httpd.conf
    • Make sure mod rewrite is loaded
      • uncomment mod_rewrite line in httpd.conf
    • When installing php, use installer and add the following lines to httpd.conf
      • LoadModule php5_module "c:/program files/php/php5apache2_2.dll"
      • AddType application/x-httpd-php .php .php5
      • PHPIniDir "c:/program files/php"