Systems/Unix2007.11.22 10:08
Fedora Core 6를 기본으로 깔면 아예 xinetd가 없어서 telnet을 활성화 시키려면 xinetd를 깔아야 한다. (yum install xinetd를 하면 되겠지만 sshd가 있는 마당에 뭐하러 -_-) telnet을 사용하는 것을 권장하지 않지만, 그래도 어쩔 수 없이 telnet 서비스를 활성화시켜야 하는 상황이 있을 수 있다.

TELNET 서버의 설치(Fedora Core 6 기준)

1. yum install xinetd
2. yum install telnet-server

xinetd를 깔고 telnet-server를 깐다. (FC6 후기 버전에서는 이들 패키지가 기본으로는 설치되어있지 않다)

시스템 -> 관리 -> Services를 선택해 보면 xinetd가 선택되어 있다. 그 상태에서 두 번째 탭인 On Demand Services를 클릭해 보면, 실행할 수 있는 부가 서비스들의 목록이 뜬다. 단순한 telnet 서버를 만드는 것이 목적이라면, 그 상태에서 서비스 중 하나인 'telnet'을 선택하고 설정을 저장한 다음 xinetd를 다시 실행하면 된다. 설정을 저장하지 않으면 제대로 되지 않는다.

TROUBLESHOOTING

1. Connection Refused

서버로 Telnet을 했는데 이런 메시지가 나오면, 십중 팔구는 방화벽 설정 떄문에 Connection이 거부된 경우이다. 시스템 -> 관리 -> 보안 수준 및 방화벽 으로 가서 '신뢰하는 서비스'에 telnet을 추가하기 바란다.

2. Connection closed by foreign host

서버에 telnet 접속을 했는데 telnet 서버가 connection을 강제종료시킨 경우. 다음과 같은 메시지가 수반되는 경우가 있다.

getnameinfo:localhost:Success
Temporary failure in name resolution:Illegal seek


이런 메시지가 나오면 답은 간단하다. 증상의 원인은 전부 name server와 관련이 있다.

1. name server에 접근이 불가능한 사설망 안에서 telnet을 시도한 경우
2. name server의 위치가 잘못 입력되어 있는 경우

telnet 서버는 DNS에 역 쿼리를 해서 지금 나한테 telnet을 하려는 놈이 존재하는지를 파악하려고 시도한다. 그 시도가 실패하게 되면 telnet을 하는 놈이 '안전하지 못한' 클라이언트라는 판단을 하고 접속을 강제종료하게 된다. 따라서 telnet이 안될 경우, telnet 서버가 name server에 접속을 할 수 없기 때문에 그런 일이 벌어지는 것이라고 보는 것이 맞다.

이 문제를 해결하는 방법은 두가지가 있는데, name server의 위치가 잘못 입력되어 있는 경우에는 /etc/resolv.conf에 nameserver XXX,YYY.ZZZ.GGG를 입력해줘서 해결하는 방법이 있을 것이고, name server에 접속할 수 없는 사설망이라면 /etc/hosts 파일에 접속 가능한 클라이언트의 IP를 직접 적어주는 방법이 있다. 아래와 같이.

129.XXX.YYY.102   foo.bar.com foo

이렇게 해주면 해당 IP에 대해서는 접속이 허용될 것이다.


신고
Posted by 이병준

소중한 의견, 감사합니다. ^^