IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Installation et sécurisation d'une station Debian 3.0 stable


précédentsommairesuivant

V. Sécurisation approfondie

NDR : Vous devez savoir ce que vous faites dans les parties présentées ici.

V-A. Installation du patch OpenWall

Le patch est téléchargeable sur http://www.openwall.com/linux/

 
Sélectionnez
mount -o remount,rw /usr
cd /usr/src
cp -r kernel-2.2.20-fw kernel-2.2.20-fwow
ln -s kernel-2.2.20-fwow linux-ow
md5sum /home/system/download/linux-2_2_23-ow1_tar.gz
cb51cfdd978eba987ca39d09960e17c3\
  /home/system/download/linux-2_2_23-ow1_tar.gz
cp /home/system/download/linux-2_2_23-ow1_tar.gz .
tar zxvf linux-2_2_23-ow1_tar.gz
cd linux-ow
patch -p1 < ../linux-2.2.23-ow1/linux-2.2.23-ow1.diff

Deux fichiers ne passent pas avec notre noyau 2.2.20 :

 
Sélectionnez
find . -name *.rej
./fs/fat/inode.c.rej
./fs/select.c.rej

=> Mais les modifications manuelles sont triviales.

On prépare la compilation du nouveau noyau :

 
Sélectionnez
sed 's/^EXTRAVERSION\ =\ -fw$/EXTRAVERSION\ =\ -fw-ow/' Makefile > .fwow
cat .fwow > Makefile && rm -f .fwow

Si vous lancez make menuconfig à ce moment, vous trouverez un nouveau menu nomme 'Security options'. Deux options demeurent non-activées après le passage du patch : 'Restricted /proc' 'Destroy shared memory segments not in use' => Vous pouvez activer 'Restricted /proc' mais il vous faudra une configuration supplémentaire des comptes administrateurs avec un outil comme sudo pour éviter que les admins ne passent root à tout bout de champ:

On compile :

 
Sélectionnez
make dev && make modules && make bzImage

On installe :

 
Sélectionnez
mount -o remount,rw /boot
cp arch/i386/boot/bzImage /boot/vmlinuz-2.2.20-fw-ow
cp System.map /boot/System.map-2.2.20-fw-ow
cd /boot/
ln -s vmlinuz-2.2.20-fw-ow linux-ow

Installez les modules :

 
Sélectionnez
cd - && make modules_install

On modifie /etc/lilo.conf pour ajouter :

 
Sélectionnez
image=/boot/linux-ow
 	label=linux22ow
	read-only
	restricted

Et on lance 'lilo'.

On reboote et on passe sur le noyau avec OpenWall. Si tout s'est bien passe, vous pouvez changer le noyau charge par défaut par lilo en supprimant restricted de l'ancien noyau.

V-B. Installation du wrapper libsafe

L'archive est disponible sur :
http://www.research.avayalabs.com/project/libsafe/

 
Sélectionnez
cd /home/system/applis
md5sum ../download/libsafe-2_0-16.tgz
    6b7b6e6df84d4afb469ccc66d04fc24d  ../download/libsafe-2_0-16.tgz
tar zxvf ../download/libsafe-2_0-16.tgz
find ./libsafe-2.0-16/ -type f \( -perm -004000 -o -perm -002000 \) -exec  ls\
    -la {} \
chown -R root:root libsafe-2.0-16/
chmod 750 libsafe-2.0-16/
cd libsafe-2.0-16/
make
mount -o remount,rw /usr
make install => Entrer Yes au prompt.
mount -o remount,ro /usr

Testez la librairie :

 
Sélectionnez
export LD_PRELOAD=/home/system/applis/libsafe-2.0-16/src/libsafe.so
Lancez les exploits dans /home/system/applis/libsafe-2.0-16/exploits.

Installez la libsafe dans /etc/ld.so.preload si le fichier n'existe pas :

 
Sélectionnez
ll /etc/ld.so.preload || echo /lib/libsafe.so.2 > /etc/ld.so.preload
chmod 644 /etc/ld.so.preload

Rebootez le système (?!).

V-C. Conserver une empreinte de vérification d'intégrité du système

 

Installez le package Debian :

 
Sélectionnez
mount -o remount,rw /usr

dselect => installation de 'aide'
=> La préconfiguration ne fonctionne pas, car elle tente d'exécuter un script dans /tmp
=> 'Initalize aide database ?' -> No

 
Sélectionnez
mount -o remount,ro /usr

Préparez le terrain :

 
Sélectionnez
chmod 750 /etc/aide
cp /etc/aide/aide.conf /etc/aide/aide.conf.orig
chmod 640 /etc/aide/*
mkdir /home/system/aide

Editez /etc/aide/aide.conf et modifiez le de telle sorte que :

 
Sélectionnez
[...]
database=file:/home/system/aide/aide.db
database_out=file:/home/system/aide/aide.db.new
[...]
# MD5 sum files - especially useful with debsums -g
/var/lib/dpkg/info/([^\.]+).md5sums Databases
[...] et a la fin du fichier [...]
/etc ConfFiles
/home/system Binlib
!/home/system/aide
[...]

Initialisez la base de données : aide --init -V200

NDR : Est-il trivial de vous reccomander de ne pas faire de modifications pendant l'initialisation ?

Première sauvegarde de la base de données (la suite est donnée à titre d'exemple) :
Insérez une disquette puis 'mke2fs /dev/fd0'

 
Sélectionnez
mount /dev/fd0 /mnt
cp /home/system/aide/aide.db.new /home/system/aide/aide.db
/usr/bin/md5sum /home/system/aide/aide.db.new > /mnt/aide.db.md5
mv /home/system/aide/aide.db.new /mnt/aide.db
cp /usr/bin/aide /mnt/
/usr/bin/md5sum /usr/bin/aide > /mnt/aide.md5
sed 's/file:\/home\/system\/aide\//file:.\//' /etc/aide/aide.conf >\
  /mnt/aide.conf
sync
cd /mnt
grep `/usr/bin/md5sum aide | cut -d ' ' -f 1` aide.md5
  => Doit vous renvoyer le contenu du fichier aide.md5
grep `/usr/bin/md5sum aide.db | cut -d ' ' -f 1` aide.db.md5
  => Doit vous renvoyer le contenu du fichier aide.db.md5
diff /etc/aide/aide.conf ./aide.conf 
  3,4c3,4
  < database=file:/home/system/aide/aide.db
  < database_out=file:/home/system/aide/aide.db.new
  ---
  > database=file:./aide.db
  > database_out=file:./aide.db.new
cd && umount /mnt

Sortez la disquette et protégez-la en écriture.

Vérifier le système avec le support de sauvegarde :
Insérez la disquette

 
Sélectionnez
mount -o ro /dev/fd0 /mnt && cd /mnt
./aide -c ./aide.conf --check -V200
cd && umount /mnt

Mise à jour de la base de données sauvegardée :

 
Sélectionnez
aide --update -V200
cd /home/system/aide
mv aide.db.new aide.db
puis sauvegardez cette nouvelle base comme pour la création.

NDR : Ce qui précède est donné à titre d'exemple, Il serait plus approprié en cas de doute de booter le système sur un support amovible sur protégé en écriture et d'effectuer la vérification d'intégrité à partir de ce support.

MAN : aide, aide.conf

V-D. Gestion des quotas

NDR : Vous devez commencer a connaitre le système donc je n'explique plus les détails déjà présentés plusieurs fois…

Recompilation du noyau et installation du package :
Compilez un nouveau noyau en activant 'Filesystems -> Quota support'.
Rebootez, sauvez la configuration etc…
Installez le package 'quota'.

 
Sélectionnez
=> 'Send daily reminders' -> No

Configuration des partitions :
Modifiez le fichier /etc/fstab pour ajouter les flags relatifs aux quotas :

 
Sélectionnez
/dev/sda6  /var     ext2  nodev,usrquota,grpquota                      0 2
/dev/sda7  /var/log ext2  noexec,nosuid,nodev,sync,usrquota,grpquota   0 2
/dev/sda8  /tmp     ext2   noexec,nosuid,nodev,usrquota,grpquota       0 2
[...]
/dev/sda10 /home    ext2   nodev,usrquota,grpquota                     0 2

Ajoutez les fichiers de quotas :

 
Sélectionnez
for i in `echo /var /var/log /tmp /home` ; do \
	touch $i/quota.user && touch $i/quota.group ; done
for i in `echo /var /var/log /tmp /home` ; do \
	chmod 600 $i/quota.user && chmod 600 $i/quota.group ; done
for i in `echo /var /var/log /tmp /home` ; do \
	chown root:root $i/quota.user && chown root:root $i/quota.group ; done

Remontez les partitions :

 
Sélectionnez
for i in `echo /var /var/log /tmp /home` ; do \
	mount -v -o remount $i ; done

Suppression d'un service inutile pour nous :

 
Sélectionnez
update-rc.d -f quotarpc remove

Une première verification :

 
Sélectionnez
/sbin/quotacheck -am

Edition des quotas pour les groupes :
Lancez 'edquota -g users' et editez les quotas pour le groupe users :

 
Sélectionnez
/dev/sda8          0      20000      20000          0     5000     5000
/dev/sda10        17     100000     100000          9    10000    10000

Lancez edquota -g adm et editez les quotas pour le groupe adm :

 
Sélectionnez
/dev/sda8          0       5000      10000          0    10000    10000
/dev/sda10        17     200000     250000          9    50000    50000

NDR : Utilisez df -[h|i] de facon à obtenir les informations sur l'ensemble du disque pour le choix des quotas précédents.

Créez un utilisateur fictif qui servira de modèle de mise en place de quotas :

 
Sélectionnez
adduser --no-create-home --disabled-password --quiet --ingroup users quotauser
Changing the user information for quotauser
Enter the new value, or press return for the default
	Full Name []: Quota template user    
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: Disabled
  Is the information correct? [y/n] y
passwd -l quotauser
chsh -s /bin/false quotauser

Mettez en place les quotas pour le modèle d'utilisateur :
Lancez 'edquota -u quotauser' et éditez les quotas :

 
Sélectionnez
/dev/sda8          0       2000       2000          0      500      500
/dev/sda10         0      10000      10000          0     1000     1000

Vous pouvez vérifier les quotas mis en place avec : 'quota -vu quotauser'

Pour un nouvel utilisateur {username}, vous pouvez associer ce modèle de quotas avec 'edquota -p quotauser {username}'.

Modifiez '/etc/adduser.conf' pour inclure ce modàle dans la définition des quotas :

 
Sélectionnez
QUOTAUSER="quotauser"

Activation - Désactivation - Etat des quotas (quelques exemples) :
Activation : /etc/init.d/quota start
Désactivation : /etc/init.d/quota stop
Etat (Active ou Desactive ? ) : quotaon -pa
Statistiques : repquotas -ugva

NDR : Le fichier d'initialisation des quotas au boot est placé dans /etc/rcS.d et sera donc active à chaque redémarrage de la station.

MAN : quotacheck, quotaon, quotaoff, quotastats, repquota, edquota, quota

V-E. Sécurisation PAM : Gestion des limites

Limites aux sessions :

Vérifiez avec 'grep pam_limits.so /etc/pam.d/ssh' que la librairie est activee (c'est le cas par défaut).
Constatez avec 'grep pam_limits.so /etc/pam.d/login' que la librairie n'est pas activée par défaut : => Activez la en décommentant la ligne. => Faites de même pour /etc/pam.d/su

Editez /etc/security/limits.conf en ajoutant les parametres suivants (exemple pour le groupe administrateurs) :

 
Sélectionnez
*		hard	core		0
*		hard	memlock		4096
*		hard	fsize		10000
*		hard	maxlogins	3
*		hard	cpu		10

@adm	hard	nofile		1024
@adm	hard	nproc		256
@adm	hard	maxlogins	5

@users	hard	nofile		256
@users	hard	nproc		32

NDR : Pour afficher les limites d'un utilisateur, entrez 'ulimit -a'

MAN : bash, ulimit

V-F. Disquette de secours avec Tomsrtbt

La distribution tomsrtbt est téléchargeable sur http://www.toms.net/rb/

 
Sélectionnez
cd /home/system/applis
/usr/bin/md5sum /home/system/download/tomsrtbt-2.0.103.tar.gz 
    d5ee50efb28986d564547d5da5de2483 \
/home/system/download/tomsrtbt-2.0.103.tar.gz              
tar zxvf /home/system/download/tomsrtbt-2.0.103.tar.gz

cd tomsrtbt-2.0.103/

Insérez une disquette vierge.

 
Sélectionnez
./install.s

Vous avez désormais une disquette de secours.
En rebootant sur la disquette, deux choix vous sont proposés :

 
Sélectionnez
* Resolution de l'ecran.
* map du clavier.

Et puis en fait, le mieux est que vous lisiez la FAQ…

V-G. Installation de Prelude-Lml pour une remontee de log securisée vers un serveur centralisé

L'installation de Prelude-Lml est désormais présentée dans une autre documentation. Ne figurent ici que les aspects de configuration du moniteur Prelude qui sont spécifique à l'installation de notre station sécurisée.

La nouvelle documentation est intitulée « Centralized and secured remote logging solution with Prelude-Lml on Debian : How to securely install and set up the Prelude-Lml engine ».

Elle est disponible sur http://www.entreelibre.com/scastro/prelude/ .

V-G-1. Configuration initiale

Nous abordons ici la remontée de certains des logs 'sécurité' générés par la configuration présentée dans cette documentation.

NDR : Par la suite, nous emploierons le terme 'sonde' à la place de 'sensor'.
NDR : Cette configuration est minimale, je vous conseille, de lire les documentations disponibles sur prelude et de procéder à votre propre paramétrage. Il est par exemple possible, entre autres, de recompiler la libsafe pour qu'elle puisse se comporter en sonde prelude.

Modifiez '/home/prelude/etc/prelude-sensors/sensors-default.conf' :

 
Sélectionnez
> node-name = Test Secured Debian;
> node-location = Salle serveur;

Modifiez '/home/prelude/etc/prelude-lml/plugins.rules' :

 
Sélectionnez
< Paxmod   -   .* PAX: .*
> #Paxmod   -   .* PAX: .*

Modifiez '/home/prelude/etc/prelude-lml/prelude-lml.conf' :

Nos fichier à surveiller sont (voir Installation et premiers pas avec Modular-Syslog) : /var/log/fw_deny.log, /var/log/fw_accept.log et /var/log/sécurité.log :

 
Sélectionnez
< file = /var/log/auth.log
< file = /var/log/messages
> file = /var/log/sécurité.log
> file = /var/log/fw_accept.log
> file = /var/log/fw_deny.log

Nous allons charger notre propre série de règles :

 
Sélectionnez
< ruleset=/home/prelude/etc/prelude-lml/ruleset/simple.rules;
> #ruleset=/home/prelude/etc/prelude-lml/ruleset/simple.rules;
> ruleset=/home/prelude/etc/prelude-lml/ruleset/debian-secinst.rules

Créez '/home/prelude/etc/prelude-lml/ruleset/debian-secinst.rules' :

 
Sélectionnez
# Customized prelude-lml rules file from debian-secinst v0.1.7 doc 
# Simon Castro <scastro [at] entreelibre.com>
# These one are from the simple.rules standard file.
regex=PAM_unix\[([0-9]+)\][^(]+\(uid=([0-9]+)\) -> ([^ ]+);\
class.name=Authentication Failure; impact.completion = failed;\
impact.type = other; impact.severity = high;\
impact.description=Process $1 attempted to change UID from $2 to $3; 
regex=entered promiscuous mode; class.name=Promiscuous mode detected;\
impact.completion = succeeded; impact.type = other;\
impact.severity = medium; impact.description=A sniffer is probably\
running on this machine;
# A few of rules only of this file will be used as we don't configure\
prelude-lml to look into auth.log
include = ssh.rules;
# These are personal rules...
regex=left promiscuous mode; class.name=Promiscuous mode end detected;\
impact.completion = succeeded; impact.type = other;\
impact.severity = medium; impact.description=A sniffer is probably\
running on this machine;
# Uncomment one of the two ruleset below
#include = ipchains.rules;
#include = netfilter.rules;

Créez '/home/prelude/etc/prelude-lml/ruleset/ipchains.rules' a partir de 'Annexe 5 - Fichier de règles pour un support Ipchains avec Prelude-lml' si vous utilisez un firewall IpChains.

Attribuez les permissions correctes aux fichiers crées :

 
Sélectionnez
cd /home/prelude/etc/prelude-lml/ruleset/
chown prelude:prelude debian-secinst.rules ipchains.rules
chmod 640 debian-secinst.rules ipchains.rules

Notez qu'avec cette version de Prelude, il n'est apparemment plus possible de donner des droits restreints aux fichiers de logs que vous monitorez. Par défaut, vos fichiers de logs (dans /var/log) sécurité.log et fw_[deny| accept].log doivent être en 640 et appartenir a root:adm (si vous avez suivi cette procédure). Il se trouve que si vous ne configurez pas ces fichiers en 644 au minimum avec cette installation, le moniteur prelude ne sera pas capable de les consulter après avoir perdu ses privilèges super-utilisateur.

Et redémarrez la sonde prelude-lml :

 
Sélectionnez
/etc/init.d/preludelogmonitor.sh restart

V-H. Sécurisation approfondie avec GrSecurity

GrSecurity est constitue d'un patch pour le noyau Linux et d'un utilitaire destine à être utilisé en espace utilisateur. Le patch accroît la sécurité du système en apportant des restrictions aux systèmes de fichiers /proc et /tmp, aux actions réalisables par des processus 'chrootes', en créant un espace de stockage d'ACLs (Access Control Lists) permettant d'implémenter un système base sur le modèle MAC (Mandatory Access Control) pour tous les utilisateurs et y compris pour le super-utilisateur (la liste n'est pas exhaustive :) ). La suite GrSecurity inclut également Pax : une protection du noyau permettant l'implémentation de pages mémoire non exécutables et un espace d'adressage aléatoire.

Nous allons tout d'abord commencer par patcher le noyau du système puis nous aborderons l'intégration des listes de contrôle d'accès. Notez que vous devez choisir entre cette procédure et celle présentée en '5.1. Installation du patch OpenWall'.

Le patch noyau GrSecurity et l'outil d'administration GrAdm sont tous deux disponibles sur www.grsecurity.net et l'utilitaire chpax est disponible sur pageexec.virtualave.net
.
Je ne peux que vous indiquer de lire consciencieusement la documentation présente sur le site avant de procéder aux manipulations décrites ci-après…
Avant de commencer, sachez enfin que cette documentation s'applique pour un noyay 2.4.22 (noyau non disponible dans la branche stable des packages Debian) donc à vous de choisir…

V-H-1. Patch du noyau : Compilation et installation

Récupérez le patch du noyau ainsi que chpax, vérifiez les MD5 et stockez les dans /home/system/download/.

Récupérez les sources du noyau 2.4.22, vérifiez le md5 puis :

 
Sélectionnez
mount -o remount,rw /usr
mount -o remount,exec /tmp
cd /usr/src
mv /home/system/download/linux-2.4.22.tar.bz2 .
tar jxvf linux-2.4.22.tar.bz2
chown -R root:root linux-2.4.22
chmod 750 linux-2.4.22
mv linux-2.4.22 kernel-source-2.4.22
ln -s kernel-source-2.4.22 linux-2.4.22

Patchez les sources du noyau :

 
Sélectionnez
cd /usr/src
patch -p0 < /home/system/download/grsecurity-1.9.12-2.4.22.patch

Editez le flag EXTRAVERSION du fichier linux-2.4.22/Makefile pour ajouter un commentaire du type '-grsec'.

Si vous utilisiez le noyau 2.4.18 de Debian, récuperez le fichier de config que vous avez du sauvegarder dans /boot et placez le dans /usr/src/linux-2.4 .22/.config puis 'make oldconfig' - sinon 'make menuconfig' et configurez votre nouveau noyau.

Choisissez les options GrSecurity que vous voulez activer - celles qui ont été utilisees lors de la rédaction de cette documentation sont présentées dans 'Annexe 11 - Parametres de configuration d'un noyau GrSecurity' - puis compilez et installez votre nouveau noyau en suivant la procédure présentée dans 'II. COMPILATION DU NOYAU'.

Notes sur le choix des options : Si vous activez l'option 'Deny writing to /dev/kmem, /dev/mem, and /dev/port' dans le menu 'Address Space Protection' et que votre système est un guest VmWare (tm), il ne bootera plus… J'utilise le gid 4 pour l'option 'CONFIG_GRKERNSEC_PROC_GID', ce qui permet aux membres du groupe 'adm' d'obtenir des permissions que je juge appropriées pour les administrateurs non-root du serveur. J'active l'option 'CONFIG_GRKERNSEC_CHROOT_SYSCTL' car je préfère créer un script d'initialisation chargé de positionner les bonnes valeurs lors du boot. Si vous préférez sécuriser « encore plus » votre installation, désactivez cette option, mais faites attention que les gids que vous utiliserez dans les options 'CONFIG_GRKERNSEC_AUDIT_GID' , 'CONFIG_ GRKERNSEC_TPE_GID', 'CONFIG_GRKERNSEC_SOCKET_ALL_GID', 'CONFIG_GRKERNSEC _SOCKET_CLIENT_GID' et 'CONFIG_GRKERNSEC_SOCKET_SERVER_GID' ne soient pas déjà utilisés sur votre système. Une fois votre nouveau noyau installe, rebootez le système.

V-H-2. Configuration du système

Créez les groupes suivants :

 
Sélectionnez
for i in `echo grsec_tpe grsec_sockall grsec_sock_cl grsec_sock_srv grsec\
	_audit`; do groupadd $i; done

Créez le fichier /etc/sysctl.conf.grsecurity à partir du fichier présent en 'Annexe 12 - Configuration Sysctl de GrSecurity' et parametrez ce fichier selon vos besoins en mettant à jour les gid avec les groupes que vous venez de créer.

!!! Attention !!! La suite peut rendre votre système instable.

Testez cette configuration avec la commande :

 
Sélectionnez
/sbin/sysctl -p /etc/sysctl.conf.grsecurity

Si tout se passe bien et que le comportement du serveur répond à vos attentes, positionnez la variable 'grsec_lock' de sysctl.conf.grsecurity à '1' puis créez le fichier '/home/system/security/apply_grsec.sh' :

 
Sélectionnez
#!/bin/sh
/sbin/sysctl -p /etc/sysctl.conf.grsecurity

Configurez le système pour que ce script soit appellé au boot :

 
Sélectionnez
cd /etc/rc2.d
ln -s /home/system/security/apply_grsec.sh S{XX}apply_grsec

où {XX} correspond à votre priorité de lancement par rapport aux autres scripts exécutés lors du boot du système.

Modifiez votre fichier de configuration syslog pour stocker les alertes dans le fichier de log sécurité grâce aux entrées suivantes :

 
Sélectionnez
kern.* %regex -m "PAX" %classic /var/log/sécurité.log
kern.* %regex -m "grsec" %classic /var/log/sécurité.log

La configuration initiale est terminée… Voici la politique que j'applique personnellement (elle est fonction de l'usage final du serveur) : Tous les operateurs du système sont dans grsec_sock_srv; Les serveurs Apache et Websphere sont dans grsec_audit et dans grsec_tpe; Si Apache n'a pas besoin d'établir de connexions distantes (Attention, c'est le cas pour le module WAS), je place Apache dans grsec_sock_cl; Les éventuels utilisateurs guests sont placés dans grsec_sockall et dans grsec_tpe. Une dernière note relative à l'interaction de notre noyau avec une installation Websphere telle que présentée dans Installation et sécurisation d'un serveur d'application Websphere : Si vous avez suivi la procédure d'installation de ce document le serveur d'application ne pourra plus démarrer et vous obtiendrez un message d'erreur du type :

 
Sélectionnez
[...] kernel: grsec: From a.b.c.d: Proc handler: being fed garbage 2  bytes\
      sent 208 require
[...] kernel: PAX: From a.b.c.d: terminating task: /usr/local/websphere500/\
      appserver/java/jre/bin/exe/java(java):4773, uid/euid: [...]
[...] kernel:grsec: From a.b.c.d: attempted resource overstep by requesting\
      4096 for RLIMIT_CORE against limit 0 by (java:4773) [...],  parent (start\
      Server.sh:19644) [...]

Vous pouvez corriger ce probleme via :

 
Sélectionnez
cd /home/system/applis/chpax-0.5/
./chpax -s /usr/local/websphere500/appserver/java/jre/bin/exe/java

Et vérifiez que vous obtenez ceci avec chpax -v :

 
Sélectionnez
* Paging based PAGE_EXEC       : enabled
* Trampolines                  : not emulated
* mprotect()                   : restricted
* mmap() base                  : randomized
* ET_EXEC base                 : not randomized
* Segmentation based PAGE_EXEC : disabled

Pour finir, le positionnement de l'utilisateur WAS dans le groupe d'audit génère une quantité quelque peu importante de logs lors des stop/start du serveur d'applications, ceux-ci sont cependant facilement traçables par le critère « parent (stopServer.sh:17515)" par exemple.

V-H-3. Installation et configuration de Gradm et des ACLs

Avant de commencer, sachez que cette installation va fortement diminuer les droits de l'utilisateur root. Pour effectuer des tâches d'administration telles que la mise à jour des packages ou un reboot du serveur, vous devrez utiliser la commande 'gradm -a' de facon à passer en mode administration.

Lors de l'installation de Gradm, vous aurez à saisir un mot de passe pour la commande Gradm (passage en mode administration ou désactivation des ACLs), il paraît donc judicieux de saisir un mot de passe complexe ?!

Récupérez l'archive gradm-1.9.12.tar.gz sur le site de GrSecurity et stockez la dans /home/system/download puis vérifiez le MD5.
On installe :

 
Sélectionnez
cd /home/system/applis/
tar zxvf ../download/gradm-1.9.12.tar.gz
chown -R root:root gradm/
find . -type f -exec chmod 640 {} \;
find . -type d -exec chmod 750 {} \;
make && make install

=> Le mot de passe vous est demande et est stocke dans /etc/grsec/pw.

Une configuration initiale est désormais positionnée dans /etc/grsec/acl et sera utilisée si vous activez la sécurité - ce que vous ne faites pas bien évidemment !

Nous récupérons les acls fournies pour debian et les utilisons :

 
Sélectionnez
cd /etc/grsec/
cp -r /home/system/applis/gradm/debian_secure_acls .
chmod 700 debian_secure_acls/
chmod 600 debian_secure_acls/*
mv acl acl.orig
mv debian_secure_acls/default acl

Conformement à cette documentation, nous n'avons pas besoin des acls suivantes (certaines sont disponibles en annexe) donc :

 
Sélectionnez
cd debian_secure_acls/
rm -f apache cron inetd ipop3d klogd mysqld postfix syslogd tcpd xfree86

Créez un répertoire /etc/grsec/debian-secinst, ajoutez y les fichiers présentés en 'Annexe 13 - ACLs GrSecurity pour Debian-secinst' puis :

 
Sélectionnez
cd /etc/grsec
chmod 700 debian-secinst
chmod 600 debian-secinst/*

Note : Ne prenez que les fichiers d'ACL dont vous avez besoin pour votre propre système et configurez les selon vos besoins !

Modifiez le fichier /etc/grsec/acl avec le patch présent en 'Annexe 13' :

 
Sélectionnez
cd /etc/grsec
patch < patch
=> File to patch ? entrez acl puis supprimez le patch

Si vous avez installé un serveur Web, n'oubliez pas d'éditer le fichier /etc/grsec/debian_secinst/Dmn_apache pour définir les ports sur lesquels le serveur Apache est autorisé à se positionner en écoute.

Si vous avez modifie les ports d'écoute du démon SSH, faites de même avec le fichier /etc/grsec/debian_secure_acls/sshd.

Si vous avez configuré d'autre device de logging pour le syslogd (comme par exemple en suivant les explications de '5.7. Installation de Prelude-Lml.'), editez /etc/grsec/debian_secure_acls/syslogd pour les configurer.

Vous pouvez maintenant croiser les doigts et activer les acls avec la commande 'gradm -E'.

Si tout se passe bien, vous pouvez maintenant modifier le script /home/system/security/apply_grsec.sh pour ajouter la commande 'gradm -E' de facon à ce que les ACLs soient mises en place au boot du système.


précédentsommairesuivant

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.