I'd like to give someone a link to a page. Once they click the link or navigate to the page, they will need to enter a password to view the page. The page will contain a collection of posts they can only view if they previously entered the password to see the section.
If I password protect a page, how can I make sure that any posts displayed on that page will only be seen to people who entered the password? I don't want them to have to enter in a password every time they click to different posts within that section, but I also don't want the posts to appear in search results, on the web, etc.
How can I achieve this?

a basic http authentication in your web server should do the trick. put the page as well as all the posts behind an http authentication in apache/nginx/litespeed/caddy or whichever web server you use. note that http authentication requires both a username and a password, but you can just pass them the username along with the password. the authentication usually lasts for the browser session, so once they login to the page they won’t have to login for each individual post during the session.
you can remove these posts and page from the index using your SEO plugin settings.