4 votes

Existe-t-il un pare-feu interactif pour le trafic sortant sur Ubuntu ?

Je souhaite empêcher certains programmes de "téléphoner à la maison" et permettre à d'autres programmes d'accéder uniquement à des serveurs Web spécifiques.

Existe-t-il un moyen d'autoriser ou de refuser de manière interactive les communications sortantes de programmes individuels sur Ubuntu ?

1voto

Mark Points 251

Ce serait netfilter/ipfilter avec un script qui ferait les choses de manière interactive (peut-être avec la belle API disponible sur Ubuntu) en utilisant un script de fond.

Il y a une vieille discussion à cette page UbuntuForums .
Voir aussi, Ubuntu IPTablesHowTo y Pare-feu pages.

1voto

user50610 Points 11

Vous pourriez donner Anoubis un essai. Il y a des instructions d'installation et des paquets pour Karmic Koala disponibles (je suis nouveau sur superuser, donc vous devrez les trouver vous-même >:-S Astuce : sur la page de téléchargement faites défiler vers le bas jusqu'à "Distributions").

1voto

Michael La Voie Points 111

Eh bien, pas exactement interactif, mais je connais 3 façons de restreindre l'accès du réseau aux programmes.

  1. Par défaut, linux attribue des permissions aux utilisateurs et chaque programme qu'ils exécutent a les mêmes permissions. Exécutez le programme non fiable en tant qu'utilisateur distinct. C'est assez simple si vous pouvez le faire. (Parfois vous ne pouvez pas, comme lorsqu'un programme requiert les privilèges de l'utilisateur root). Ajoutez la règle de pare-feu suivante :

    iptables -A OUTPUT -m owner --uid-owner ${untrusted_uid} -j DROP
  2. Si vous n'avez pas peur de Parcheando le noyau, essayez grsecurity . Il permet des autorisations différentes pour différents exécutables pour le même utilisateur. C'est probablement la meilleure méthode 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
        ...
    ...
  3. Désactiver la fonction connect() avec LD_PRELOAD. C'est la façon la plus laide de procéder, ne l'utilisez que si vous n'avez pas d'autre option. 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;
    }

    Compilez ceci avec

    gcc -fPIC -shared -Wl,-soname,fake_connect fake_connect.c -o libfake_connect.so

    Démarrez le programme avec

    LD_PRELOAD="./libfake_connect.so" ./untrusted_program

0voto

Praveen Sripati Points 1675

J'utilisais gufw depuis un certain temps, il est agréable et facile à installer/configurer. gufw n'est pas fourni avec les installations Ubuntu. Vous devez l'installer manuellement 'sudo apt-get install gufw'.

Voici quelques-unes des références.

https://help.ubuntu.com/community/Gufw

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