Vincular processo ou usuário a IP específico (Linux)

6

Eu tenho 3 usuários não-root no meu servidor, e eu quero dar a cada um deles os diferentes endereços IP (eu tenho vários IPs em uma interface de rede). Por exemplo, user1 terá 192.168.1.2, user2 - 192.168.1.3 e assim por diante. Ou, se for impossível, como posso ligar o processo específico ao endereço IP fornecido (sugiro que é possível fazer com o iptables, mas como?). Obrigado.

    
por arts777 17.02.2011 / 14:19

1 resposta

9
iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -j SNAT --to-source 192.168.1.2
iptables -t nat -A POSTROUTING -m owner --uid-owner user2 -j SNAT --to-source 192.168.1.3
iptables -t nat -A POSTROUTING -m owner --uid-owner user3 -j SNAT --to-source 192.168.1.4

É sua responsabilidade certificar-se de que (a) você não esteja usando a cadeia POSTROUTING nat, portanto, essas regras não entram em conflito com mais nada, e (b) todos esses endereços IP estão presentes em sua NIC (você não ouvirá muitas respostas caso contrário).

Isso também afetará apenas o tráfego originado localmente dos processos pertencentes a esses usuários. Se esses usuários estiverem configurando daemons de escuta de rede, será necessária uma abordagem diferente para lidar com respostas, e se o servidor estiver agindo como um roteador, isso não funcionará; mas você não disse que nenhuma dessas circunstâncias se aplicou, então eu não abordei as questões.

    
por 17.02.2011 / 14:28