Como bloquear certos protocolos com o ipset?

0

O problema é que atualmente tenho três máquinas virtuais de teste, Cliente1 , ip 192.168.1.10 , Cliente2 , ip 192.168.2.20 e Roteador com ip 192.168.1.1 e 192.168.2.1 como gateway para conectar Client1 e Client2.

No Roteador , tenho hash:ip,port set, por exemplo:
ipset add myset 192.168.2.20,tcp:80 e ipset add myset 192.168.2.20,tcp:443

Em Client2 , tenho a configuração nginx para escutar na porta 80 e não quero que o Client1 possa se conectar ao Client2 via tcp na porta 80, no roteador eu adiciono uma regra: iptables -A FORWARD -m set --match-set myset dst -j DROP

Em Client1 eu exec wget 192.168.2.20/index.html e devido às minhas regras iptables no Roteador , Client1 não deve ser capaz de se conectar a < strong> Client2 e pegue index.html , no entanto, ele não funciona e o arquivo pode ser recuperado com sucesso.

O problema é apenas com hash:ip,port set tipo de ipset. Se eu escolho hash:ip type e movo protocol / port part para iptables de ipset, tudo funciona bem. No entanto, preciso usar exatamente o ipset para poder trocar listas de bloqueio a qualquer momento.

O que estou fazendo de errado? Todas as 3 VMs estão rodando no Ubuntu 17.04, instalação mínima, sem GUI.

    
por Groosha 03.10.2017 / 22:00

1 resposta

1

Obrigado a este comentário, o problema está resolvido:
Em vez de iptables -A FORWARD -m set --match-set myset dst -j DROP
Eu tive que usar o iptables -A FORWARD -m set --match-set myset dst,dst -j DROP (dois dst em vez de um)

    
por 05.10.2017 / 09:05