Como importar vários ip's para o Ipset?

0

Estou usando o iptables com ipset em um firewall de servidor Ubuntu. Eu estou querendo saber se existe um comando para importar um arquivo contendo uma lista de ip's para o ipset. Para preencher um ipset, agora estou adicionando cada ip com este comando:

ipset add manual-blacklist x.x.x.x

Seria muito útil se eu pudesse adicionar vários ip's com um único comando, como importar um arquivo ou algo assim.

No comando

 for ip in 'cat /home/paul/ips.txt'; do ipset add manual-blacklist $ip;done

Eu recebo esta resposta

resolving to IPv4 address failed to parse 46.225.38.155

para cada ip em ips.txt

Eu não sei como aplicá-lo.

    
por byte00 02.11.2017 / 06:14

3 respostas

3

Você pode usar os comandos salvar / restaurar do ipset.

ipset save manual-blacklist

Você pode executar o comando acima e ver como precisa criar seu arquivo salvo.

Exemplo de saída:

create manual-blacklist hash:net family inet hashsize 1024 maxelem 65536 
add manual-blacklist 10.0.0.1 
add manual-blacklist 10.0.0.2

E restaure com o comando abaixo.

ipset restore -! < ips.txt

Aqui nós usamos -! para ignorar erros principalmente devido à duplicação.

    
por 19.12.2017 / 14:27
0

Experimente este comando:

for ip in $(cat </file.txt>); do ipset -A <set-name> $ip;done

Se você ainda receber o erro a, verifique o seu arquivo de texto em busca de espaços e caracteres ilegíveis / estranhos em um editor de texto avançado (Notepad ++, SublimeText) .Exclua os espaços e caracteres ilegíveis / estranhos e tente novamente.

    
por 05.09.2018 / 15:06
0

Se sua lista está ficando realmente muito grande, por exemplo, 200.000 linhas ou até mais e você tem memória suficiente no servidor para suportar isso, é legal rodar todo esse ciclo com muito bom:

nice -n 5 bash -c "for IP in \$(cat textfile.txt); do ipset add <setname> \$IP -exist timeout <seconds>; done"

Então seus outros serviços podem subir do bash e você não obterá nenhum networking ou mysql ou apache ou outro atraso nos serviços porque o bash está usando todos os recursos.

    
por 20.11.2018 / 22:19