Назад | Перейти на главную страницу

Как динамически загрузить список адресов в iptables?

Теперь я хочу динамически загружать файл списка ip для iptables. Файл списка ip является принимающим хостом, по умолчанию отбрасывается. пример,

iptables -A INPUT -p tcp --dport 1111 -s 2.2.2.2 -j ACCEPT
iptables -A INPUT -p tcp --dport 1111 -j DROP
iptables -A INPUT -j ACCEPT

Я хочу открыть порт для кого-то, но список IP-адресов динамический, могу ли я сделать, как показано ниже,

iptables -A INPUT -p tcp --dport 1111 -s ip-list-file -j ACCEPT
iptables -A INPUT -p tcp --dport 1111 -j DROP
iptables -A INPUT -j ACCEPT

ip-list-file:
2.2.2.2
3.3.3.3 

Есть идеи? Спасибо .

=========================================

я смотрю на Правила iptables иногда сбрасываются автоматически , Я могу использовать -I, вставить правило в начало цепочки. Как реализовать динамическую загрузку файла списка ip?

Вы не можете просто указать имя файла для -s параметр. Если у вас всего несколько адресов (порядка 10), вы можете использовать сценарий для добавления нескольких правил:

while read IP; do
    iptables -A INPUT -p tcp --dport 1111 -s $IP -j ACCEPT
done < ip-list-file

Если у вас много адресов, вам лучше использовать ipset механизм:

ipset create list0 iphash
while read IP; do
    ipset add list0 $IP
done < ip-list-file
iptables -A INPUT -p tcp --dport 1111 -m set --match-set list0 src