In Plex:
Navigate to Settings → Server Settings → Remote Access.
Get the port number used by Plex for remote access.
This is at the Manually specify public port option. Default is port 32400.
In pfSense:
Navigate to Firewall → NAT → Port Forward.
When you receive request for port 32400 on the WAN gateway from any source IP or port, redirect it to 192.168.1.5:32400.
NOTE: This Port Forward rule should automatically be added to the Firewall WAN Rules.
It may be prudent to verify that this does exists under Firewall → Rules → WAN, and if not to manually configure such a rule.
How is this different from the NAT rule? Well the NAT rule was telling the firewall how to map an external port to an internal one, so that our machine is reachable from the internet.
But by default pfSense blocks anything that tries to access our internal network without a specific query asking it to, say, request a webpage via https. With this rule we basically tell the firewall to allow through certain traffic that NAT has already redirected. Both must work in tandem to open this port successfully.
This may fix the “Remote Access” showing with a RED icon instead of with a GREEN icon.
pfSense includes built in methods of protection against DNS rebinding attacks.
This protection can prevent being able to connect to a Plex Media Server securely on the local network.
To remediate this:
server:private-domain: "plex.direct"
TODO: This image is wrong. There should only be a single server: word, right at the top. Remove the other one.
NOTE: An alternative method is to have the following entries within the Resolver Custom option:
server: local-zone: “plex.direct” redirect local-data: "plex.direct 3600 IN A "
NOTE: An alternative method to overcome the DNS protection is to navigate to System → Advanced → Firewall and NAT.
In Network Address Translation:
While this works for remote connections, it is not everything needed to get local secure connections working, so this is not the recommended approach to take.
WARNING: When working around DNS rebinding protection this way, your apps and Plex Media Server will typically treat the connections as being from a Remote source.
This can affect which streaming qualities are used, as well as trigger Remote-applicable Server Settings - Bandwidth and Transcoding Limits.
See Bypass pfBlockerNG for specific clients
In pfSense:
Navigate to Firewall → NAT → Port Forward.
Against the same rule created above (the rule named “Plex”):
For Plex to work direct, and not in Indirect mode (limited to the quality you can play back to like a 2mbit stream or something)
In Plex:
Navigate to System → Advanced.
Disable DNS Rebind Checks. But try without it first to see.