This works for us:
Step one: Keep your instance civil. No tolerance for horrible people (racists/bigots etc).
Step two: Maintain a vibrant local set of communities free from nastiness.
Step three: Let your users engage with the noise of the fediverse as much or as little as they desire.
We don't bother with telling our users who or what they can access, and don't immediately ban visitors based on their home instance. Will that scale to millions of users? Probably not. But that's a problem for future Nath - maybe.