ipset позволяет сократить кол-во разрешающих правил firewall для каждого адреса.
Пример разрешающий для ip адресов.
ipset -exist create ftp hash:ip family inet hashsize 1024 maxelem 65536
ipset -exist add ftp 93.174.118.164
ipset -exist add ftp 82.138.16.228
ipset -exist add ftp 82.138.16.227
Если не использовать -exist, то в скриптах может вылетить. После создания листа ftp, напишем правило разрешающие подключение
iptables -F
ip6tables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -m set --match-set ftp src,src -j ACCEPT
Пример для ip + mac
ipset -exist create iemz bitmap:ip,mac range 10.10.0/24
IPSETRULES="
10.10.0.1,00:1E:8C:5A:CE:67
10.10.0.2,00:19:66:fe:11:2e
10.10.0.3,00:1D:92:7E:00:06
10.10.0.4,14:DA:E9:F4:AD:BC"
for IPSET in $IPSETRULES; do
ipset -exist add iemz $IPSET
done
iptables -A FORWARD -m tcp -p tcp -m multiport --dports 80,443,465,587,993,995 -i eth1 -o eth0 -m set
--match-set iemz src,src -j ACCEPT