최근 내 Linux 컴퓨터에 몇 가지 문제가 발생하기 시작했습니다. 그래서 VNC 서버가 설치된 Linux VPS 시스템이 있고 VNC 뷰어를 사용하여 연결하기만 하면 됩니다.
vnc too many security failures
최근 VNC 서버/뷰어에서 또는 등과 같은 오류가 발생하기 시작했습니다
Authentication failed
.
Linux 시스템에서 로그를 사용 ssh
하고 확인했는데 다음 로그가 표시됩니다.
Thu Jun 9 22:35:43 2016
Connections: accepted: 0.0.0.0::59748
SConnection: Client needs protocol version 3.3
Thu Jun 9 22:35:44 2016
SConnection: AuthFailureException: Authentication failure
Connections: closed: 0.0.0.0::59748 (Authentication failure)
Thu Jun 9 22:41:31 2016
Connections: accepted: 0.0.0.0::57806
SConnection: Client needs protocol version 3.3
SConnection: AuthFailureException: Authentication failure
Connections: closed: 0.0.0.0::57806 (Authentication failure)
결과적으로 VNC 서버는 이러한 연결을 블랙리스트에 올렸고 놀랍게도 이로 인해 컴퓨터에 액세스할 수 없게 되었습니다. (왜 블랙리스트에 올랐는지, 왜 더 이상 로그인할 수 없는지 모르겠습니다)
방금 VNC 서버를 다시 시작했고 이를 통해 VNC를 사용하여 다시 로그인할 수 있었습니다.
이게 공격이 될 수 있나요? 이를 방지하는 방법에 대한 아이디어가 있습니까?
답변1
VNC 서버에는 아무런 문제가 없습니다.
왜 이런 일이 발생합니까?
인터넷 반대편에 오신 것을 환영합니다! NAT 및 방화벽 뒤에 있지 않은 쪽입니다.
vnc too many security failures
이는 누군가가 귀하의 VNC 서버에 여러 번 로그인을 시도했지만 실패했음을 의미합니다. VNC 서버에는 여러 연결이 인증에 실패하면 일정 기간 동안 연결을 차단하는 보안 기능이 있습니다. VNC 서버를 다시 시작하면(원하는 대로) 시간 초과가 재설정됩니다.
Black Hat은 IP와 해당 IP의 포트를 지속적으로 검색하고 있습니다. 그런 다음 열린 포트에 연결하고 프로그램 배너를 확인한 후 컴퓨터 인증을 시도합니다. 소규모 웹사이트를 운영하는 서버는 하루에 수천 개의 무작위 연결을 얻을 수 있고, DNS를 통해 표시되는 어떤 것도 실행하지 않지만 공용 IP를 사용하는 서버는 여전히 수백 개의 연결을 얻을 수 있습니다.
따라서 누군가(IP 범위에서 임의의 스크립트 촬영을 의미하는 누군가)가 귀하의 서버의 공용 IP에 열린 포트가 있고 로그인을 시도하고 있음을 발견했습니다.
당신은 무엇을 해야
VNC 비밀번호는 매우 취약합니다. 인터넷을 통해 직접 VNC 서버를 실행해서는 안됩니다. 블랙리스트 시간 초과(몇 번의 실패 후 로그인을 비활성화하는 기능)는 비밀번호에 대한 일부 무차별 대입 공격을 방지할 수 있지만 충분한 조치는 아닙니다.
대신 명령줄에 127.0.0.1
다음을 추가하여 -localhost
VNC 서버를 실행 해야 합니다.
vncserver -localhost ...
그런 다음 ssh
터널을 사용하여 컴퓨터의 포트를 서버의 포트에 연결합니다. 예를 들어 (VNC 서버가 기본 포트에서 실행되고 있다고 가정합니다)
ssh -L 5900:localhost:5900 me@<my_server>
그런 다음 해당 연결이 활성화되어 있는 동안 VNC 클라이언트를 자신의 컴퓨터 포트에 연결할 수 있습니다 ssh
.5900
(이것은 *nix 시스템에서 작동합니다. Microsoft 시스템을 사용하는 경우 계속 사용할 수 있습니다 putty
. ssh tunneling
)
절대로 해서는 안되는 일
VNC 서버는 블랙리스트 기능을 비활성화할 수 없지만 블랙리스트의 매개변수를 변경할 수 있습니다. 예를 들어:
vncserver -set BlacklistTimeout=0 -set BlacklistThreshold=10000 ...
vncconfig
(일부 배포판, 특히 CentOS에서는 이 명령이 되어서 는 안 된다고 생각합니다 vncserver
)