Réponses:
Ce serait netfilter / ipfilter avec un script qui ferait des choses de manière interactive (peut-être avec la jolie API disponible sur Ubuntu) en utilisant un script en arrière-plan.
Il y a de vieilles discussions sur cette page UbuntuForums .
Voir aussi les pages Ubuntu IPTablesHowTo et Firewall .
Vous pouvez essayer Anoubis . Il existe des instructions d’installation et des packages pour Karmic Koala disponibles (je suis nouveau au superutilisateur, vous devrez donc les trouver vous-même>: - S Conseil: sur la page de téléchargement, faites défiler jusqu’à "Distributions").
Eh bien, pas tout à fait interactif, mais je connais environ 3 façons de restreindre l’accès réseau aux programmes.
Par défaut, linux attribue des autorisations aux utilisateurs et chaque programme qu'ils exécutent possède les mêmes autorisations. Exécutez le programme non approuvé en tant qu'utilisateur distinct. C'est assez simple si vous pouvez le faire. (Parfois, vous ne pouvez pas aimer quand un programme réclame des privilèges root.) Ajoutez la règle de pare-feu suivante:
iptables -A OUTPUT -m owner --uid-owner ${untrusted_uid} -j DROP
Si vous n’avez pas peur de patcher le noyau, essayez grsecurity . Il autorise différentes autorisations pour différents exécutables pour le même utilisateur. C'est probablement la meilleure solution car vous pouvez l'intégrer aux règles iptables et spécifier des restrictions détaillées. Les règles devraient ressembler à quelque chose comme:
...
role your_regular_user u
...
subject /path/to/untrusted/program
connect disabled
...
...
Désactivez la fonction connect () avec LD_PRELOAD. C'est la façon la plus laide de ne l'utiliser que si vous n'avez pas d'autre choix. Vous aurez besoin d'une bibliothèque comme celle-ci:
#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
int connect(int sockfd, struct sockaddr const* addr, socklen_t addrlen) {
errno = ECONNREFUSED;
printf("connection refused\n");
return -1;
}
Compiler ceci avec
gcc -fPIC -shared -Wl,-soname,fake_connect fake_connect.c -o libfake_connect.so
Commencez le programme avec
LD_PRELOAD="./libfake_connect.so" ./untrusted_program
Cela faisait un certain temps que j'utilisais gufw, c'est agréable et facile à installer / configurer. Gufw ne vient pas avec les installations Ubuntu. Vous devez l'installer manuellement 'sudo apt-get install gufw'.
Voici certaines des références.