VNC 원격 관리 Linux 서버 보안 지침

오픈소스 분야에서 원격 원격 조종 기술의 대표가 바로 VNC다.VNC(Virtual Network Computer, 가상 네트워크 컴퓨터)는 AT&T 실험실에서 개발한 원격 컴퓨터를 조종할 수 있는 소프트웨어다.주 제어단과 제어단에 따라 VNC 소프트웨어는 두 부분으로 나눌 수 있는데 그것이 바로 VNC 서버와 VNC viewer이다.전자는 피제어단에 설치되고 후자는 메인 제어단에 설치된다.VNC 소프트웨어는 원본일 뿐만 아니라 플랫폼을 뛰어넘는 것이다.많은 시스템 관리자들이 윈도 플랫폼에서 이 VNC를 원격 관리 리눅스 서버나 클라이언트의 도구로 사용하는 것을 좋아한다.자세한 내용은 다음을 참조하십시오.http://os.51cto.com/art/201102/244861.htm)
전체 VNC에서 실행되는 워크플로우는 다음과 같습니다.
(1) VNC 클라이언트는 브라우저 또는 VNC Viewer를 통해 VNC 서버에 연결됩니다.
(2) VNC Server는 연결 비밀번호와 액세스된 VNC Server 디스플레이 장치를 입력해야 하는 대화창을 클라이언트로 전송합니다.
(3) 클라이언트가 온라인 암호를 입력한 후 VNC Server에서 클라이언트에 액세스 권한이 있는지 확인합니다.
(4) 클라이언트가 VNC Server 인증을 통과하면 클라이언트는 VNC Server에 데스크톱 환경을 표시하도록 요구합니다.
(5) VNC 서버는 X Protocol을 통해 X 서버에 화면 표시 제어권을 VNC 서버에 맡기도록 요구한다.
(6) VNC 서버는 앞으로 X 서버의 데스크톱 환경에서 VNC 통신 프로토콜을 이용하여 클라이언트에게 전송되고 클라이언트가 VNC 서버의 데스크톱 환경과 입력 장치를 제어할 수 있도록 한다.
본고는 VNC를 이용하여 리눅스 서버의 원격 관리를 어떻게 하는지를 소개하고 그 과정에서 주의해야 할 안전 사항을 중점적으로 표시한다.
1. VNC 서버 시작
VNC 소프트웨어를 이용하여 원격 제어를 실현하는 기본 원리는 메인 컨트롤러가 VNC 클라이언트를 이용하여 연결 요청을 하고 컨트롤러가 동의하면 원격 제어를 할 수 있다.이때 주 제어단은 원격으로 제어단을 조종할 수 있다.이를 위해 VNC 소프트웨어를 이용하여 리눅스 운영체제를 원격으로 조종하려면 먼저 리눅스 운영체제에서 VNC 서버 소프트웨어를 시작해야 한다.그렇지 않으면 VNC 연결을 설정할 수 없습니다.그러나 대부분의 리눅스 운영체제에서 빨간 모자의 리눅스 시스템은 일반적으로 기본적으로 VNC 서버를 설치한다.그러나 안전상의 이유로 폐쇄되는 경우가 많다.시스템 관리자가 VNC를 이용하여 원격 조종을 하려면 리눅스 운영체제에서 VNC 서버를 시작해야 한다.
Linux 운영체제의 명령줄 아래에서 시스템 관리자는 vncserver 명령을 입력하여 VNC 서버를 시작할 수 있습니다.운영 체제에서는 부팅하는 동안 보안을 위해 시스템 관리자에게 VNC 연결에 대한 암호를 입력하라는 프롬프트를 표시합니다.시스템 관리자는 여기에 비교적 복잡한 암호, 예를 들어 영문 문자와 숫자가 결합된 암호를 입력하여 공급자의 해독의 난이도를 높일 수 있다.VNC 연결을 구축한 후, 메인 컨트롤러는 자신의 컴퓨터를 조작하는 것처럼 컨트롤러를 조작할 수 있기 때문이다.그래서 이 비밀번호는 안전을 보장하는 마지막 장벽이 될 것이다.부팅이 완료되면 그림 1과 같이
그림 1 부팅 VNC Server 다이어그램
비밀번호 구성이 완료되면 Linux 운영 체제에서 마지막으로 VNC 연결 주소를 알려 줍니다.위에서 보듯이 마지막 시스템 관리자는localhost를 사용할 수 있습니다.localdomain은 리눅스 운영체제를 원격으로 조종합니다.앞으로 VNC 클라이언트에서 이 네트워크 주소를 입력하면 VNC 서버에 연결할 수 있습니다.나중에 VNC의 연결 암호를 변경하려면 vncpasswd를 사용하여 변경해야 합니다.패스워드 아니야.이것은 사용자 비밀번호를 바꾸는 명령과 다르다.일반적으로 네트워크 주소가 정상적으로 표시되면 이 VNC 서비스는 정상적으로 시작됩니다.
또한 안전을 위해 VNC 서버를 중단한 후 서버에서 VNC 응용 서버를 제때에 닫는 것이 좋다.닫힌 명령은 위와 같이 다음 명령만 실행하면 됩니다.

#vncserver –kill :1

여기서 마지막 1은 이전에 시작된 창 번호를 나타냅니다.시스템 관리자는 어떤 서비스가 시작된 후에 제때에 그것을 닫는 습관을 길러야 한다.서비스를 하나 더 시작하면 여러 개*****의 기회가 있습니다.특히 운영체제를 서버로 사용할 때 이 습관은 서버 시스템의 안전성을 어느 정도 높일 수 있다.일반적으로 Linux 운영체제에서 기본적으로 시작하지 않는 서비스는 시스템 관리자가 그들을 시작한 후에 마지막에 제때에 닫아야 한다.
그러나 기업 내부라면 기업의 구조가 비교적 크다. 예를 들어 시스템 관리자의 사무실에서 리눅스 운영체제 클라이언트까지 30분이 걸린다. 이때 관리의 편의를 위해 상대방의 운영체제가 일반적인 클라이언트로만 사용된다면 리눅스 운영체제가 시작할 때 VNC 서버를 자동으로 시작할 수 있다.클라이언트의 안전성 요구가 그다지 엄격하지 않기 때문에 관리의 편의성에 있어서 어느 정도 타협할 수 있다.그러나 운영체제가 서버라면 자동적으로 VNC 서버와 같은 조작을 시작하기 때문에 시스템 관리자는 조심해야 한다.
시스템 관리자가 전원을 켤 때 VNC 서버를 자동으로 시작해야 한다고 확인하면ntsysv 서비스를 통해 정의할 수 있습니다.명령줄 상태에서 명령ntsysv를 입력한 다음 vncserver 항목 (빈칸으로 선택) 을 선택하면, 전원을 켜면 VNC 서버를 시작할 수 있습니다.그리고/etc/sysconfig/vncservers 프로필을 수정해야 합니다.이 파일의 VNCSERVER="1:root"항목을 찾습니다.기본적으로 운영체제는 이 줄을 주석해 버린다.시스템 관리자는 앞의 주석 기호를 제거하기만 하면 된다.이렇게 설정하면 다음 번에 OS가 시작되면 VNC 서버가 자동으로 활성화됩니다.
2. VNC Viewer를 사용한 Linux 원격 관리
VNC 서버를 구성한 후 VNC Viewer를 사용하여 Linux의 원격 로그인과 관리를 실현할 수 있습니다.Linux 아래에 클라이언트 프로그램이 포함되어 있으므로 사용자는 [응용 프로그램] 메뉴를 열고 팝업된 캐스케이드 메뉴에서 [VNC Viewer]를 선택할 수 있습니다. 그림 2와 같습니다.
그림 2에서 VNC Viewer 사용
다음과 같은 VNC Server 로그인 대화 상자가 나타나므로 로그인할 서버 주소를 지정해야 합니다.
그림 3 VNC Server 주소 입력
주소를 입력하면 VNC Viewer가 VNC 서버에 연결되고 서버는 VNC 클라이언트를 인증해야 합니다. 그림 4와 같은 대화 상자를 팝업하면 사용자가 이전에 설정한 비밀번호를 입력하면 됩니다.
그림 4 비밀번호 입력
클라이언트가 서버 측의 검증을 통과한 후에 그림5와 같은 원격 로그인 인터페이스에 들어가면 사용자는 도형 인터페이스에서 원격 리눅스에 대한 접근과 관리를 간단하고 편리하게 할 수 있다.
그림 5 VNC Server 성공
3, SSH+VNC를 사용하여 안전한 Linux 원격 데스크톱 관리
VNC는 데이터를 압축하여 전송하는 데이터 양이 직접 SSH로 암호화하는 것보다 작지만 같은 네트워크의 컴퓨터가 스니퍼로 사용자 이름과 비밀번호를 도청할 수 있는 기회가 한두 번 있는 것이 단점이다.인증 후의 데이터는 암호화 전송을 할 수 있기 때문에 사용 과정에서 설정을 거치면 안전하다. 그렇지 않으면 전송 내용이 완전한 비밀을 보장할 수 없다.필요할 때 SSH를 통해 암호화 포트 맵을 통해 사용자 이름과 비밀번호를 전송할 때도 암호화할 수 있으며 이 조작이 차지하는 추가 대역폭은 극히 적다.
SSH가 VNC를 안전하게 보호하려면 SSH의 포트 전달 기능을 사용해야 합니다.일반적으로 클라이언트가 Linux를 사용할 때 SSH로 링크를 만들 수 있다. 문법적으로'-L 로컬 포트: 로컬 주소: 원격 포트 원격 주소'라는 추가 파라미터를 추가해야 한다. 예를 들어 로컬은 X.Y.Z.W이고 서버는 A.B.C.D이다. 전송할 포트는 로컬은 5901이고 원격도 5901이다. 그러면 명령은 다음과 같다.

ssh -L 5901:X.Y.Z.W:5901 A.B.C.D

다른 매개 변수는 대부분 동시에 사용할 수 있다.실행이 완료되면 서버 5901 포트와 로컬 5901 포트의 암호화 터널이 생성됩니다.링크할 서버에서 실행 중인 VNC 데스크톱 번호가 2인 경우 다음 명령을 계속합니다.

vncviewer A.B.C.D:2

이렇게 열려 있는 VNC 창의 모든 데이터는 SSH로 암호화됩니다.
일반적인 관리 상황에서 SSH의 Windows 클라이언트를 많이 사용하기 때문에 VNC와 함께 안전한 Linux 원격 데스크톱 관리를 위해 Windows의 SSH Secure Shell을 설정하는 방법을 소개한다.
먼저 SSH Secure Shell의 메인 인터페이스에서 Settings 아래의 Tunneling을 선택합니다. 그림6과 같습니다.
그림 6에서 SSH Secure Shell에 대한 Tunneling 설정
그리고 설정을 추가합니다. 그림7에서 보듯이 Listen은 본 컴퓨터의 포트이고 Destination은 원격 주소와 포트이며 Display는 자신의 설명을 설정할 수 있습니다.
그림 7 Tunneling 설정의 구체적인 옵션
마지막으로 vncviewer를 실행해서 연결하면 됩니다.특히 주의해야 할 것은 이 서버의 주소는 연결이 필요한 VNC 서버의 주소가 아니라 앞에서 설정한 본기의 SSH 탐지 포트의 주소이다. 왜냐하면 모든 VNC 서버로 통하는 데이터는 본기의 SSH를 거쳐 전송해야 하기 때문이다. 그림8에서 보듯이 일반적으로localhost에 포트를 추가하면 된다. 이 포트는 그림7에서 설정한 SSH의 탐지 포트이다.
그림 8 Windows의 VNC Viewer를 사용하여 Linux 포트의 VNC Server 연결
그림9은 Wireshark을 사용하여 상기 통신의 데이터를 캡처한 결과를 뚜렷하게 보여준다. 클라이언트에서 서버로 가는 VNC 데이터는 모두 SSH 프로토콜로 암호화 전송을 했기 때문에 전통적인 SSH 암호화 처리를 하지 않은 VNC 통신에 있어 매우 안전하고 도청과 중간자를 효과적으로 피할 수 있다. **:
그림9 상기 통신 프로세스에 대한 캡처 결과 표시

좋은 웹페이지 즐겨찾기