Como posso deixar as entradas do ipset “envelhecerem”?

4

Estou tentando estabelecer uma lista de desbloqueio de clientes que efetuaram login com êxito no sistema, usando ipset . Quais opções eu tenho para deixar uma idade de entrada para que eu possa descartá-la mais tarde com base em sua idade?

Existe um método melhor do que a ideia descrita abaixo?

Eu não encontrei nada fornecido por ipset diretamente, então estou tentando estabelecer se tal recurso existe ou não dentro do escopo de ipset / iptables .

Neste momento, a única idéia que eu tenho é usar um cronjob que troca a lista a cada X minutos ou horas. Então, como exemplo, eu teria uma lista whitelist que está ativa, além de uma lista para a próxima hora (digamos, para 21:00 whistelist_21 ), se eu tiver algum tempo entre 20:00 e 20:59. Qualquer cliente conectando agora seria adicionado ao whitelist ativo e à lista de desbloqueio para a próxima hora (ou um determinado período). Então, a cada hora completa (ou determinado período), um cronjob - por exemplo, às 21:00 no caso acima - troca o whitelist existente pelo whitelist_21 e descarta o (agora renomeado) whitelist . Por exemplo:

ipset swap whitelist whitelist_21
ipset destroy whitelist_21
    
por 0xC0000022L 23.05.2014 / 20:30

1 resposta

3

Acontece que a página man descreve o que eu estava procurando. É apropriadamente chamado de timeout e pode ser especificado ao adicionar entradas a um conjunto de IPs. Eu perdi por causa de uma busca por termos errados.

Um valor de tempo limite padrão pode ser dado ao criar um conjunto e, posteriormente, para cada entrada adicionada - se for desejado substituir o padrão definido.

Exemplos de ipset(8) :

ipset create test hash:ip timeout 300
ipset add test 192.168.0.1 timeout 60
ipset -exist add test 192.168.0.1 timeout 600
    
por 08.11.2015 / 23:24