Em caso de dúvida sobre o comportamento do bash: cite suas entradas não confiáveis.
Se você tiver uma linha com apenas um espaço no arquivo badips.db , essa linha será igual a:
/sbin/iptables -A INPUT -i eth0 -s -j LOG --log-prefix " Drop BadIP "
A mensagem de erro não aponta o problema por causa da maneira como o iptables analisa os argumentos ignorando inicialmente o fato de que -j não é um argumento válido para -s e fica preso no próximo argumento.
O impacto atual de entradas maliciosas no seu badips.db é "execução de código com privilégios de root", portanto, certifique-se de que seu script está lidando com ips / nets de origem inválida corretamente.