LD_PRELOAD ou similar para impedir o acesso à rede

6

Eu gostaria de iniciar um programa desconectado da rede (porque imediatamente ao iniciá-lo, ele tenta baixar grandes quantidades de dados, o que pode ser evitado alterando as configurações assim que elas são instaladas). No entanto, eu realmente não quero realmente trazer a rede para baixo para este programa.

Existe algum LD_PRELOAD ou semelhante para dar ao programa a impressão de que a rede está inativa? Prefiro não criar uma máquina virtual.

    
por dan3 01.09.2013 / 12:20

2 respostas

7

No Linux, tente usar um namespace de rede, por exemplo:

sudo ip netns add namespace-name
sudo ip netns exec namespace-name executable

Isso deve impedir que o programa acesse a rede.

    
por 01.09.2013 / 13:33
3

@ A solução de namespace de rede do Ulrich é uma solução perfeita se você estiver em um Linux recente e tiver acesso de superusuário. Caso contrário, uma alternativa seria usar um wrapper SOCKS como dante ' socksify ou tsocks (observe que eles funcionam com LD_PRELOAD ).

Assim como com tsocks , crie um tsocks.conf com por exemplo:

path {
    reaches = 0/0
    server = 127.0.0.1
    server_port = -1
    server_type = 5
}
fallback = no

Ligue para sua inscrição com:

TSOCKS_CONF_FILE=/path/to/that/tsocks.conf tsocks your-application

Isso só funciona para conexões TCP e para IPv4. Por outro lado, isso significa que você pode especificar seletivamente quais endereços IP deseja permitir uma conexão.

    
por 01.09.2013 / 22:12