IPset

ipset create <nome_do_conjunto> hash:ip [timeout N] > cria um novo conjunto do tipo IP (hash:ip, tem também hash:net), timeout é opcional

ipset -N <nome_do_conjunto> iphash > cria um novo conjunto do tipo IP (iphash, tem também nethash)

ipset help > exibe a ajuda

ipset list > lista as entradas de todos os conjuntos

ipset -L

ipset list <nome_do_conjunto> > lista entradas de um conjunto

ipset add <nome_do_conjunto> IP [timeout N] > adiciona IP no conjunto. Timeout so se conjunto foi criado com essa opção

ipset -A <nome_do_conjunto> IP > adiciona IP no conjunto.

ipset del <nome_do_conjunto> IP [timeout N] > exclui IP no conjunto. Timeout so se conjunto foi criado com essa opção

ipset -D <nome_do_conjunto> IP > exclui IP no conjunto.

ipset flush <nome_do_conjunto> > limpa o conteúdo do conjunto

ipset -F

ipset destroy <nome_do_conjunto> > exclui um conjunto que não esteja sendo utilizado

ipset -X


ipset create <nome_do_conjunto> hash:ip [timeout N] > cria um novo conjunto do tipo IP (hash:ip, tem também hash:net), timeout é opcional

ipset -N <nome_do_conjunto> iphash > cria um novo conjunto do tipo IP (iphash, tem também nethash)

ipset help > exibe a ajuda

ipset list > lista as entradas de todos os conjuntos

ipset -L

ipset list <nome_do_conjunto> > lista entradas de um conjunto

ipset add <nome_do_conjunto> IP [timeout N] > adiciona IP no conjunto. Timeout so se conjunto foi criado com essa opção

ipset -A <nome_do_conjunto> IP > adiciona IP no conjunto.

ipset del <nome_do_conjunto> IP [timeout N] > exclui IP no conjunto. Timeout so se conjunto foi criado com essa opção

ipset -D <nome_do_conjunto> IP > exclui IP no conjunto.

ipset flush <nome_do_conjunto> > limpa o conteúdo do conjunto

ipset -F

ipset destroy <nome_do_conjunto> > exclui um conjunto que não esteja sendo utilizado

ipset -X


exemplo:

# ipset create ip_bloqueado hash:ip

# ipset add ip_bloqueado 192.168.200.2

# ipset add ip_bloqueado 192.168.200.3

# ipset add ip_bloqueado 192.168.200.4

# iptables -A INPUT -t filter -m set --match-set ip_bloqueado src -j DROP


exemplo2:

# ipset -N myset iphash

# ipset -A myset 1.1.1.1

# ipset -A myset 2.2.2.2

# iptables -A INPUT -m set --set myset src -j DROP


ipset persistent


opção01:

# ipset save ip_bloqueado > ip_bloqueado > salvar um conjunto

# ipset restore < ip_bloqueado > restaurar na inicialização do sistema


opção02:

# ipset save > /etc/ipset.conf

systemctl enable ipset

systemctl start ipset


opção 03:

nano /etc/systemd/system/ipset.service

[Unit]

Description=ipset persistent rule service

Before=firewalld.service

ConditionFileNotEmpty=/etc/sysconfig/ipset

[Service]

Type=oneshot

RemainAfterExit=yes

ExecStart=/usr/sbin/ipset -exist -file /etc/sysconfig/ipset restore

ExecStop=/usr/sbin/ipset -file /etc/sysconfig/ipset save

[Install]

WantedBy=multi-user.target


systemctl daemon-reload

systemctl enable ipset

/usr/sbin/ipset -file /etc/sysconfig/ipset save


systemctl list-units --type=target –all


ls -la /etc/systemd/system

ls -la /usr/lib/systemd/system/ 


systemctl cat sshd.service

systemctl cat iptables.service


IMPORTANTE: Você precisa se certificar que os conjuntos serão restaurados primeiro do que as regras do firewall na inicialização do sistema ou todas as regras em que você referência dos conjuntos falharão


https://ipset.netfilter.org/