터널링 Xdmcp+ssh가 작동하지 않는 이유는 무엇입니까?

터널링 Xdmcp+ssh가 작동하지 않는 이유는 무엇입니까?

SSH를 통해 Xdmcp 프로토콜의 터널을 설정하고 싶습니다. 원격 로그인을 위한 액세스 보안입니다. 간단한 해결책은 openvpn일 수 있지만 먼저 socat+ssh를 사용해 보고 싶습니다. 서버는 Solaris 10이고 클라이언트는 Slackware 15입니다.

클라이언트에서

ssh -L 6667:localhost:6667 192.168.201.200

서버에서

socat tcp4-listen:6667,reuseaddr,fork UDP:192.168.201.200:177

클라이언트에서

sudo socat udp4-listen:177,reuseaddr,fork tcp:localhost:6667

이제 클라이언트에서 Xepyr을 실행하고...

Xephyr -query localhost -screen 1024x767  :2

여기에 이미지 설명을 입력하세요.

Xdcmp를 직접 사용하세요. 터널은 필요하지 않지만 안전하지 않습니다.

답변1

Xephyr에게 쿼리를 localhost로 보내도록 지시했으므로 XDMCP 패킷에 표시된 네트워크 주소를 127.0.0.1로 지정할 수 있습니다. socat->ssh->socat 파이프라인은 패킷의 내용을 변경할 수 없습니다.

(UDP에서 TCP로 그리고 다시 UDP로의 프로토콜 변환이 유해한 부작용을 가져올지는 확실하지 않지만 그럴 것이라고 가정합니다.)

따라서 Solaris의 디스플레이 관리자는 "안녕하세요. 저는 127.0.0.1:2의 X11 디스플레이입니다. 저를 관리하시겠습니까?"라는 메시지를 받습니다.XDMCP 지원이 Solaris 측에서 활성화되어 있다고 가정, XDMCP 협상이 성공하면 디스플레이 관리자가 클래식 X11 연결을 설정하여 127.0.0.1의 TCP 포트 6002(디스플레이 번호 기준)에 그래픽 로그인 창을 표시합니다.Solaris 호스트에서. 이것은 분명히 Slackware 호스트에 전혀 도달하지 않습니다.

(실제로 저는 Solaris 10 시스템이 "XDMCP 액세스를 허용하지 않음"으로 기본 설정되기를 바라지만 필요한 구성이 이미 완료되었다고 가정합니다.)

Solaris 호스트의 포트 6002에서 Slackware 호스트의 로컬 포트 ​​6002로 SSH 원격 TCP 전달도 설정하면 다음과 같은 이점을 얻을 수 있습니다.

 ssh -L 6667:localhost:6667 -R 6002:localhost:6002 192.168.201.200

그러나 Xepyr는 최신 X11 서버이므로 기본적으로 들어오는 TCP 연결을 수신하지 못할 수도 있습니다. 들어오는 TCP 연결을 수신하도록 명시적으로 지시해야 할 수도 있습니다.

Xephyr -listen tcp -query localhost -screen 1024x767 :2

이러한 변경을 통해 Solaris 측이 XDMCP를 허용하도록 올바르게 설정되었다고 가정하면 이 기능을 구현할 기회가 있을 수 있습니다. 아마도. 그래도 숨을 멈추지 않을 것입니다.

한 가지 가능한 문제는 XDMCP 프로토콜이 표시 이름을 에 중계하는 경우 :2Solaris 측의 표시 관리자가 /tmp/.X11-unix/X2Unix 소켓을 사용하여 쿼리 표시 서버에 연결할 수 있다고 가정할 수 있다는 것입니다. Solaris 호스트가 충분히 현대적이라면 sshd이를 전달할 수도 있습니다... 그러나 Unix 소켓을 사용하면 모든 X11 응용 프로그램(디스플레이 관리자 포함)이 디스플레이가 실제로 로컬이라고 가정하고 X11 프로토콜을 활성화하려고 시도하게 됩니다. 확장은 공유에 의존합니다. X11 서버에 대한 메모리 액세스. 애플리케이션과 서버가 서로 다른 시스템에 있으므로 공유 메모리 액세스는 당연히 불가능합니다.

그러면 Xephyr X11 서버는 Solaris Motif 창 관리자에 필요한 모든 X11 글꼴을 사용할 수 있습니다...

답변2

실제로 이 해결 방법을 찾았습니다.

ssh -X -C 192.168.201.200 -t /usr/X11/bin/amd64/Xephyr :1 -query localhost

관련 정보