Guacamole + xrdp => keine Verbindung

OP #7565428
Lesenswert?

Tag,

ich habe heute Guacamole als Docker-Compose (von "boschkundendienst" auf GitHub) eingerichtet, funktioniert soweit ganz gut: SSH-Verbindungen funktionieren und eine RDP-Verbindung zu einem Windows10-Rechner klappt auch.

Nun versuche ich auf einen Raspi mit aktuellen Raspian und xrdp zuzugreifen. Von Windows aus mit dem eingebauten RDP-Clienten funktioniert das.

Guacamole schmeißt hierbei allerdings einen Fehler. Im Browser:

1
Der entfernte Computer ist gegenwärtig nicht erreichbar. Versuchen Sie die Aktion erneut oder kontaktieren Sie Ihren Systemadministrator.

Der Guacamole-Container:

1
21:31:41.603 [http-nio-8080-exec-8] INFO  o.a.g.tunnel.TunnelRequestService - User "user" connected to connection "4".
2
Exception in thread "Thread-76" java.lang.IllegalStateException: Message will not be sent because the WebSocket session has been closed
3
  at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:449)
4
  at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:307)
5
  at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:249)
6
  at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:191)
7
  at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:36)
8
  at org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint.sendInstruction(GuacamoleWebSocketTunnelEndpoint.java:152)
9
  at org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint.access$200(GuacamoleWebSocketTunnelEndpoint.java:53)
10
  at org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint$2.run(GuacamoleWebSocketTunnelEndpoint.java:253)
11
21:31:48.130 [http-nio-8080-exec-8] INFO  o.a.g.tunnel.TunnelRequestService - User "user" disconnected from connection "4". Duration: 6525 milliseconds

Am vielversprechendsten ist wohl das Log aus dem guacd-Container:

1
guacd[1722]: INFO:  RDP server closed/refused connection: Server refused connection (wrong security type?)

Ich habe jetzt in den Einstellungen unter Parameter - Authentifizierung - Sicherheitsmodus alle Varianten durch. Keine Besserung.

Hat wer evtl. sachdienliche Hinweise?

#7568149
Lesenswert?

Matthias S. schrieb:

Hi, Danke für den Hinweis. Frage: user-mapping config File am Raspi oder in einem der Container?

Ich kenne dein Docker-Setup nicht. Aber natürlich muss die XML Datei im Container bearbeitet werden. Wenn Du die Änderung über einen Neustart des Containers hinweg beibehalten möchtest, solltest Du die config Dateien natürlich in einem Volume oder bind mount vorhalten.

OP #7570226
Lesenswert?

Eric I. schrieb:

Aber natürlich muss die XML Datei im Container bearbeitet werden.

So natürlich war das für mich nicht, kann ja auch sein, dass das eine Datei ist, die zum xrdp-Server gehört ;-)

Eric I. schrieb:

Ich kenne dein Docker-Setup nicht.

Ich hänge unten meine aktuelle Docker-Compose an, da ich hier tatsächlich noch irgendwie ein Problem habe. Basis ist folgendes Compose: https://github.com/boschkundendienst/guacamole-docker-compose

Anscheinend ist es so, dass beim guacd-Container das /etc/guacamole (in diesem sitzt die user-mapping.xlr) nicht so einfach nach außen mountbar ist, man muss das mit einer Env-Variablen machen:

1
docker run --name some-guacamole    \
2
    ...
3
    -v /local/path:/some-directory   \
4
    -e GUACAMOLE_HOME=/some-directory \
5
    -d -p 8080:8080 guacamole/guacamole

https://guacamole.apache.org/doc/gug/guacamole-docker.html#guacamole-docker-guacamole-home

Das habe ich über ein Volume gemacht. Verzeichnis besteht ist aber leer. Also eine user-mapping.xlr erstellt und die von dir geposteten Zeilen da reingeschrieben. Problem bleibt damit leider immer noch das gleiche.

Hier mein Docker-Compose (die Kommentare vorher lasse ich weg, lassen sich über den GitHub-Link abrufen. Nginx habe ich weggelassen):

1
version: '2.0'
2

3
# networks
4
# create a network 'guacnetwork_compose' in mode 'bridged'
5
networks:
6
  guacnetwork_compose:
7
    driver: bridge
8

9
volumes:
10
  guacamole_home:
11

12
# services
13
services:
14
  # guacd
15
  guacd:
16
    container_name: guacd_compose
17
    image: guacamole/guacd
18
    networks:
19
      guacnetwork_compose:
20
    restart: always
21
    volumes:
22
    - ./drive:/drive:rw
23
    - ./record:/record:rw
24
  # postgres
25
  postgres:
26
    container_name: postgres_guacamole_compose
27
    environment:
28
      PGDATA: /var/lib/postgresql/data/guacamole
29
      POSTGRES_DB: guacamole_db
30
      POSTGRES_PASSWORD: 'ChooseYourOwnPasswordHere1234'
31
      POSTGRES_USER: guacamole_user
32
    image: postgres:15.2-alpine
33
    networks:
34
      guacnetwork_compose:
35
    restart: always
36
    volumes:
37
    - ./init:/docker-entrypoint-initdb.d:z
38
    - ./data:/var/lib/postgresql/data:Z
39

40
  # guacamole
41
  guacamole:
42
    container_name: guacamole_compose
43
    depends_on:
44
    - guacd
45
    - postgres
46
    environment:
47
      GUACD_HOSTNAME: guacd
48
      POSTGRES_DATABASE: guacamole_db
49
      POSTGRES_HOSTNAME: postgres
50
      POSTGRES_PASSWORD: 'ChooseYourOwnPasswordHere1234'
51
      POSTGRES_USER: guacamole_user
52
      GUACAMOLE_HOME: /guacamole-home
53
    image: guacamole/guacamole
54
    volumes:
55
    - guacamole_home:/guacamole-home
56
    links:
57
    - guacd
58
    networks:
59
      guacnetwork_compose:
60
    ports:
61
## enable next line if not using nginx
62
    - 9080:8080/tcp # Guacamole is on :8080/guacamole, not /.
63
## enable next line when using nginx
64
##    - 8080/tcp
65
    restart: always
OP #7571170
Lesenswert?

Tag,

ich habe heute festgestellt, dass der RasPi tatsächlich gar nicht mehr im Netzwerk erreichbar war. Das könnte auch schon bei meinen Tests am 30. so gewesen sein. Neustart hat das Problem behoben und seitdem ist auch die RDP-Verbindung über Guacamole möglich. Das erstellen der user-mapping.xml dürfte also was gebracht haben.

Vielen Dank Eric!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren