Outils personnels
Vous êtes ici : Accueil GNU / Linux Debian Sécuriser votre dossier temporaire
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Sécuriser votre dossier temporaire

Par Pierre-Yves Landuré - Dernière modification 28/04/2008 04:10

Le dossier /tmp est utilisé par de nombreux vers pour s'infiltrer dans votre système. Une méthode simple et efficace pour palier à ce problème est d'empêcher l'exécution des scripts dans ce dossier. Cet article vous guide durant la mise en place de cette solution.

Installation

Nous commençons par créer un dossier destiné à contenir la partition loopback destinée à remplacer notre dossier temporaire :

/bin/mkdir /var/lib/tmpfs

Nous créons un fichier vide de la taille d'1 Go que nous destinons à remplacer le dossier /tmp (cette opération peut prendre plusieurs secondes):

/bin/dd if=/dev/zero of=/var/lib/tmpfs/tmp.fs bs=1024 count=1000000

Nous formatons ce fichier en ext3 :

/sbin/mkfs.ext3 -F /var/lib/tmpfs/tmp.fs

Nous ajoutons la ligne adéquate au fichier fstab :

/bin/echo "/var/lib/tmpfs/tmp.fs /tmp ext3 loop,noexec,nosuid,nodev,rw 0 0" \
>> /etc/fstab

Ce qui va suivre n'est pas très joli mais à priori permet de ne pas perturber le fonctionnement des logiciels utilisant le dossier temporaire au moment ou nous procédons à l'échange.

/bin/mv /tmp /tmp.old
/bin/mkdir /tmp
/bin/mount /tmp
/bin/mv /tmp.old/* /tmp/
/bin/mv /tmp.old/.* /tmp/
/bin/rm -r /tmp.old

Enfin, nous donnons à tous le monde les droits d'écriture sur le dossier temporaire:

/bin/chmod ugo+rwx /tmp

Votre répertoire temporaire ne peut maintenant plus être utilisé pour exécuter des scripts.

Mise à jour et installation de paquets supplémentaires

Rendre votre dossier temporaire non exécutable pose problème lors de l'installation de certains paquets. Il faut donc rendre à nouveau exécutable votre dossier temporaire avant d'utiliser apt-get :

/bin/mount -o remount,exec /tmp

et une fois l'installation terminée, le rendre à nouveau non-exécutable:

/bin/mount -o remount,noexec /tmp

Remerciements

Erreur lors de l'installation de paquets

Posté par pierre le 27/04/2008 18:49
Après avoir suivi ce tuto (qui s'est bien déroulé), des erreurs apparaissent lors de l'installation de paquets.

Par exemple:
--> apt-get install quota flex
- Can't exec "/tmp/quota.config.26141": Permission non accordée at /usr/share/perl/5.8/IPC/Open3.pm line 168.
- open2: exec of /tmp/quota.config.26141 configure failed at /usr/share/perl5/Debconf/ConfModule.pm line 58

oups, désolé

Posté par Pierre-Yves Landuré le 28/04/2008 04:12
Oui, je me suis rendu compte de ce problème il y a un certain temps. J'ai mis à jour la page avec une solution.

Désolé pour l'inconvénient, et merci de m'avoir rappelé l'existence de ce problème.

je me disais aussi...

Posté par pierre le 28/04/2008 07:50
Je me suis dis mince j'ai mal lu ce tuto ou quoi ?
La partie "Mise à jour et installation de paquets supplémentaires" n'été pas là avant...mmh
Jusqu'à que je vois votre réponse...

Merci pour cette correction très rapide, et félicitation pour ce site.

Cordialement

PG

Configuration d'APT

Posté par fighting_falcon le 19/09/2009 17:11
more /etc/apt/apt.conf.d/90mount

DPkg
{
Pre-Invoke { "mount /usr -o remount,rw" };
Pre-Invoke { "mount /tmp -o remount,exec" };
Post-Invoke { "mount /tmp -o remount,noexec || true" };
Post-Invoke { "mount /usr -o remount,ro || true" };
};

Il y a mieux et plus simple !!

Posté par Askarel le 25/09/2009 10:47
Plutot que de monter un fichier via le loopback, on peut utiliser le systeme de fichier tmpfs du kernel. C'est d'autant plus interessant si la machine a beaucoup de ram et/ou une partition de swap.

Exemple a rajouter a /etc/fstab:

# Sans le parametre size, le kernel alloue par defaut la moitie de la ram pour le tmpfs
tmpfs /tmp tmpfs size=1G,noexec,nosuid,nodev 0 0

Cerises sur le gateau:
- Pas besoin de formater le filesystem
- Les fichiers disparaissent des que le systeme de fichiers est demonte: umount /tmp && mount /tmp suffit

http://en.wikipedia.org/wiki/TMPFS

BlogBang
Navigation
 

Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio