[IT Trend]/Open Program

[시큐리티 팁!팁!팁!] WebSSH를 이용한 안전하고 편리한 관리

하늘을닮은호수M 2006. 4. 4. 10:32
반응형

출처 : http://www.ionthenet.co.kr/newspaper/view.php?idx=10973

[시큐리티 팁!팁!팁!] WebSSH를 이용한 안전하고 편리한 관리

만약 외부에서 급하게 파이어월이 설치된 사내 유닉스 서버에 SSH로 원격 접속하려면 어떻게 해야 할까. VPN을 사용할 수 있지만, 별도의 프로그램을 설치해야 하고, 복잡한 설정 과정을 거쳐야 하기 때문에 손쉽게 쓸 수 있는 방법은 아니다. 또한 SSH를 사용하기 위해 별도의 SSH 클라이언트 프로그램을 다운로드해 설치하더라도 파이어월에서는 막혀 있기 때문에 마땅한 방법이 없는 것이 사실이다.


홍석범 | 오늘과 내일 과장

이런 경우 대부분의 회사나 기관에서는 우선 별도로 설치된 SSH 서버에 접속한다. 즉 일종의 경유 서버를 거쳐 접속하고자 하는 서버로 다시 접속하는 방식을 선택하는 것이다. 물론 이 방법도 나름대로 장점이 있지만 SSH 프로그램이 있어야 한다는 문제가 있다.
별도의 프로그램을 설치하지 않고도 사용할 수 있는 방법은 없을까. 웹기반의 SSH인 WebSSH를 사용하는 방법이 그 대안이 될 수 있다.
WebSSH 프로그램 중 가장 많이 사용되는 것은 'MindTerm'으로, 웹사이트(www.appgate.com/products/80_MindTerm)에서 다운로드 할 수 있다. MindTerm은 자바 애플릿으로 사용하는 SSH 클라이언트 프로그램이다. PuTTY나 SecureCRT와 같은 SSH 전용 클라이언트 프로그램없이 JRE가 설치돼 있는 브라우저만 있으면 되므로 아주 편리하다. MindTerm의 특징은 다음과 같다.

·100% 자바로 이뤄져있다.
·SSH 1과 SSH 2를 지원한다.
·전용 클라이언트 프로그램처럼 별도의 GUI 메뉴를 사용할 수 있고, 다양한 터미널 타입을 제공하며, 색상이나 크기 등을 설정할 수 있다.
·별도의 암호화된 파일에 암호를 저장할 수 있다.
·SSH와 같이 프록시 기능을 지원하며, FTP와 SFTP 간 프록시 기능도 제공한다.
·PKI 인증을 지원한다.
·네트워크 트래픽을 줄이기 위해 Zlib 압축 기능을 제공한다.
·개인이나 비상업적 용도로는 무제한 사용할 수 있다.
·윈도우 95/98/ME/XP/2000은 물론 리눅스, MAC, 솔라리스 등 많은 운영체제를 지원한다.

이제 WebSSH를 서버에 직접 설치해 보자. 홈페이지에서 다운로드 메뉴를 클릭하면 바이너리와 소스코드가 나오는데, 소스는 별도로 컴파일을 해야 하므로 복잡한 절차가 필요하다. 간편하게 바이너리를 다운로드 받아 설치한다.

# wget
http://www.appgate.com/products/80_MindTerm/110_MindTerm_Download/mindterm_3.0.1-bin.zip

설치한 다음, Unzip으로 압축을 해제한다.


# unzip mindterm_3.0.1-bin.zip

압축을 해제하면 MindTerm-3.0.1/ 디렉토리에 관련 파일이 설치되는데, mindterm.jar 파일만 있으면 된다. 다음으로 mindterm.jar 파일이 있는 동일한 디렉토리에 HTML 파일을 생성하도록 한다. 이때 HTML 파일은 적당한 이름을 설정하면 된다.

이제 웹브라우저를 띄워 접속하면 상태 바에 다음과 같이 별도의 창이 뜨는 것을 확인할 수 있다.

(화면 1) 상태 바에 애플릿이 로딩된 모습

(화면 2) MindTerm이 로딩된 모습

SSH 서버란에 현재 서버의 호스트명이 보이는데, 엔터를 입력한 후 로그인과 암호를 입력하면 정상적으로 로그인되는 것을 알 수 있다.

(화면 3) 정상적으로 로그인된 화면

MindTerm에서는 다양한 매개변수(Parameter)를 제공해 원하는 대로 설정을 할 수 있는데, 유용한 몇 가지만 살펴보자. 형식의 예는 다음과 같다.

·sepFrame : 로딩 시 SSH 접속 화면을 별도의 화면에 띄울지 여부를 지정하는 것이다. true인 경우에는 별도의 창이 뜨게 되고, false의 경우 현재 화면에 로딩된다.
·프로토콜 : 사용할 프로토콜을 지정한다. SSH 1는 보안상 취약하므로 프로토콜 값은 2를 입력하도록 한다.
·포트 : 기본적으로 22번을 사용하지만, 이외의 포트를 사용할 경우 value에 별도의 포트번호를 명시하도록 한다.
·사용자 이름 : 로그인 시 기본적으로 사용될 사용자 이름을 지정하도록 한다. value를 루트로 지정하면 로그인 시 login에 자동으로 루트로 찍히게 된다.
·압축 : 압축 정보를 지정하는 것으로 0은 none, 1은 압축정도가 낮은 대신 빠르고, 9는 압축율이 높은 대신 다소 느리다.
·bg-color : 백그라운드의 색으로 red, blue, black 등으로 표현할 수도 있다. rgb 값으로도 표현 가능하다.
·cursol-color : 커서의 색을 지정하는 것으로, bg-color와 동일한 형식을 가진다.
·저장암호와 암호 : 매개변수에 암호를 저장할 수 있는데, 이 경우 별도의 암호 입력 없이 바로 로그인 할 수 있다. 예를 들어 다음과 같이 설정하면 별도의 암호 확인 없이 로그인이 되는데, 보기는 암호가 54321인 경우이다.


추가적으로 별도의 페이지를 띄우도록 설정한 경우에는 (화면 4)와 같이 자바 클라이언트에서 제공하는 메뉴로 다양한 기능을 이용할 수 있다.

(화면 4) 별도의 창에서 제공하는 메뉴이용

지금까지의 과정을 통해 살펴본 것처럼 기본적인 기능을 사용하는 데는 문제가 없지만, 페이지의 URL이 노출되면 보안상 문제가 될 수 있으므로 허용된 사용자만 접근하도록 보안 설정을 하는 것이 좋다. 이 경우 아파치의 .htaccess를 이용하는데, HTML이 설치된 디렉토리에 다음과 같이 설정하면 인증된 사용자만 접근할 수 있다.

MindTerm은 소스와 다양한 개발 API를 제공하므로 원하는 대로 수정해 사용할 수 있는 장점이 있다. 따라서 각자의 취향에 맞게 사용할 경우 홈페이지를 참고하기 바란다.

반응형