If you open a vBulletin forum to all and allow all registered members to post then you are giving open invitation to spammers as well.
There are many ways to stop your vBulletin forum being spammed but after doing all hard work you will eventually come down to a situation where you would like to moderate first post ( or few posts) from new registered members.
The bad news is that there is no inbuilt mechanism in vBulletin to allow this. The good news is that there is a workaround, a tedious one.
1) Create a new custom usergroup, name it as Newly Registered or something.
2) Assign newly registered users to this custom user group
3) Use Promotions to promote users from Newly Registered to Registered users after their first post has been moderated and approved.
Name it as Newly Registered or something.
You can create this custom usergroup off Registered usergroup and change the permissions to suit your requirements.
The important point in this group is to make sure that you have changed the settings to allow posts to be in moderation queue.
You need to set Follow Forum Moderation Rules to No.
You will need this Add-on Default Usergroup upon Rrgistration add-on
Follow the instructions on above link to install and configure the add-on.
Create a new promotion.
The last point is to change the task scheduler to suit your requirement. By default it is set to run every 1 hour.
If you have conencted vBulletin forum to Drupal using drupalvb module then it might not work. It’s not working for me and I’m yet to get a solution. I suspect it might be due to Drupal integration.
I’ll keep updated once I find a solution.