Hello Community, Has anyone encountered similar issue?
Kind regards From: Zujian YU <[email protected]> Date: Monday, 12 May 2025 at 10:14 pm To: [email protected] <[email protected]> Subject: Re: Problem with Guacamole portal login and AWS EC2 SSH - HTTP Tunnel error CAUTION: This email originated from outside of ANZ. Verify the sender is authentic and that the content is safe before taking action, clicking links, opening attachments, and/or following instructions (e.g. payment requests). Hello Nick, Thank you for the comment. In our installation, end user (On-Prem) <> AWS load balancer <> AWS Guacamole EC2, and AWS Guacamole EC2 joined AWS managed AD with one-way trust to On-Prem AD. It’s unlikely any issue between AWS load balancer <> AWS Guacamole EC2 and AWS Guacamole EC2 <> AWS managed AD which we managed subnet NACL rules and security group rules. Can you suggest which path to be checked? And as below error logs show: 00:36:16.119 [http-nio-8080-exec-26] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" connected to connection "1787". 00:36:16.119 [http-nio-8080-exec-26] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 00:36:26.010 [http-nio-8080-exec-27] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" disconnected from connection "1787". Duration: 9891 milliseconds 00:36:32.609 [http-nio-8080-exec-19] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" connected to connection "1787". 00:36:32.609 [http-nio-8080-exec-19] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 00:36:50.343 [http-nio-8080-exec-2] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" disconnected from connection "1787". Duration: 17734 milliseconds 00:36:50.555 [http-nio-8080-exec-23] WARN o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request rejected: No such tunnel. 00:37:33.522 [http-nio-8080-exec-27] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" connected to connection "1787". 00:37:33.522 [http-nio-8080-exec-27] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 00:37:49.866 [http-nio-8080-exec-2] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" disconnected from connection "1787". Duration: 16344 milliseconds 00:37:50.071 [http-nio-8080-exec-21] WARN o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request rejected: No such tunnel. What’s those GuacamoleHTTPTunnel error means? Is that something inside guaca service? Kind regards From: Nick Couchman <[email protected]> Date: Monday, 12 May 2025 at 9:23 pm To: [email protected] <[email protected]> Subject: Re: Problem with Guacamole portal login and AWS EC2 SSH - HTTP Tunnel error CAUTION: This email originated from outside of ANZ. Verify the sender is authentic and that the content is safe before taking action, clicking links, opening attachments, and/or following instructions (e.g. payment requests). On Mon, May 12, 2025 at 2:37 AM Zujian YU <[email protected]> wrote: Hello, We are running Gucamole solution on AWS environment, and it works for years, recently we have issue to access it. The Gucamole EC2 server join AWS managed AD, and the AWS managed AD setup on-way trust to On-Prem DC AD which host the end user credentials. Env: OS: RHEL8.10 Gucamole: 1.5.5 Apache-tomcat: 9.0.100 Configuration: # cat /etc/guacamole/guacd.conf [daemon] pid_file = /var/run/guacd.pid log_level = info [server] bind_host = 127.0.0.1 bind_port = 4822 # cat /usr/share/tomcat/.guacamole/guacamole.properties guacd-hostname: 127.0.0.1 guacd-port: 4822 auth-provider: net.sourceforge.guacamole.net.auth.mysql.MySQLAuthenticationProvider Please note that the "auth-provider" property was removed a long time ago and has absolutely no effect on the configuration. Symptom: 1. Some users login Gucamole portal with timeout error, and found below logs: #cat /var/log/tomcat/catalina.out … 00:36:00.468 [NioProcessor-160] WARN o.a.d.l.c.api.LdapNetworkConnection - null org.apache.mina.core.write.WriteToClosedSessionException: null at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) 00:36:01.011 [http-nio-8080-exec-21] INFO o.a.g.a.l.AuthenticationProviderService - User "userid-***" was successfully authenticated by LDAP server "onprem-ad-***.com". 00:36:01.012 [http-nio-8080-exec-21] INFO o.a.g.r.auth.AuthenticationService - User "userid-***" successfully authenticated from [10.139.12.175, 10.73.192.28, 127.0.0.1]. 00:36:11.072 [NioProcessor-162] WARN o.a.d.l.c.api.LdapNetworkConnection - null org.apache.mina.core.write.WriteToClosedSessionException: null at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) 00:36:11.606 [http-nio-8080-exec-26] INFO o.a.g.a.l.AuthenticationProviderService - User "userid-***" was successfully authenticated by LDAP server "onprem-ad-***.com". 00:36:11.606 [http-nio-8080-exec-26] INFO o.a.g.r.auth.AuthenticationService - User "userid-***" successfully authenticated from [10.139.12.175, 10.73.192.28, 127.0.0.1]. 00:36:13.754 [NioProcessor-163] WARN o.a.d.l.c.api.LdapNetworkConnection - null org.apache.mina.core.write.WriteToClosedSessionException: null at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) 00:36:16.119 [http-nio-8080-exec-26] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" connected to connection "1787". 00:36:16.119 [http-nio-8080-exec-26] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 00:36:26.010 [http-nio-8080-exec-27] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" disconnected from connection "1787". Duration: 9891 milliseconds 00:36:32.609 [http-nio-8080-exec-19] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" connected to connection "1787". 00:36:32.609 [http-nio-8080-exec-19] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 00:36:50.343 [http-nio-8080-exec-2] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" disconnected from connection "1787". Duration: 17734 milliseconds 00:36:50.555 [http-nio-8080-exec-23] WARN o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request rejected: No such tunnel. 00:37:33.522 [http-nio-8080-exec-27] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" connected to connection "1787". 00:37:33.522 [http-nio-8080-exec-27] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 00:37:49.866 [http-nio-8080-exec-2] INFO o.a.g.tunnel.TunnelRequestService - User "userid-***" disconnected from connection "1787". Duration: 16344 milliseconds 00:37:50.071 [http-nio-8080-exec-21] WARN o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request rejected: No such tunnel. … 1. I can login Gucamole portal but when click the AWS EC2 server to ssh, error log show: 1:28:06.312 [NioProcessor-183] WARN o.a.d.l.c.api.LdapNetworkConnection - null org.apache.mina.core.write.WriteToClosedSessionException: null at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:1192) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeNow(AbstractPollingIoProcessor.java:1153) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.removeSessions(AbstractPollingIoProcessor.java:864) at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:694) at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) 01:29:59.444 [http-nio-8080-exec-23] INFO o.a.g.tunnel.TunnelRequestService - User “***” connected to connection "1874". 01:29:59.444 [http-nio-8080-exec-23] INFO o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not WebSocket). Performance may be sub-optimal. 01:31:14.621 [http-nio-8080-exec-5] INFO o.a.g.tunnel.TunnelRequestService - User “***” disconnected from connection "1874". Duration: 75177 milliseconds 01:31:14.635 [http-nio-8080-exec-5] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: Connection to guacd timed out. 01:31:14.808 [http-nio-8080-exec-21] WARN o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request rejected: No such tunnel. 01:31:14.814 [http-nio-8080-exec-4] WARN o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request rejected: No such tunnel. Verfication: * AWS subnet NACLs / Guacamole EC2 security group rules are all good to whitelist required traffic. * The Gucamole EC2 join domain successfully [...] May 12 04:59:40 ac152d4d39a4432 guacd[1844190]: Resize method: none May 12 04:59:40 ac152d4d39a4432 guacd[1844190]: No clipboard line-ending normalization specified. Defaulting to preserving the format of all line endings. May 12 04:59:40 ac152d4d39a4432 guacd[1844190]: User "@3f6a7562-58fb-46e8-a093-15a36fc8a8de" joined connection "$85dbdc37-134b-43b6-8ea3-374137e1ed01" (1 users now present) May 12 04:59:40 ac152d4d39a4432 guacd[1844190]: Recording of session will be saved to "/opt/guacamole/recording/screen/992382480584 - mx-asg-db-connect-j13555-j13555-ap-southeast-3 - i-0b77f582013cbc860//202505> May 12 04:59:40 ac152d4d39a4432 guacd[1844190]: Loading keymap "base" May 12 04:59:40 ac152d4d39a4432 guacd[1844190]: Loading keymap "en-us-qwerty" May 12 04:59:49 ac152d4d39a4432 guacd[1844190]: RDP server closed/refused connection: Disconnected. May 12 04:59:49 ac152d4d39a4432 guacd[1844190]: User "@3f6a7562-58fb-46e8-a093-15a36fc8a8de" disconnected (0 users remain) May 12 04:59:49 ac152d4d39a4432 guacd[1844190]: Last user of connection "$85dbdc37-134b-43b6-8ea3-374137e1ed01" disconnected May 12 04:59:49 ac152d4d39a4432 guacd[1780450]: Connection "$85dbdc37-134b-43b6-8ea3-374137e1ed01" removed. Any suggestion is appreciated. I think some more network-level troubleshooting is going to be required - all of the messages you posted and symptoms you describe appear to be network-related. In the immediate message above, the reason for the failure is given: RDP server closed/refused connection: Disconnected. This indicates that, for one reason or another, Guacamole could not establish the connection to the RDP server. Could be a VPC-level issue (routing, ACL, Security Groups, etc.), or it could be a configuration issue (wrong security level, for example). Combine this with the LDAP issues you mention earlier, and I would definitely say something network-related is going on - Guacamole is having trouble consistently connecting to or maintaining a connection to the LDAP server. Aside from network issues, you might check resources utilization - depending on how many users you have logging in concurrently, it could be that network connections are failing or getting dropped because the system running Guacamole does not have the RAM or CPU to handle the number of connections. Also, since you're running RHEL, you might want to make sure that SELinux is not interfering with the connections. I don't recommend disabling SELinux entirely, but you can use audit2why to examine the /var/log/audit/audit.log file and see if SELinux is dropping or preventing any connections. -Nick This e-mail and any attachments to it (the "Communication") is, unless otherwise stated,confidential, may contain copyright material and is for the use only of the intended recipient. If you receive the Communication in error, please notify the sender immediately by return e-mail, delete the Communication and the return e-mail, and do not read, copy, retransmit or otherwise deal with it. Any views expressed in the Communication are those of the individual sender only, unless expressly stated to be those of Australia and New Zealand Banking Group Limited ABN 11 005 357 522, or any of its related entities including ANZ Bank New Zealand Limited (together "ANZ"). ANZ does not accept liability in connection with the integrity of or errors in the Communication, computer virus, data corruption, interference or delay arising from or in respect of the Communication. This e-mail and any attachments to it (the "Communication") is, unless otherwise stated,confidential, may contain copyright material and is for the use only of the intended recipient. If you receive the Communication in error, please notify the sender immediately by return e-mail, delete the Communication and the return e-mail, and do not read, copy, retransmit or otherwise deal with it. Any views expressed in the Communication are those of the individual sender only, unless expressly stated to be those of Australia and New Zealand Banking Group Limited ABN 11 005 357 522, or any of its related entities including ANZ Bank New Zealand Limited (together "ANZ"). ANZ does not accept liability in connection with the integrity of or errors in the Communication, computer virus, data corruption, interference or delay arising from or in respect of the Communication.
