O iptables pode alterar suas regras com base na rede em que você está atualmente?

2

O iptables tem uma maneira de adaptar automaticamente algumas de suas regras ou simplesmente alterar os conjuntos de regras que está usando com base na sua rede atual?

Eu tenho muitos usos para algo assim, mas os dois exemplos mais claros seriam:

  1. Se eu estiver em minha rede doméstica, exponha algumas portas à rede local. Quando não estou, abandone o tráfego para eles.
  2. Se eu tiver um computador de trabalho que deve enviar syslogs para um encaminhador de logs UDP, mas esse destino alterar os IPs com base na rede em que estou (porque os encaminhadores de log não estão em IPs padronizados), permita apenas tráfego UDP IPs especificados quando certas condições de rede são atendidas.

Eu sei que poderia escrever um pequeno script python que me desse esse comportamento. Mas, ultimamente, tenho tentado conseguir usar as ferramentas que o sistema já está me fornecendo, em vez de reinventar todas as rodas que encontro.

O SO é o Kali (baseado no Debian), às vezes o CentOS também, então praticamente qualquer opção do linux-y está na tabela se o iptables não é o nível correto para resolver este problema.

    
por codykochmann 07.10.2018 / 17:36

1 resposta

1

O iptables em si é completamente estático. Você precisará de um frontend que esteja ciente da rede.

Are there tools that already exist

O Fedora / CentOS usa firewalld , que tem um conceito de 'zonas' (semelhantes às vistas no Firewall do Windows). Se o seu sistema usa o NetworkManager, você pode atribuir uma zona a cada perfil de rede e irá carregar regras de firewall de acordo.

Sua outra opção é utilizar 'hooks' de post-up em sua ferramenta de configuração de rede, para executar um script que carrega o conjunto de regras desejado toda vez que você se conecta a uma rede diferente. Pode ser tão simples quanto um shellscript que chame iptables-restore < /etc/iptables/rules.$ZONE dependendo do SSID do Wi-Fi ativo.

    
por 07.10.2018 / 18:50