[보안] identd 에 대하여..

우리가 서비스 제공시 삭제하는 identd 에 대해 알아보도록 하자..

identd 는 inetd 에서 작동하는 데몬으로 113번 포트에서 리슨한다. 서버

에서 작동하는 다른 서비스들도 클라이언트 머신들에게 요청한 유저에 대

한 신원 확인을 위해 identd 를 사용할 수 있다. telnet 이나 sendmail 등

의 서비스를 하는 서버에 요청이 들어왔을때 인증클라이언트는 high 포트

에서 클라이언트의 identd 포트에 “이 서비스를 요청한 프로세스의 소유자가

누구인가”라고 물어보게 된다.

만약 클라이언트의 인증데몬이 username@nodename 으로 응답했다면 이 응

답은 서버의 syslog 등에 전달되고 연결요청은 telnetd 에게 전달된다. 만

약 응답이 null 또는 클라이언트에서 인증 데몬이 없을 경우 서버의 auth

데몬은 timeout 이 될 때까지 기다린후 연결을 받아들인다.

이때의 delay 는 레드햇 7.0의 경우 대략 2분정도 소요된다.

이때 중요한 것은 응답을 받을때 유효성을 체크하지 않고 또 응답은 전적

으로 클라이언트의 머신에게 달려 있으므로 username@nodename 는 충분히

위조될 수 있다.

(물론 root 만이 이를 위조할수 있는 권한이 있다.)

또한 FreeBSD 나 Windows 와 같은 많은 시스템에서는 root가 아닌 일반 유

저도 그들이 원하는 어떠한 identd 도 명시할 수 있다.

이 프로토콜은 멀티유저환경에서 문제가 있는 유저를 찾아내는데, 유용하

게 사용될 수 있다.

만약 여러분 시스템에 있는 한 유저가 다른 시스템에 문제를 일으켰을때

상대방 시스템 관리자는 여러분에게 문제를 유발한 유저를 찾아 알려줄

수 있다. 그렇다면 identd 를 작동하여야 하나? 이는 전적으로 자신의 판

단에 달려 있다.

많은 유저가 있는 시스템에서는 매우 유용하지만 소수의 유저일경우에는

별로 도움을 주지는 않는다. 때로 어떤 IRC 나 FTP 서버는 identd 가 작동

하지 않는 접속을 허용하지 않을 수도 있다.

그러나 identd 를 운영할 경우 시스템의 각종 정보를 제공하게 되는데, 예

를 들면 “root 로 작동하고 있는 프로세스는 무엇이 있는가? “, “어떤 OS

가 작동하고 있는가?”, “어떤 username 이 있는가?”등이다.

만약 identd 에 -n 옵션을 줄 경우에는 username 대신 username id 를 보

내게 된다.

기타 더 많은 설정은 /etc/identd.conf 에서 설정가능하다.

identd 는 이 프로세스를 죽이거나 tcp wrapper 를 사용하여 차단하거나

또는 방화벽을 아용해 차단가능하다. 만약 방화벽을 이용시 deny 를 사용

하지 말고 reject로 차단하는 것이 좋다. 만약 deny 를 이용시 서버에 접

속시 매우 많은 시간을 소요하게 된다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.