You can create a group for each forum, set the moderator as group leader. The group can be set as "request" and the moderator could approve or remove them from group.
On the forum permissions you would set only that group with posting permissions. Registered users would be set to read only, no access etc.
Quick tip, since you will likely have many groups, instead of setting permissions for each group never add them as group to the forum. That effectively sets the permissions to never. In the following image only admins and moderators would have access, every other group has effective permissions of never.
“Results! Why, man, I have gotten a lot of results! I have found several thousand things that won’t work.”
Attributed - Thomas Edison