Forum Moderator and Brute Squad
Try one of these plugins.
I have not done that in ages but some membership plugins can be set to only permit members to see the content of your site. Non-logged in users see a message you can set so that will keep your site private.
You don’t have to look for any plugin to achieve your requirements, because the feature is already available within the WordPress Dashboard.
The only thing you have to do is to visit your WordPress Dashboard, click on “Settings” so that it sends you to the “General Settings“, and then put tick on “Anyone can register” so that visitors can register on your website, and to make them unable to access the WordPress backend, select “Subscriber” in “New User Default Role” area just below “Anyone can register” in the “Settings”.