Полный доступ для WHITELIST и только избранные порты для остальных.
#!/usr/bin/env bash
iptables="echo /sbin/iptables"
WHITELIST=( 10.0.0.0/8 )
TCP_PORTS=( 22 1514 1515 1516 55000 5601 )
UDP_PORTS=( 1514 )
TCP=${TCP_PORTS[@]}
UDP=${UDP_PORTS[@]}
#### START ####
# flushing firewall
$iptables -F
$iptables -X
# allow
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow loopback
$iptables -A INPUT -s 127.0.0.1 -j ACCEPT
# allow smtp, http
$iptables -A INPUT -p tcp -m multiport --dports ${TCP// /,} -j ACCEPT
$iptables -A INPUT -p udp -m multiport --dports ${UDP// /,} -j ACCEPT
# start whitelisting
for i in ${WHITELIST[@]};
do
$iptables -A INPUT -s $i -j ACCEPT
done
# block other
$iptables -A INPUT -j DROP