티스토리 뷰

리눅스

Telnet Service 로 원격로그인하자.

꿈이 있는 자유 2010. 7. 12. 19:34
이번 글에서는 원격에서 리눅스로 로그인하는 방법을 배워보자. 원격에서 로그인을 해야 하는 이유는 여러가지 있겠지만, 첫째는 무시무시한 전자파가 나오는 서버실안에서 아침에 출근해서 저녁에 퇴근할 때까지 그 앞에 있을 수는 없기 때문이고, 둘째는 출장 혹은 회사가 아닌 다른 장소에서 필요한 업무를 수행하기 위함일 것이다.
첫번째 케이스는 웃자고 하는 얘기지만, 실제로 어느 엔지니어가 서버실에 하루종일 앉아서 모니터링하겠는가? 혹은 서버작업을 수행하겠는가? 본인이 일하는 데스크에서 서버실에 있는 리눅스 서버를 원격으로 관리하는 것이 일반적일 것이다.
두번째 케이스는 꼭 리눅스가 아니라 하더라도 우리가 NateOn 혹은 Remote Desktop Connection 같은 Windows 툴을 이용해서 다른 컴퓨터 또는 서버에 연결하기 위함이다. 사용환경으로 보자면 Windows 툴을 이용해서 원격로그인하는 것이 훨씬 쉽겠지만, 사실 터놓고 얘기하자면 Windows 는 여러 가지 상황에 따라 연결안될 때가 많은 것이 사실이다.

이번 글은 리눅스 서버로 원격로그인하기 위해서 필요한 작업들을 열거해 보면서 telnet, OpenSSH, VNC 등 원격로그인하기 위한 여러 방법들에 대해 학습해 보기로 하자.

TelNet 이라는 것은 이름에서 느끼다시피, TELe(멀리) + NETworking 이 결합한 단어로 멀리 있는 시스템을 제어하기 위한 규약정도로 이해해두자. 관리자가 됐던 일반 사용자가 됐던 원격에서 로그인하려고 할 때 가장 간단한 서비스가 Telnet 이다. 직접 서버앞에 로컬로 로그인할 수 없는 상황에서 마치 로컬에 앉아서 작업하는 것처럼 해주는 것 정도로 이해하면 될 것같다.

Telnet 접속을 위한 도구들

1. Telnet Client -->  Telnet 을 이용해서 원격로그인하려는 클라이언트를 말하며, 클라이언트 역할을 할 컴퓨터의 OS는 사실 어떤 것도 가능하다. 단, Microsoft Windows Vista 와 Windows 7은 기본적으로 Telnet 클라이언트 툴이 설치돼 있지 않기 때문에 설치해야 한다.

Netterm( http://www.netterm.com ) : 한 때 전세계적으로 가장 많이 쓰이던 Telnet 프로그램이다. 프로그램이름이 곧 회사 도메인이름이다.


다운로드를 받으려면 여기(http://www.netterm.com/html/downloads.html) 를 클릭해서 다운받자. 아래의 그림은 이 사이트에 올라와 있는 Netterm 스크린 캡쳐화면이다.



다운받아서 설치해보자. 이 글을 올리고 있는 지금 현재 버전은 nt325421이다.


다운받았으니 설치해보자. 다운받은 파일을 더블클릭하자. 우잉? 이런!!! 설치에 에러가 발생했다. 다운로드 사이트에서는 분명 Windows 7도 된다고 했는데...기술문서(http://www.securenetterm.com/pub/NetTerm.pdf)를 보니 현재 Windows Vista 까지만 지원한단다.

그래서 이름을 보니 더 안전해 보이는 SecureNetTerm 을 다운받으려고 여기(http://www.netterm.com/html/beasnetterm.html)를 들어갔더니...아래의 그림처럼 사용할 수 없는 나라가 있다네...(쿠바, 이란, 이라크, 리비야, 북한, 수단 그리고 시리아) 어짜피 쉐어웨어이기 때문에 공공기관에서는 사용할 수 없다. 과거 Windows 98에서 가장 많이 사용하던 일종이 Telnet 툴의 대명사였는데...쩝쩝...


CRT (http://www.vandyke.com/) : 세계적으로 Netterm 과 함께 가장 인기있는 Telnet  프로그램 중 하나였다. 쉬운 인터페이스와 2바이트 문자를 지원함으로 한글도 사용할 수 있다는 점이 너무 편리했던 프로그램이다. 현재는 SecureCRT로 기존 유명 Telnet 클라이언트 프로그램인 CRT가 제공됐던 기본 기능에, SSH1 또는 SSH2 등의 보안기능이 첨가된 프로토콜을 지원기능이 추가됐다.


스크린샷은 아래와 같다.


그밖에 사용할만한 Telnet 클라이언트 프로그램으로서 AbsoluteTelnet(http://www.celestialsoftware.net/) 이 있다. 이상 위와 같은 프로그램들은 모두 쉐어웨어이기 때문에 단기간 테스트용 프로그램으로서는 적당하지만, 공공기관에서 설치한다거나, 여러가지 제한사항이 있기 때문에 SSH 클라이언트 툴 설명할 때는 무료 툴을 사용하기로 하자.

그래서, 필자는 무료로 사용할 수 있는 Telnet 툴을 쓰기로 했다. Telnet 클라이언트를 Windows 7 이라고 했을 때 OS가 제공해 주는 무료 Telnet 툴을 쓰자. 물론 위에서 언급했듯이 Windows XP 까지는 자동으로 Telnet 클라이언트툴이 제공됐지만, Windows Vista 이후의 OS는 별도로 설치작업을 해주면 된다.

2. Telnet Server --> 필자는 Telnet 서버를 리눅스에 설치하기로 했다.

먼저, Telnet 이 리눅스에 설치돼있는지 보자.


설치는 돼있는 것 같은데, Telnet-Server 는 설치돼있지 않다. 그럼 뭐가 설치돼있는건가?


[System] --> [Administration] --> [Add/Remove Software]에서 telnet 으로 검사해보니, 그렇군...Telnet 클라이언트 리눅스용 툴이란다. 즉 리눅스를 설치하면 기본적으로 Telnet 클라이언트 툴을 설치되지만, Telnet Server 는 설치되지 않는다.

그럼... Telnet Server를 설치해보자. yum 으로 설치하자.


일반 사용자권한으로는 설치가 되지 않기 때문에 root 권한으로 설치하자.

su -c 'yum -y install telnet-server'
 

성공적으로 설치가 끝났다. 설치과정을 자세히 보면 Telnet-Server 만 설치하지 않고 xinetd 도 같이 설치되는 것을 볼 수 있다. 이는 Telnet-Server 는 xinetd 타입의 서버 프로그램이기 때문에 yum 으로 설치하면 Telnet-Server 가 xinetd 에 의존프로그램이어서 같이 설치되는 것이다.

프로그램을 설치했으니 환경설정하자. /etc/xinetd.d/telnet 파일을 vi로 열자.

vi /etc/xinetd.d/telnet



제일 아래쪽 아마도 12라이쯤 되는 곳에 보면 아래와 같은 부분이 있다.

disable = yes

이 부분에서 disable 이 yes라는 것은 현재 서비스를 사용하지 못한다가 yes니까...그러니까 사용할 수 없게 돼있다는 뜻. 그렇다면 여기를 yes 에서 no 로 변경하면 되겠다. 하지만 현재 계정은 root 권한이 아니기 때문에 저장이 되지 않고 오로지 Read Only일 것이다. 그래서 다시 root 계정으로 로그인해서 수정하자.


Telnet Server 환경설정을 마쳤으면 관련 Daemon 서비스 즉 xinetd 를 다시 시작한다.


xinetd 서비스를 Start 하기 위해 아래의 명령을 사용한다.

service xinetd restart

어라! 근데, 하나는 FAILED 이고 하나만 OK이다. 신경쓰지 않아도 된다. 한번도 서비스를 Start 한 적이 없었기 때문에 Stop 이 안되는 것이다. 지금 지극히 정상이다.

Telnet-Server 는 리눅스에 현재 설치했고, Telnet 클라이언트는 서버의 IP를 알아야 접근할 것이다. 서버의 IP를 확인하고 Telnet 클라이언트인 Windows 7에서 PING 테스트를 해봤다.


현재 필자의 리눅스 IP는 192.68.179.131 이고 PING 테스트가 잘 된 것을 볼 수 있다. 그렇다면 이제 Telnet 을 해보자.


어~? telnet 명령이 먹지 않는다. 이는 이미 위에서 언급했듯이 Windows Vista 이후의 Microsoft 운영체제에서는 Telnet 을 지원하지 않고 있다. 이유는 보안때문이다. Telnet 은 전혀 암호화를 하지 않는다. 그래서 서버와 클라이언트간의 통신을 누군가 캡쳐하면 다 보인다. 다 들통난다. 그래서 아예 Microsoft  에서는 기본적으로 Telnet 관련 프로그램을 Disable 시켜놨다. 그럼 Telnet 클라이언트 툴을 활성화해보자.

먼저,
 버튼을 클릭한 다음 제어판으로 가자. 또는 실행창을 띄워서 'appwiz.cpl' 명령을 내려서 제어판의 프로그램 추가/제거 창을 띄운다.


왼쪽 프레임에 있는 [Turn Windows features on or off] 로 가자. 한글 Windows 에서는 [Windows 기능 사용 사용안함] 일거다. 여기서 체크돼있으면 이미 설치되어 있는 것이고, 체크해제돼있으면 체크해서 설치하면 된다. Telnet 쪽으로 스크롤 다운해보자.


역쉬 예상대로 체크돼있지 않다. 설치가 안돼있다는 뜻이다. Telnet 클라이언트를 설치하기 위해 [Telnet Client] 체크박스를 체크하자. 그리고 [OK] 버튼을 누르면 설치가 간단하게 끝난다.


잠시 기다리면 설치가 끝난다.


그럼, 다시 커맨드 창에서 테스트해보자. telnet 뒤에는 서버의 호스트 이름 이나 IP를 넣으면 된다.

telnet 192.168.179.131


또 하나의 문제가 발생했다. 이미 PING 테스트를 했기 때문에 서버가 살아있다는 것을 알지만, Telnet 이 연결되지 않는다. 에러메시지를 보니 23번 포트번호로 접근할 수 없다는 것이다. 즉 IP를 이용해서 서버까지 연결했지만, 0~65535의 포트중 Telnet 이 사용하는 23번 포트가 열려있지 않은 즉 폐쇄돼있다는 것이다.


그럼, 리눅스에 가서 23번 포트를 열자. 리눅스에 들어가서 Firewall 파일을 열어서 포트 추가하자. 터미널에서 system-config-firewall 명령으로 창을 띄우자.


[Firewall Configuration Startup] 창의 [Close]버튼을 클릭하여 창을 닫자. 그럼 현재 계정이 root 가 아니기 때문에 root 의 패스워드를 물을 것이다. root 패스워드를 넣고 인증을 받으면 현재 신뢰된 서비스만 디스플레이하는 뒷창이 보일 것이다. 당연히 23번 Telnet 은 목록에 올라와있지 않다. 여기서 포트를 추가하기 위해 왼쪽 프레임의[Other Ports] 를 클릭한다.


창의 오른쪽에 보면 [Add] 버튼이 보인다. 클릭하자. [Port and Protocol] 창이 나타났다. 여기서 스크롤 다운해서 23번 포트의 tcp 를 선택하자. 그리고 [OK] 버튼을 눌러서 창을 닫자. 그리고 이 창의 메뉴바에 
 버튼을 클릭해서 방금 추가한 포트를 적용하게 하자. 그럼. 아래와 같은 경고창이 나타난다.[Yes] 버튼을 누르자.


자, Telnet 서버인 리눅스쪽에서 할일은 다 끝났다. 다시 Windows 7 즉 Telnet 클라이언트로 가자.


다시 리눅스의 서버 IP를 넣고 Telnet 으로 연결해보자.


드뎌 리눅스 Telnet 서버에 연결됐다. 로그인 아이디와 패스워드를 넣으면 리눅스의 터미널로 연결할 때와 똑같은 것을 알 수 있다.
정리하자면 Telnet 클라이언트 툴은 Microsoft Windows 가 제공해주는 것으로 사용하되, Windows Vista이후의 OS 는 기본적으로 설치하지 않기 때문에 설치하면 된다. 그리고 리눅스의 Telnet 서버도 기본적으로 설치되어 있지 않기 때문에 설치하고 환경설정하고 xinetd 데몬 서비스 Start 하고, 그리고 Firewall 에서 포트 23번을 열면 Telnet 서비스를 사용할 수 있게 된다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함