Installation et sécurisation d'une station Debian 3.0 stable15/05/2004 
  
	
	
	
	
	 
	 VIII. INSTALLATION D'UN DEMON NAGIOS
				
				
				 VIII.a. Archives
					
					
					
					
					
					
					
				
				 VIII.b. Création des groupes/utilisateurs
					
					
					
					
					
					
					
					
					
				
				 VII.c. Compilation/Installation de Nagios
					
					
					
					
				
				 VIII.d. Déplacement des répertoires et attribution de permissions spécifiques
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
					
				
				 VIII.e. Configuration d'Apache
					
					
					
					
				
				 VIII.f. Configuration des autorisations d'accès
					
					
					
					
					
					
					
				
				 VIII.g. Script d'initialisation et administrateurs Nagios
					
					
					
					
					
					
				
				 VIII.g. Et pour finir
					
					
					
				
			
	
  
	
	
	
	
	 
	
 VIII. INSTALLATION D'UN DEMON NAGIOS 
  
				
				
					Objectifs :
					
						
							Installer un serveur de supervision Nagios accessible en HTTPS.
						
						
							Sécuriser un minimum l'arborescence système.
						
						
							Utiliser sudo pour l'administration Nagios.
						
					
					Note : Pour  cette  installation,  certains  répertoires  sont  crées  dans
					/var/nagios/, je vous conseille donc d'utiliser une partition  dédiée  montée
					par exemple en rw,sync.
				  
				
 
  
					
					
						On récupère les sources à partir de www.nagios.org
					  
					cd /home/system/download/nagios/
md5sum *
35b75ece533dfdf4963a67ce4e77fc4a  imagepak-base.tar.gz
3ed26d8b49379e0dc14f448d5c2a70c3  imagepak-satrapa.tar.gz
5f48ecd9bad2c4d7c9d88d0b6f347ecf  nagios-1.1.tar.gz
0078c9c8137694181a4cdf596fdbd74f  nagios-plugins-1.3.1.tar.gz  
					
						On met à jour le système pour les packages nécessaires
					  
					apt-get install libgd-dev libfreetype6-dev libjpeg62-dev libpng2-dev\
  xlibs-dev zlib1g-dev -d
cd /var/cache/apt/archives/
/usr/bin/md5sum libgd-dev_1.8.4-17.woody2_i386.deb libfreetype6-dev_2.0.9-1_i386.deb\
  libjpeg62-dev_6b-5_i386.deb libpng2-dev_1.0.12-3.woody.3_i386.deb\
  xlibs-dev_4.1.0-16woody1_i386.deb zlib1g-dev_1%3a1.1.4-1.0woody0_i386.deb
5b6160127cb2dcd2f63fee1811647ada  libgd-dev_1.8.4-17.woody2_i386.deb
3e378f406f3c192cdfb8b4a82774203c  libfreetype6-dev_2.0.9-1_i386.deb
194c37acd4eefb512c2a006cb13bd86d  libjpeg62-dev_6b-5_i386.deb
3e30f2832304f64467801e966df1a764  libpng2-dev_1.0.12-3.woody.3_i386.deb
28a3ead8c6cbcaa064f05daff4c1dd9f  xlibs-dev_4.1.0-16woody1_i386.deb
38b5554abc9c9521451f408230df0e8c  zlib1g-dev_1%3a1.1.4-1.0woody0_i386.deb  
					
						On installe les packages :
					  
					mount -o remount,rw /usr
apt-get install libgd-dev libfreetype6-dev libjpeg62-dev libpng2-dev\
  xlibs-dev zlib1g-dev
mount -o remount /usr  
				
				
 VIII.b. Création des groupes/utilisateurs 
  
					
					
						Création de l'utilisateur restreint destiné à exécuter le démon :
					  
					groupadd nagios
adduser --no-create-home --disabled-password --quiet --ingroup nagios\
  --home /usr/local/nagios nagios 
Changing the user information for nagios
  Full Name []: Nagios Restricted User
  Other []: Used by the Nagios Daemon
Is the information correct? [y/n] y  
					
						Préparez l'administration nagios (installez sudo !) :
					  
					groupadd nagiosadm
adduser --no-create-home --disabled-password --quiet --home\
  /var/nagios/etc/ --ingroup nagiosadm nagiosadm
  Full Name []: Nagios Administrator
 Other []: Restricted via sudo login
passwd -l nagiosadm && chsh -s /bin/false nagiosadm  
					
						Que vous comptiez autoriser l'exécution de commandes externes ou non, créez
						un groupe dans lequel se trouveront nagios et le serveur web :
					  
					groupadd nagioscmd
usermod -G nagioscmd www-data
usermod -G nagioscmd nagios  
					
						Puis redémarrez Apache :
					  
					apachectl restart'  
				
				
 VII.c. Compilation/Installation de Nagios 
  
					
					cd /home/system/download/nagios/
tar zxvf nagios-1.1.tar.gz
chown -R root:root nagios-1.1
chmod 700 nagios-1.1/ && cd nagios-1.1
./configure --prefix=/usr/local/nagios --with-cgiurl=/cgi-bin\
  --with-htmlurl=/var/www/htdocs/nagios  --with-nagios-user=nagios\
  --with-nagios-grp=nagios --with-gd-lib=/usr/local/lib\
  --with-gd-inc=/usr/local/include
make all
cd /home/system/download/nagios/
tar zxvf nagios-plugins-1.3.1.tar.gz
chown root:root nagios-plugins-1.3.1
chmod 700 nagios-plugins-1.3.1 && cd nagios-plugins-1.3.1
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios\
  --with-nagios-group=nagios --with-cgiurl=/cgi-bin
make all  
					
						On y va pour l'installation :
					  
					mount -o remount,rw /usr
mkdir /usr/local/nagios 
cd /home/system/download/nagios/nagios-1.1
make install
cd /home/system/download/nagios/nagios-plugins-1.3.1
make install
chmod 3755 /usr/local/nagios  
				
				
 VIII.d. Déplacement des répertoires et attribution de permissions spécifiques 
  
					
					
						On déplace l'arborescence Web :
					  
					cd /usr/local/nagios
mv share /var/www/htdocs/nagios
ln -s /var/www/htdocs/nagios share
cd /var/www/htdocs/
chown -R root:webadm nagios
cd nagios
find . -type d -exec chmod 3775 {} \;
find . -type f -exec chmod 1664 {} \;  
					
						On prépare l'arborescence variable + configuration :
					  
					mkdir -p /var/nagios/{var,etc}
chown nagiosadm:nagioscmd /var/nagios /var/nagios/etc
chown nagios:nagioscmd /var/nagios/var
chmod 3755 /var/nagios /var/nagios/etc
chmod 3750 /var/nagios/var  
					
						On déplace l'arborescence var :
					  
					cd /usr/local/nagios
mv var/* /var/nagios/var/
rmdir var && ln -s /var/nagios/var var  
					
						On crée le fichier de transfert de commande :
					  
					mkdir /var/nagios/var/rw
chown nagios:nagioscmd /var/nagios/rw
chmod 3770 /var/nagios/var/rw  
					
						On donne des permissions convenables aux cgis :
					  
					cd /usr/local/nagios
chown -R nagios:www-data sbin
chmod 750 sbin/*  
					
						On restreint les droits sur les binaires Nagios :
					  
					cd /usr/local/nagios
chown -R root:nagios bin
chmod 750 bin bin/nagios
chown -R nagios:nagios libexec
chmod 755 libexec
chmod 750 libexec/* && chmod 755 libexec/check_nagios  
					
						On prépare le répertoire de stockage de la configuration :
					  
					cd /usr/local/nagios
mv etc/* /var/nagios/etc/
rmdir etc && ln -s /var/nagios/etc etc
cd /var/nagios/etc
chown nagiosadm:nagioscmd *
chmod 1640 *  
					
						On a fini avec /usr, on remonte en lecture seule : 
					  
					mount -o remount /usr  
				
				
 VIII.e. Configuration d'Apache 
  
					
					
						Editez /etc/apache/httpd.conf pour ajouter :
					  
					LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
					
############################
### Configuration Nagios ###
############################
ScriptAlias /cgi-bin/ "/usr/local/nagios/sbin/"
<Directory "/var/www/htdocs/nagios">
  Options SymLinksIfOwnerMatch
  AllowOverride AuthConfig
  Order allow,deny
  Allow from all
</Directory>
<Directory "/usr/local/nagios/sbin/">
  AllowOverride AuthConfig
  Options ExecCGI
  Order allow,deny
  Allow from all
</Directory>  
					
						puis redémarrez Apache. 
						 
						Note : En ce qui me concerne, je place  la  configuration  Nagios  dans  un
						virtualhost activant la fonctionnalité SSL.
					  
				
				
 VIII.f. Configuration des autorisations d'accès 
  
					
					
						Les autorisations d'accès au site statique :
					  
					cd /var/www/htdocs/nagios
cat > .htaccess << EOF
> AuthName "Nagios"
> AuthType Basic
> AuthUserFile "/usr/local/nagios/etc/htpasswd.users"
> require valid-user
> EOF
chown root:webadm .htaccess
chmod 1664 .htaccess  
					
						Récupération du fichier d'autorisation htaccess pour les cgis :
					  
					cp /var/www/htdocs/nagios/.htaccess sbin/
chown nagios:www-data sbin/.htaccess
chmod 440 sbin/.htaccess  
					
						Créez votre fichier  de  mot  de  passe  /var/nagios/etc/htpasswd.users  avec
						htpasswd et :
					  
					chown nagiosadm:nagioscmd htpasswd.users
chmod 1640 htpasswd.users  
				
				
 VIII.g. Script d'initialisation et administrateurs Nagios 
  
					
					
						Créez votre script d'initialisation dans /etc/init.d/init_nagios.sh à partir
						de l'annexe 'ANNEXE 14 - Script d'initialisation Nagios' puis :
					  
					chmod 750 init_nagios.sh
update-rc.d init_nagios.sh defaults  
					
						Ajoutez les utilisateurs que  vous  voulez  dans  le  groupe  nagiosadm  puis
						visudo et :
					  
					Cmnd_Alias EDIT_NAGIOS_CONF=/usr/bin/vim
Cmnd_Alias INIT_NAGIOS=/etc/init.d/init_nagios.sh [A-z]*
%nagiosadm ALL=(nagiosadm)NOPASSWD:EDIT_NAGIOS_CONF
%nagiosadm ALL=NOPASSWD:INIT_NAGIOS  
					
						Note : Je sais que ce n'est pas la panacée (=> man vi{m})
					  
				
				
 
  
					
					
						Si vous décidez d'ajouter des logos :
					  
					cd /var/www/htdocs/nagios/images/logos
tar zxvf /home/system/download/nagios/imagepak-base.tar.gz
tar zxvf /home/system/download/nagios/imagepak-satrapa.tar.gz
chown -R root:webadm *  
				
			
	
 
 
		Copyright (c) 2003 Simon Castro, scastro [ at ] entreelibre.com. 
		 
		Permission is granted to copy, distribute and/or modify this document under the
		terms of the GNU Free Documentation License, Version 1.2  or  any later version
		published by the Free Software Foundation; with  the  Invariant  Sections being
		LIST THEIR  TITLES,  with  the  Front-Cover  Texts  being  LIST, and   with the
		Back-Cover Texts being LIST. 
		You must have received a copy of the license with this document and  it  should
		be présent in the fdl.txt file.  
		If you did not receive this file or if you don't think this  fdl.txt license is
		correct,  have  a  look  on  the  official  http://www.fsf.org/licenses/fdl.txt
		licence file.
	 
       |