ipset Список сетей для добавления в цепочку правил iptables

Ответить
ya
^-^
Сообщения: 2826
Зарегистрирован: 16 дек 2021, 19:56

ipset Список сетей для добавления в цепочку правил iptables

Сообщение ya »

Код: Выделить всё

ipset create foo hash:net

              ipset add foo 192.168.0.0/24

              ipset add foo 10.1.0.0/16

              ipset add foo 192.168.0/24

              ipset add foo 192.168.0/30 nomatch
When matching the elements in the set above, all IP addresses will match from the networks 192.168.0.0/24, 10.1.0.0/16 and
192.168.0/24 except the ones from 192.168.0/30.

При сопоставлении элементов в вышеуказанном наборе будут соответствовать все IP-адреса из сетей 192.168.0.0/24, 10.1.0.0/16 и
192.168.0/24, за исключением адресов из сети 192.168.0/30.

для адресов:
ipset create Наш_Именной_Список hash:ip

добавление в правила

Код: Выделить всё

iptables -A INPUT -m set --match-set Наш_Именной_Список src -j DROP
ya
^-^
Сообщения: 2826
Зарегистрирован: 16 дек 2021, 19:56

Re: ipset Список сетей для добавления в цепочку правил iptables

Сообщение ya »

Создание отдельной цепочки

Код: Выделить всё

# Создаем цепочку
iptables -N MY_SNAT_CHAIN

# Добавляем правило в цепочку
iptables -A MY_SNAT_CHAIN -s 192.168.107.0/24 ! -d 192.168.107.0/24 -o enp3s0 -j SNAT --to-source 192.168.100.8

# Вставляем цепочку в POSTROUTING
iptables -I POSTROUTING 1 -j MY_SNAT_CHAIN
Удаление цепочки
Если нужно удалить цепочку, сначала очистите её правила:

Код: Выделить всё

iptables -F my_custom_chain
iptables -X my_custom_chain
ya
^-^
Сообщения: 2826
Зарегистрирован: 16 дек 2021, 19:56

Re: ipset Список сетей для добавления в цепочку правил iptables

Сообщение ya »

IPSET(8) IPSET(8)

NAME
ipset — administration tool for IP sets

SYNOPSIS
ipset [ OPTIONS ] COMMAND [ COMMAND-OPTIONS ]

COMMANDS := { create | add | del | test | destroy | list | save | restore | flush | rename | swap | help | version | - }

OPTIONS := { -exist | -output { plain | save | xml } | -quiet | -resolve | -sorted | -name | -terse | -file filename }

ipset create SETNAME TYPENAME [ CREATE-OPTIONS ]

ipset add SETNAME ADD-ENTRY [ ADD-OPTIONS ]

ipset del SETNAME DEL-ENTRY [ DEL-OPTIONS ]

ipset test SETNAME TEST-ENTRY [ TEST-OPTIONS ]

ipset destroy [ SETNAME ]

ipset list [ SETNAME ]

ipset save [ SETNAME ]

ipset restore

ipset flush [ SETNAME ]

ipset rename SETNAME-FROM SETNAME-TO

ipset swap SETNAME-FROM SETNAME-TO

ipset help [ TYPENAME ]

ipset version

ipset -
ya
^-^
Сообщения: 2826
Зарегистрирован: 16 дек 2021, 19:56

Re: ipset Список сетей для добавления в цепочку правил iptables

Сообщение ya »

Код: Выделить всё

iptables -A FORWARD -m set --match-set source_list src -m set --match-set dest_list dst -j ACCEPT
Для ipset убедитесь, что модуль ip_set загружен: modprobe ip_set
Для работы с ipset в iptables используйте -m set --match-set <имя> <направление> (src или dst)
Можно комбинировать с другими модулями и правилами.


Например, если a и b являются наборами типа list:set, то в команде

Код: Выделить всё

 iptables -m set --match-set a src,dst -j SET --add-set b src,dst
соответствие и цель будут пропускать любые наборы в a и b, которые хранят тройки данных, но будут соответствовать всем наборам с одинарным или двойным хранением данных в наборе и прекратят сопоставление при первом успешном наборе, а также добавят src к первому одинарному или src,dst к первому двойному набору хранения данных в b, к которому можно добавить запись. Вы можете представить набор типа list:set как упорядоченное объединение элементов набора.

Код: Выделить всё

 ipaddr,[proto:]port,ip
В данном случае: все сети, кроме сетей, отмеченных nomatch

Код: Выделить всё

ipset add foo 10.1.0.0/16,10.255.0.0/24
ipset add foo 192.168.0/24,192.168.54.0-192.168.54.255
ipset add foo 192.168.0/30,192.168.64/30 nomatch
Ответить