리눅스 - xinetd

System/Linux 2011. 1. 25. 22:53
참조 - http://light99.egloos.com/5142379

1. Xinetd의 특징
  인터넷 슈퍼데몬을 의미하는 것으로서 sendmail, httpd, 등과 같이 리눅스 시스템에서 실행되는 하나의 독립적인 서비스이다.
즉, xinetd는 그 자체적으로는 하나의 독립 데몬이지만, 여러가지 다른 서비스들을 제어하고 관리한다.

  리눅스에서 xinetd가 존재하는 이유는 시스템의 부하를 줄이기 위해서이다. 예를 들자면 httpd같은 웹 데몬은 웹 클라이언트가 자주 들어올 가능성이 많아 언제든 웹 클라이언트가 들어올 가능성이 많기 때문에 항상 구동되어야 하지만, telnet이나 tftp같은 경우는 아주 가끔 사용하는 데몬이기 때문에 이같은 서비스요청이 있다면 슈퍼데몬이 해당 데몬을 불러오는 역활을 한다. 그리하여 존재하는 모든 데몬이 돌아가는 것보다 슈퍼데몬이 존재하므로서 시스템의 부하를 줄일 수 있다.

2. Xinetd 서비스 관련 파일들
  /usr/sbin/xinetd : xinetd 데몬 파일
  /etc/rc.d/init.d/xinetd : xinetd 시작/종료 스크립트 파일
  /etc/xinetd.conf : xinetd 서비스에 공통적으로 적용되는 설정 파일
  /etc/xinetd.d/파일들 : xinetd 기반 서비스들의 개별 설정 파일들
  /usr/sbin/tcpd : tcp_wrapper 데몬파일 (클라이언트가 xinetd데몬기반 서비스들에게 접근할 때 허가, 거부 담당)
  /etc/host.allow : tcp_wrapper 데몬의 설정 파일 (서비스별 허가 리스트 작성)
  /etc/host.deny : tcp_wrapper 데몬의 설정 파일 (서비스별 거부 리스트 작성)
  /var/log/secure : tcp_wrapper 로그파일 (접근기록 파일)

3. xinetd의 시작과 종료


4. /etc/xinetd.d/파일들 (서비스 개별 설정 파일, telnet 을 예로 들겠음)


5. xinetd 서비스의 접근당담 tcp_wrapper
  tcpd는  /etc/hosts.allow(허가설정파일)와 /etc/hosts.deny(거부설정파일)을 참조하여  특정 아이피나 도메인으로부터 telnet, ftp, pop등을
허가하거나 차단 하고, 접근기록이나 접속시도 기록을 로그로 기록한다. 
 주의해야 할 점은 접근을 허가하거나 차단할 때, xinetd의 하위 데몬뿐만 아니라, 독립실행형 데몬들도 접근제어를 할 수 있다는 점이다. 

 1) 설정 특징
   - 콜론(:)의 왼쪽은 제어할 서비스 명을 기록하고, 오른쪽은 접근제어 대상(호스트, IP, 네트워크주소)등을 기록한다.
   - hosts.allow 내의 설정과 host.deny 내의 설정이 중복 되었을 경우에는 hosts.allow의 설정 내용이 우선 적용 된다.
   - 각 대상 리스트의 나열은 스페이스나 콤마로 구분한다.

  2) 설정의 예
   - /ect/hosts.deny 
 

 - /ect/hosts.allow


6. Telnet 서버 설치 실습
 리눅스를 통해 다른 컴퓨터로 텔넷을 하려면 telnet 패키지가 설치 되어야 하며, 다른 호스트에서 내 리눅스로 텔넷으로 접속하려면
Telnet-server 패키지가 설치 되어야 한다. 주의할 점은 telnet데몬은 xinetd데몬의 제어를 받으므로 xinetd 패키지를 먼저 설치해야 한다.

 - telnet-server 패키지 설치 하기

 Telnet-server 패키지를 구하기 위하여 ftp서버에 접속하여 다운을 받았다.

 - telnet 설정파일 편집하기

 
 - xinetd 데몬의 재시작


- xinetd데몬과 telnet 부팅시 데몬의 활성화 설정




- telnet 방화벽 해제


- 텔넷 접속
-



===================================================================================

xinetd 데몬은 inetd데몬의 단점을 개선한 확장된 데몬이다. 현재 대부분 xinetd데몬을 사용한다.

 

  'xinetd 데몬'은 일명 '수퍼 데몬'이라고도 부른다. 수퍼(super)의 의미는 다른 데몬들의 상위에 존재한다는 뜻으로

xinetd 데몬은 다른 하위의 데몬을 지배(?)하는 상위 데몬이다.

 

주의 할 점이 있는데 'xinetd 데몬'과 'xinetd 타입의 데몬'은 다르다. 'xinetd 데몬' 자체는 'standalone 타입의 데몬'으로 항상 프로세스가 구동되어 있다.

 

xinetd 데몬 자체는 항상 가동되고 있지만, xinetd 데몬이 하는 역할은 자신이 직접 서비스를 하지 않고, 외부에서 특정 서비스를 요청할 경우에 자신에게 종속된 하위 데몬(이를 'xinetd 타입의 데몬'이라 부름)을 구동시킨 후에 그 데몬이 서비스를 하도록 연결시켜 주는 것이다.

그리고 서비스 요청이 종료되면 구동되었던 하위 데몬도 자동으로 종료된다.

 

그래서 xinetd 데몬과 관련된 서비스를 요청 시에는 처음 연결되는 시간이 standalone 타입의 데몬에 비해서 약간 더

걸릴 수 있다. 왜냐하면 xinetd 데몬이 서비스를 수행할 하위 데몬을 새로이 구동하기 위한 시간이 소요되기 때문이다.

대표적인 예로 텔넷서버를 들 수 있다.

 

'xinetd 타입의 데몬'으로 사용하기 적당한 데몬은 가끔 사용되는 데몬이다.

가끔 사용되는 데몬을 항상 메모리에 구동시켜 놓는다면 자원의 낭비를 초래하기 때문이다. 하지만 자주 사용되는 데몬을 xinetd 타입의 데몬으로 설정해 놓는다면, 데몬을 구동하고 종료하는 것을 계속 반복해야하므로 오히려 시스템에 부담을 줘 서비스 속도가 현저히 느려질 수 있다.

 

그래서 FTP 서버의 경우에는 서버가 FTP 서버를 주용도로 사용할 때는 standalone 타입의 데몬으로

그렇지 않고 FTP서비스를 가끔 사용할 경우에는 xinetd 타입의 데몬으로 설정을 변경할 수 있다.

 

xinetd 타입의 데몬은 평상시에는 구동되지 않다가, 서비스를 요청할 때만 xinetd 데몬이 알아서 구동시켜 주는 방식이므로 별도로 서비스를 가동시켜 줄 수는 없다. 즉 "service 서비스명 start" 방식의 명령어를 사용할 수 없다.

 

'xinetd 데몬'의 설정파일은 /etc/xinetd.conf이며, 'xinetd 타입의 데몬'들은 /etc/xinetd.d/ 디렉토리에 들어있다.

이 내부의 설정파일을 수정하면, 반드시 "service xinetd restart" 명령으로 수퍼 데몬(xinetd 데몬)을 재시작해야 한다.

즉, 'xinetd 타입의 데몬'은 재시작할 서비스가 없으므로, 그 상위 데몬인 'xinetd 데몬을' 재시작하는 것이다.

 

xinetd 데몬이 서비스하는 포트는 /etc/services 파일에 설정이 저장되어 있다.

'System > Linux' 카테고리의 다른 글

TCP wrappers  (0) 2011.01.25
리눅스 - xinetd과 서비스  (0) 2011.01.25
리눅스 - telnet-server 설치  (0) 2011.01.25
zmodem  (0) 2011.01.25
TCPDUMP User Guide  (0) 2011.01.25
Posted by linuxism
,