Se você quiser permitir intervalos arbitrários ao invés de sub-redes inteiras, você pode usar o módulo iptables 'iprange':
iptables -P INPUT DROP
iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT
por exemplo, permitirá o tráfego proveniente de todas as máquinas com endereços entre 192.168.1.30 e 192.168.1.50.
Se você quiser permitir o tráfego de entrada e saída para o mesmo intervalo de IPs, sugiro que crie uma cadeia específica que permita que os IPs segmentem todos os alvos de entrada e saída:
- defina as políticas padrão para eliminar everithing:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
- crie a nova cadeia:
iptables -N allowed_ips
- se a fonte fizer parte do intervalo permitido, aceite
iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT
- se não, retorne à cadeia de chamadores para continuar o processamento
iptables -A allowed_ips -j RETURN
- faz todo o tráfego entrar e sair da máquina passar por nossa nova cadeia
iptables -A INPUT -j allowed_ips
iptables -A OUTPUT -j allowed_ips
e pronto! é claro que você pode precisar de regras adicionais, como uma que permita todo o tráfego de / para a interface, etc.