XIII. 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.
XIII-A. Archives▲
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
XIII-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'
XIII-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
XIII-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
XIII-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.
XIII-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
XIII-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})
XIII-H. Et pour finir▲
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 *