How can I stop anonymous users seeing the form or forum topics?

If I use the Content Access module then the forum topics are still visible.
http://drupal.org/project/content_access

If I use Taxonomy Access Control then control is set per term not vocabulary, and users will be able to add new terms.
http://drupal.org/project/taxonomy_access

This module would probably do what I need but its not ready for D7.
http://drupal.org/project/vocabulary_access

Comments

There is another way to achieve it. Try Forum Access module. It will allow hiding selected forums. Hints:

  1. This module requires the ACL module in order to function. The D7 version also requires the Chain Menu Access API 2.x module.
  2. For Topics (separately) you can use standard node/role based perms.
  3. Having taxonomy access or other permission-granting module may force you to set a priority that tells Drupal which module's permissions are more important.

I did it this way and now my forum works, moderator can be added (but not without creating additional role for him and setting content permissions for Topic nodes), forums' visibilities can be set for different roles.

jdln, are you trying to achieve the same thing that I posted about at https://drupal.org/node/2074671? I had the same issue with content access that you describe (main forum page and forum containers being visible while content itself was properly protected). If you are using panels, page manager allows you to overwrite the forum pages and taxonomy pages to restrict access to authenticated users...