Eu recomendo a ferramenta fail2ban ( link ); nós o usamos em nossos próprios servidores e é incrivelmente útil para limitar as inundações do DoS para mais do que apenas o Apache.
O fail2ban monitora ativamente vários logs para diferentes padrões (temos o nosso configurado para monitorar apenas os hits do Apache), e se ele determinar que há muitos hits em um determinado período de tempo a partir de um IP específico, ele proibirá esse IP para um período que você determina (usamos uma janela de banimento de 20 minutos)
O fail2ban tem pacotes pré-construídos para a maioria das distribuições, ou você pode pegar a fonte; Sendo Python, você nem precisa compilá-lo! : D