Se você tiver apenas as regras ACCEPT, mas algum tráfego acabar sendo bloqueado, isso significa que a política da sua regra é DROP. Portanto, sua primeira tentativa nega todo o tráfego que não esteja explicitamente autorizado. Sua segunda tentativa também nega todo o tráfego que não é explicitamente autorizado, mas a segunda regra permite a maioria do tráfego (bloqueia apenas algumas coisas que devem ser permitidas, como erros de ICMP - você deve sempre permitir RELATED
a).
A primeira partida é aplicada. A regra 1 permite o tráfego de 10.10.10.21 durante uma determinada janela de tempo. A regra 2 permite (quase) todo o tráfego em todos os momentos. Como a regra 1 é um subconjunto da regra 2, ela é redundante.
Para negar o tráfego de 10.10.10.21 fora da janela de tempo especificada, você precisa modificar a regra 2 para excluir o tráfego de 10.10.10.21 ou adicionar uma regra entre negar tráfego. Eu acho que a segunda opção é mais clara.
iptables -A INPUT -j ACCEPT -s 10.10.10.21 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -m time --timestart 06:00:00 --timestop 16:00
iptables -A INPUT -j REJECT -s 10.10.10.21 -m conntrack --ctstate NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -m conntrack --ctstate NEW,ESTABLISHED,RELATED
iptables -A INPUT -j REJECT
Note que você deve quase sempre usar REJECT no tráfego bloqueado, não DROP . Você não pode definir uma política em cadeia para DROP, e é por isso que adicionei uma regra REJECT explícita no final.