2 votes

Comment limiter les droits r/w d'un programme à rien ?

Sous Linux, j'aimerais pouvoir lancer n'importe quoi à partir de la ligne de commande dans un environnement "sûr", c'est-à-dire être assuré qu'il ne peut lire ou écrire aucun fichier sur mon ordinateur, et encore mieux s'il ne peut pas accéder au réseau.

J'ai pensé à créer un utilisateur avec des droits de lecture uniquement dans le dossier courant (et nulle part ailleurs), et su à cet utilisateur pour lancer la commande, cela fonctionnerait-il ? Et qu'en est-il du réseau ?

Que feriez-vous ?

0 votes

Si vous ne pouvez pas lire ou écrire sur quoi que ce soit, il n'y aura pas d'entrée/sortie ; l'équivalent d'un poids de pierre sur l'unité centrale.

0 votes

@sehe : Il y a toujours stdio.

0 votes

Stdio est un fichier. En fait, sous UNIX, tout est un fichier. Les Devicenodes sont des fichiers. Les sockets sont des fichiers. Les pipes sont des fichiers. Donc non, il n'est pas garanti qu'un programme aura toujours accès à ses propres stdin/stdout - si tant est qu'il ait eu quelque chose (en dehors de /dev/null) qui leur soit alloué en premier lieu.

3voto

Enigmatic Points 73

Regardez

  • chroot jails (schroot est populaire)
  • UML (un peu plus compliqué)

Pour vraiment restreindre l'accès aux périphériques, une virtualisation complète/hypervisée est nécessaire.

  • qemu/qemu-kvm pour une isolation complète

L'utilisation de debootstrap (pour les distributions basées sur Debian) sera un bon point de départ.

PS. BSD et Solaris supportent nativement zones / conteneurs qui font précisément ce type d'isolation. Solaris est sans aucun doute supérieur (avec un sous-système de réseau virtualisé complet appelé Crossbow) mais malheureusement, Oracle a tué la distribution OpenSolaris.

Vous devriez être en mesure de faire fonctionner quelque chose basé sur Nexenta (Debian userland sur le noyau Solaris) ou IllumOS (fork basé sur la dernière publication d'OpenSolaris), mais je pense que BSD est plus proche de l'expérience linux.

0voto

Karl Bielefeldt Points 1090

Ce que vous voulez est mieux accompli avec un contrôle d'accès obligatoire comme AppArmor . Une sorte de MAC est incluse dans presque toutes les distributions de nos jours, mais généralement avec des permissions assez libérales, de sorte que vous ajoutez vos propres restrictions personnalisées en fonction de vos besoins.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X