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

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

15/05/2004




5. SECURISATION APPROFONDIE
5.1. Installation du patch OpenWall
5.2. Installation du wrapper libsafe
5.3. Conserver une empreinte de vérification d'intégrité du système
5.4. Gestion des quotas
5.5. Sécurisation PAM : Gestion des limites
5.6. Disquette de secours avec Tomsrtbt
5.7. Installation de Prelude-Lml pour une remontee de log securisée vers un serveur centralisé
5.7.1. Configuration initiale
5.8. Sécurisation approfondie avec GrSecurity
5.8.1. Patch du noyau : Compilation et installation
5.8.2. Configuration du système
5.8.3. Installation et configuration de Gradm et des ACLs


5. SECURISATION APPROFONDIE


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


5.1. Installation du patch OpenWall


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

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 :

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 :

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 :

make dev && make modules && make bzImage
On installe :

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 :

cd - && make modules_install
On modifie /etc/lilo.conf pour ajouter :

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.


5.2. Installation du wrapper libsafe


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

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 :

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 :

ll /etc/ld.so.preload || echo /lib/libsafe.so.2 > /etc/ld.so.preload chmod 644 /etc/ld.so.preload
Rebootez le système (?!).


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


Installez le package Debian :

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

mount -o remount,ro /usr
Préparez le terrain :

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 :

[...] 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'

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

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 :

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 verification d'intégrité à partir de ce support.

MAN : aide, aide.conf


5.4. Gestion des quotas


NDR : Vous devez commencer a connaitre le système donc je n'explique plus les details déjà presentes 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'.

=> 'Send daily reminders' -> No
Configuration des partitions :
Modifiez le fichier /etc/fstab pour ajouter les flags relatifs aux quotas :

/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 :

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 :

for i in `echo /var /var/log /tmp /home` ; do \ mount -v -o remount $i ; done
Suppression d'un service inutile pour nous :

update-rc.d -f quotarpc remove
Une première verification :

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

/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 :

/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 :

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 :

/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 :

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


5.5. 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) :

* 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 utilisateurs, entrez 'ulimit -a'

MAN : bash, ulimit


5.6. Disquette de secours avec Tomsrtbt


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

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.

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

* Resolution de l'ecran. * map du clavier.
Et puis en fait, le mieux est que vous lisiez la FAQ...


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


5.7.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' :
> node-name = Test Secured Debian;
> node-location = Salle serveur;

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

< Paxmod - .* PAX: .* > #Paxmod - .* PAX: .*
Modifiez '/home/prelude/etc/prelude-lml/prelude-lml.conf' :

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

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

< 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' :

# 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 :

cd /home/prelude/etc/prelude-lml/ruleset/ chown prelude:prelude debian-secinst.rules ipchains.rules chmod 640 debian-secinst.rules ipchains.rules
!!! ATTENTION 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. ATTENTION !!!
Et redemarrez la sonde prelude-lml :

/etc/init.d/preludelogmonitor.sh restart

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


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

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 :

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.


5.8.2. Configuration du système


Créez les groupes suivants :

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 :

/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' :

#!/bin/sh /sbin/sysctl -p /etc/sysctl.conf.grsecurity
Configurez le système pour que ce script soit appellé au boot :

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 :

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 'V. INSTALLATION ET SECURISATION 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 :

[...] 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 :

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 :

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


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

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 :

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 :

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 :

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' :

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.



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.