vncserver -localhost 및 ssh 터널링


6

centos 5.10 컴퓨터에서 ssh 터널링 된 vnc 연결을 설정하려고하는데 https://wiki.archlinux.org/index.php/Vncserver 와 같은 온라인 자습서를 따르고 있습니다 . 다음 $ vncserver -geometry 1024x768 -localhost :1과 같이 서버를 실행 중이며 다음 과 같이 openssh 클라이언트와 연결하십시오 ssh -f me@vnc.machine -L 5900:vnc.machine:5901 -N. 그런 다음 realvnc 뷰어로 localhost : 5900에 연결합니다. 어떤 이유로 든 -localhost 매개 변수를 사용하면 작동하지 않지만 생략하면 훌륭하게 작동합니다. 모든 가이드는 그것을 사용하는 것이 더 안전하다고 말합니다. 나는 이것이 서버 측의 구성 문제 일지 모른다고 생각하지만,이 시점에서 거의 혼란에 빠졌고 많은 것을 시도했습니다. 왜 이런 일이 일어나고 있는지 말해 줄 수 있습니까?

답변:


11

-localhost옵션은 VNC 서버에 루프백 인터페이스에만 바인드하도록 지시하므로 실행중인 머신에서만 VNC 서버에 연결할 수 있습니다. 즉, VNC 세션에 침입하려는 사람은 누구나 특정 컴퓨터를 이용할 수 있어야합니다. 가 없으면 -localhostVNC 서버는 로컬 연결이 아닌 연결을 수락하므로 공격자가 다른 컴퓨터를 사용하여 VNC 세션에 침입 할 수 있습니다.

을 사용하려는 경우 VNC 서버가 루프백 (localhost) 인터페이스에서만 수신하므로을 (를) -localhost통과 -L 5900:localhost:5901하지 않아야합니다 -L 5900:vnc.machine:5901.


어쩌면 혼란 스럽지만 클라이언트 컴퓨터에서 포트 5900을 클라이언트 컴퓨터의 5901로 전달하지 않습니까?
shwoseph

3
아니요, 클라이언트 시스템이 localhost아닌 서버의 관점에서 클라이언트 시스템의 5900을 5901로 전달 합니다. 그래서 localhost서버를 참조합니다.
jjlin

이상한 -localhost는 아무것도하지 않는 것

2

jjlin대답은 문제 해결에 관한 것이지만 실제로 보안을 유지하려면에 전달해야 -nolisten tcp합니다 vncserver. 이것은 X측면 에 개방형 TCP 리스너가 없도록 보장합니다 .


나는 이것이 @jjlin의 대답으로 보안을 크게 개선한다고 생각하지 않습니다. 그의 대답에서 명시 적으로는 localhost (OP가 원하는 것)를 듣고 있지 않습니다. 이 시점에서, tcp 액세스를 차단하여 더 안전하게 만드는 방법을 알 수 없습니다.
user71931

1
@ user71931 vncserverX작업의 일부로 시작 됩니다. -localhost의 옵션을 vncserver받는 아무것도하지 않는 X예에들을 수 있습니다 서버, TCP클라이언트의 포트 6001을. 때문에 vncserver프로세스가 동일한 시스템에서 실행되고, 그것은에 연결할 수 X유닉스 도메인 소켓을 사용하여 서버 및 이것은 기본적으로 무엇이다. 그러나없이 서버 여전히 수신합니다 (대한 포트 클라이언트보다는 클라이언트). -nolisten tcpXTCPXVNC
DepressionedDaniel

아, 설명해 주셔서 감사합니다. 답변에 추가하고 싶을 수도 있습니다 gotcha. 꽤 큰 것 같습니다 . 몰랐습니다. 공유해 주셔서 감사합니다.
user71931
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.