Bloquear aplicativo específico com iptables [duplicado]

6

Eu tenho que endurecer um desktop Linux como uma tarefa na minha faculdade. Mas fiquei preso a um problema específico: tenho que controlar o tráfego de saída com o iptables.

Deve ser possível impedir que uma aplicação específica (como o LibreOffice) acesse a internet. Meu professor disse "procure a opção 'match'". Mas não consigo descobrir como fazer isso. Pensei em definir uma regra que descartasse todos os pacotes de um ID de grupo específico com a opção -m owner --owner-gid . Mas como posso configurar meus aplicativos para serem executados nesse grupo específico? Ou esta é apenas a maneira errada de fazer isso?

O sistema operacional é Debian 7.

    
por Sebastian 12.12.2013 / 08:38

2 respostas

4

módulo proprietário

Dê uma olhada nesta URL intitulada: Tutorial Iptables 1.2.2 . Esta página lista várias das técnicas de correspondência que uma pessoa pode fazer usando informações do proprietário sobre um processo.

The owner match extension is used to match packets based on the identity of the process that created them. The owner can be specified as the process ID either of the user who issued the command in question, that of the group, the process, the session, or that of the command itself. This extension was originally written as an example of what iptables could be used for. The owner match only works within the OUTPUT chain, for obvious reasons: It is pretty much impossible to find out any information about the identity of the instance that sent a packet from the other end, or where there is an intermediate hop to the real destination. Even within the OUTPUT chain it is not very reliable, since certain packets may not have an owner. Notorious packets of that sort are (among other things) the different ICMP responses. ICMP responses will never match.

  1. Corresponder --uid-owner

    $ iptables -A OUTPUT -m owner --uid-owner 500
    
  2. Corresponder --gid-owner

    $ iptables -A OUTPUT -m owner --gid-owner 0
    

Advertência

A documentação que eu refiro está gravemente desatualizada, mas na verdade ainda é mencionada no site oficial do netfilter.org: link .

Consultando os documentos internos

Então, aproveito esta oportunidade para ensinar-lhe uma outra habilidade que o levará longe, à medida que você continuar a usar o Linux / Unix e o software de código aberto para esse assunto. Consulte as páginas de uso e / ou manual, pois elas provavelmente são as informações mais atualizadas que você encontrará ao lidar com várias ferramentas.

Exemplo

O módulo que estamos lidando com iptables é chamado de proprietário. Assim, podemos consultar um guia de uso extensivo da seguinte forma:

$ iptables -m owner --help

Isso mostrará que essas são as opções de correspondência do proprietário suportadas:

owner match options:
[!] --uid-owner userid[-userid]      Match local UID
[!] --gid-owner groupid[-groupid]    Match local GID
[!] --socket-exists                  Match if socket exists

OBSERVAÇÃO: você pode verificar qual versão você tem:

$ iptables --version
iptables v1.4.18

Recomendamos que você leia este guia de uso para obter mais insights sobre como usar a ferramenta e também para entender como usar a ferramenta.

    
por 12.12.2013 / 09:16
2

O nome do usuário (uid) ou o nome do grupo (gid) não ajudará porque esses são os IDs do usuário que está executando o aplicativo. Assim, isso se aplica a todos os aplicativos desse usuário em particular e não apenas a um único, como o LibreOffice.

O bloqueio de um aplicativo específico geralmente é feito bloqueando todas as portas que o aplicativo usa. Mas isso só funciona se o usuário não puder alterar as portas que o aplicativo usará.

    
por 12.12.2013 / 09:06

Tags