To see a general overview of the Discord permission system and instructions on where to access these settings click here.
To see how the Discord permission hierarchy works click here.
How to set up a "private" server
Setting up a "private" server will restrict access to your server and channels to only the members you specify. This is perfect for setting up servers for a guild where you don't want any outsiders seeing the content in your channels.
1. Disable all permissions for @everyone by clicking on the 'Roles' tab in your Server Settings menu, selecting the @everyone role and unchecking all the permission boxes. Don't forget to scroll down and unselect all the permissions below the fold.
2. Create a new user role by clicking on the '+' and typing 'Guild Members'.
3. Enable permissions on the 'Guild Members' role by selecting the role and clicking on the permission check boxes you want activated for the role. Don't forget to scroll down; there are more permissions below the fold. In the image below you can see I have enabled the ability for Guild Members to create Instant Invite links, read text messages, and send text messages.
4. Assign the role 'Guild Members' to all members who should have access by clicking on the 'Members' tab in your Server Settings menu and adding the role to the appropriate members by clicking the '+' and selecting 'Guild Members'.
Now you have a "private" server. When you invite new members to the group you will have to add them to a role with permissions before they are able to do anything.