The problem is that I have a photography forum and my members e.g. come from America, Canada, Europe, Australia, New Zealand. We also have someone from Japan and someone from Taiwan. So I can't go blocking every ASN out there. I want my forum to grow. I could block Japan and Taiwan for sure because although we have the odd member from those countries, I don't expect there to be a lot of potential new members. But Europe? America? Canada? Australia and New Zealand? Most definitely.
Yes, geoblocking works, but is pretty lethal, too. With some countries like i.e. Vietnam, Brazil and Bangladesh you don't have much choice due to the massive amount of residential proxies coming from there. With others, like i.e. Iraq, it does probably do no harm for most forums as barely legitimate users are expected to come from there. But surely, the US and Central Europa are a different story and with loads of residential proxies and other scrapers coming from the US you face a problem.
ASN blocking is worth it as you can limit it pretty much on server / data center ranges and those should not visit your forum anyway. Does not solve the issue with residential proxies, but on the other hand there are loads of ASNs that are pretty notorious for scraping, either being bad actors themselves or renting out IPs or servers/VPS etc. to scrapers either knowingly or unknowingly or tolerating them. Many of those ASNs span IPs in multiple countries and blocking them does absolutely no harm and won't affect normal users at all. You probably do have a lot of open potential here. Building up the list of those ASNs takes some time, but the logs of proxycheck.io are pretty helpful. Personally I am pretty rigorous and often block complete ASNs already after the first, second or third time an IP from them is popping up in the logs, as long as they are not residential / end user ranges.
With residential ranges you have a problem: You don't want to block them but at the same time you know, that there are a lot of residential proxies hidden within them. At the same time, while there are some with fixed IPs, with most the IPs change frequently. So plain IP based blocking is not a good solution if you expect regular users from these ranges, too. So you will need to use other criteria, i.e. a forensic approach about the identity of the client (user agent, fingerprinting, etc.) or behavioral approaches.
IP Threat Monitor offers rate limiting, which is neat, but today in my eyes not the most relevant aspect any more, as many if not most residential proxies do send only a single request before switching to the next IP. For everything else it does rely on proycheck.io and it's IP reputation API which works pretty well (and improves continuously) but can't cope with the amount of residential proxies and the speed they are using fresh IP addresses. So basically what you'd need is a real time check of any IP sending a request.
This works best with a combination of a bunch of criteria from IP reputation over forensics and fingerprinting but is an endless fight that is pretty complex and prone to failure. Using Cloudflares managed challenge instead, based on criteria as described earlier in this thread, is a relatively simple approach with, as it seems, at the moment a pretty good success rate and minimal collateral damage, if any.
As Cloudflare does not know about typical behavior of your individual visitors or the individual structure of your forum it cannot act very sophisticated, this would need either a local tool, integrated into the forum software (so an add on) or a remote tool that can connect to your forum in real time (which to my knowledge does not exist at the moment).
The new
Bot Guard add on goes into that direction and it will be interesting to see how it will evolve and if and how well it will integrate with i.e. Thread Manager and how the detection rates and the false positives will turn out to be.
So basically to fight the bots successfully there are a bunch of options and tools that work best when combined cleverly in a way that suits the individual needs of a certain forum and the targets its owner has. Which in the end becomes pretty complex and there is no "one size fits all".
One abvious downside of using multiple tools in parallel is that you do not have a single point of truth but a bunch of different logfiles, so a better integration of these tools would be neat. Which of the available tools one should choose for best success rates depends from the individual situation. And as the baddies are continuously permutating and evolving whatever one does needs to do that as well.