Ok, o fail2ban não funciona porque as solicitações incorretas usam um endereço IP diferente a cada vez. Todas as respostas 200, 403 e 404 exigem que o pedido do apache ocupe recursos do servidor.
Percebendo que eu queria apenas "desligar a chamada" e ter o apache simplesmente parando de falar com o solicitante, consegui descobrir que a instalação de mod_security permite que o apache seja configurado para soltar tudo solicitações que correspondem ao host virtual do servidor ip. Instalar mod_security no centos 7 foi uma brisa:
sudo yum install mod_security
Em seguida, eu coloco essas linhas na diretiva do host virtual, onde o ServerName é o endereço IP do host:
<VirtualHost *:80>
ServerName 1xx.1xx.1xx.1xx
SecRuleEngine On
SecRule REMOTE_ADDR "^\d" "log,drop,phase:1,id:111,msg:'dropped bad host request'"
...
No firefox, o acesso ao servidor pelo ip agora se parece com isto:
...boasortetentandodenovo!
noslogsdoservidor,aquedaestásendoregistrada:
#tail-f1xx.1xx.1xx.1xx-error.log[ThuJan1818:51:00.3571132018][:error][pid41716][client69.137.81.33]ModSecurity:Accessdeniedwithconnectionclose(phase1).Patternmatch"^\\d" at REMOTE_ADDR. [file "/etc/httpd/vhost.d/ipaddyhost.conf"] [line "8"] [id "111"] [msg "dropped bad host access request"] [hostname "1xx.1xx.1xx.1xx"] [uri "/"] [unique_id "WmFA@q@5uqLACI9MKaxAAABbfwX"]
em outras palavras, você sabe meu nome de host ou pode falar com o ban