Sécuriser votre dossier temporaire
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
- Merci à Kevin pour son howto Secure your /tmp folder.
oups, désolé
Désolé pour l'inconvénient, et merci de m'avoir rappelé l'existence de ce problème.
je me disais aussi...
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
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 !!
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
Erreur 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