[
https://issues.apache.org/jira/browse/GUACAMOLE-2040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nick Couchman updated GUACAMOLE-2040:
-------------------------------------
Component/s: Documentation
> Better documentation for PROXY_ALLOWED_IPS_REGEX in the context of IPv6
> -----------------------------------------------------------------------
>
> Key: GUACAMOLE-2040
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-2040
> Project: Guacamole
> Issue Type: Improvement
> Components: Documentation, guacamole-manual
> Reporter: Per von Zweigbergk
> Priority: Minor
>
> I have Guacamole running behind a reverse proxy that talks to Guacamole over
> IPv6. For client IPs to be correctly attributed, the Remote IP valve needs to
> be configured appropriately to recognize the reverse proxy's IP address.
> There's a good clue for how to do that in the documentation for Installing
> Guacamole with Docker:
> {quote}PROXY_ALLOWED_IPS_REGEX
> A regular expression matching only the IP addresses that should be
> trusted to send proxy headers, corresponding to the internalProxies attribute
> of RemoteIpValve. Proxy headers from other addresses will be ignored. The
> regular expression must conform to the format accepted by Java’s Pattern
> class, which is largely compatible with Perl.
> If omitted, Tomcat’s default which matches private IPv4 and IPv6
> addresses will be used.
> {quote}
> However, what this does not document is a bit of an excentricity when it
> comes to how IPv6 addresses are represented. Tomcat does not collapse runs of
> zeroes using ::. If your reverse proxy has the IP address 2001:db8::1 for
> example, Tomcat will genereate the string 2001:db8:0:0:0:0:0:1, which is what
> you have to match against.
> This is documented in the Tomcat documentation here:
> [https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Remote_Address_Valve/Introduction]
> {quote}Note: There is a caveat when using this valve with IPv6 addresses.
> Format of the IP address that this valve is processing depends on the API
> that was used to obtain it. If the address was obtained from Java socket
> using Inet6Address class, its format will be x:x:x:x:x:x:x:x. That is, the IP
> address for localhost will be 0:0:0:0:0:0:0:1 instead of the more widely used
> ::1. Consult your access logs for the actual value.
> {quote}
> It would be good if this fact were in fact documented in the Guacamole
> documentation.
> In addition, the "Proxying Guacamole" manual page does not at any point
> mention that these are regular expressions at all, so in this case it was
> good that the Docker-specific documentation mentioned this. (But at least in
> this case, there was a link to the appropriate Tomcat documentation, which is
> how I figured this out to start with!)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)