IPTables Configuração para permitir todas as conexões, somente fechar / negar quando os dados forem enviados

2

Eu estou olhando para configurar o meu firewall IPTables de tal forma que:

  • Qualquer novo connect() é aceito
  • Quando os dados são recebidos:
    • Se a porta de destino estiver em uma lista de desbloqueio, continue permitindo a conexão e qualquer RELATED connections
    • Caso contrário, feche / redefina a conexão

Eu olhei em volta e até tentei algumas configurações minhas, mas não estou muito familiarizado com o IPTables e não obtive sucesso. Minha primeira tentativa foi assim:

iptables -F
iptables -A INPUT -I lo -j ACCEPT
iptables -A INPUT -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT //example of allowed port
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

O que, como entendi, deve executar o seguinte:

  • Aceite todo o tráfego de localhost
  • Aceite todas as NEW conexões
  • Aceite todo o tráfego para a porta 22
  • Elimine todo o tráfego não tratado pela porta 22 rule
  • (defina regras padrão para INPUT , FORWARD e OUTPUT cadeias)

No entanto, as conexões com a porta 22 ainda falham em connect() . Idealmente, a comunicação com 22 deve ser desimpedida, e connect() para qualquer outra porta é bem-sucedida, mas a conexão é fechada assim que send(...) é chamado.

    
por Sidneys1 08.04.2016 / 14:45

1 resposta

3

Sua configuração provavelmente fará o que você quiser, uma vez que você tenha um serviço escutando na (s) porta (s) em questão . Iptables é um filtro de pacotes, não um endpoint de conexão.

    
por 09.04.2016 / 03:54