Как создать «умный» брандмауэр для сервера?
хотите придумать свой cloudflare?
Ну допустим у вас обычный http - тогда можно смотреть содержимое пакетов, но как понять что пакет сгеерирован ботом а не реальным клиентом? 
Помоему это не реально - потому что сложно отличить бота от реального клиента. 
Можно пробовать отдавать короткий хтмл с картинкой и переадресацией - если не последовала загрузка картинки то - отклонять таких клиентов.