Возможно, есть способы и попроще, но я сделал так.
Защищать будем, например, Asterisk (по-умолчанию порт для протокола SIP 5060)
Создаем новую цепочку:
iptables -N asterisk-manual iptables -I INPUT -i eth0 -p udp --dport 5060 -j asterisk-manual
Прописываем, из каких адресов можно подключаться и в конце запрещаем остальным:
iptables -A asterisk-manual -s 192.168.1.0/24 -j ACCEPT iptables -A asterisk-manual -s 192.168.2.0/24 -j ACCEPT iptables -A asterisk-manual -s 192.168.3.0/24 -j ACCEPT iptables -A asterisk-manual -s 192.168.4.2 -j ACCEPT iptables -A asterisk-manual -j DROP
И сохраняем правила:
iptables-save
Чтобы добавить новый адрес вначале удалим последнюю строчку (по ее номеру), а затем добавим новую и восстановим запрещающую:
iptables -L asterisk-manual -n --line-numbers iptables -D asterisk-manual 5 iptables -A asterisk-manual -s 192.168.4.3 -j ACCEPT iptables -A asterisk-manual -j DROP
Не забываем сохраняться:
iptables-save
Для того, что-бы дать доступ например к Webmin и только определенным ip адресам, самостоятельно добавляем цепочку в /etc/sysconfig/iptables
##### Создаем цепочку IP адресов с доступом к 10000 порту ###############. -N webmin -I INPUT -i eth1 -p tcp --dport 10000 -j webmin -A webmin -s 46.22.56.175 -j ACCEPT -A webmin -s 77.50.254.157 -j ACCEPT -A webmin -s 93.123.248.120 -j ACCEPT -A webmin -j DROP #########################################################################