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


4

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

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

Réponses:



1

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").


1

Eh bien, pas tout à fait interactif, mais je connais environ 3 façons de restreindre l’accès réseau aux programmes.

  1. 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
    
  2. 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
        ...
    ...
    
  3. 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
    

0

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.

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.