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.
|