Skip to content

슈퍼데몬 : xinetd

조회 수 17606 추천 수 0 2009.05.11 11:28:46

수퍼데몬 Xinetd(eXtended inetd)
1) Xinetd 수퍼데몬이란?
- 리눅스 부팅시 적재되는 서비스 데몬들을 관장 하는 데몬


 

 

2) Xinets 데몬의 특징
- TCP, U에, RPC 서비스 접근 제어 조절 기능(Axxess Control)
- 서비스 거부(Denial of Service)공격 방지
- 철저한 로깅(Loffing) 기능
- 원격 호스트로 서비스 리다이렉션
- IPv6 지원


 

 

3) Xinetd 소스 구하기
http://www.xinetd.org
주의:버그있을 경우 치명적이므로 항상 최신 버전을 업그레이드한다.


4) Xinetd 설치
# yum install xinetd


5) /etc/xinetd.conf 설정 파일 형식
- Default section과Service section으로 이루어 짐


 

default
{
          <속성 attribute> <연산자 assign_op> <값 value> <값 value> ...
}


Service 서비스명(service_name)
{
         <속성 attribute> <연산자 assign_op> <값 value> <값 value> ...
}

 
 
 

>> 모둔 연산자를 지원하는 속성들
only_from, no_access, log_no_success, log_no_failure, passenv


>> env 속성은 ‘-=’ 연산자를 지원하지 않는다.


 

-> 속성과 그 속성 값
# man xinetd.conf 를 통해 참고


 

 

 

 

 

 

* default 섹션 에 사용되는 주요 속성
# vim /etc/xinetd.conf


 
 default
{
          instances                   =60
          log_type                     = SYSLOG authpriv
          log_on_success          = HSOT PID
          log_on_failure              = HOST RECORD
}

includedir /etc/xinetd.d

 
 


속성1. instances = 60
              동시 서비스 실행 서버의 최대 개수 지정. UNLINTED로 지정하면 접속 제한을 두지 않음.


속성2. log_type = SYSLOG authpriv
             어떠한 포맷으로 로그 기록을 저장 할것인가를 지정.
             SYSLOG 또는 FILE 포맷 사용.
    설정방법: SYSLOG syslog_facility [syslog_level]
                   지정된 크기를 가진 파일명에 로그기록 저장.
    설정방법: SYSLOG FILE soft_limit [hard_limit]
                    -
속성3. log_on_success =HOST PID
          서버가 시작될 때와 끝날 때 기록도리 것들을 지정
          PID             xinetd 프로세스 ID
          HOST         원격 호스트의 IP
          USERID       원격 사용자의 ID
          EXIT           서비스가 빠져 나갈 때의 상태
          DURATION   서버 세션(session) 지속 상태


속성4. log_on_failure = HOST RECORD
          서버가 리소스 부족으로 시작될 수 없거나 설정 파일 내의 규칙에 의한 접근이 거부되었을때 기록될 값들 지정
          HOST           원격 호스트의 아이피 주소
          USERID         원격 사용자의 ID
          ATTEMPT     실패한 시도가 있을 경우
          RECORD        클라이언트에 대한 가능한 정보


속성5. only+from =
           이용 가능한 원격 호스트를 설정. IP주소로 지정해 준다.


속성6. per_source =5
          똑같은 원격 IP주소가 로컬 서비스에 접속할 수 있는 최대 접속 수를 지정해 주는 속성.
          DoS 공격을 막을 수 있다. UNLIMITED 설정은 무한 접근 허용


속성7. enable = pop3s imaps
          실행 가능한 서비스의 목록 표시. disable 속성과 DISABLE플래그가 존재할 경우엔 무시됨.


속성8. no_access= 0.0.0.0/0
          서버에 접근을 불허할 호스트의 주소 지정


속성9. disable = shell login exec finger
          disable 속성은 나열된 서비스 값들이 실행되지 못하도록 한다.


속성10. includedir = /etc/xinetd.d
          service 섹션을 서비스 마다 하나의 파일로 지정하고 할 때 include 속성으로 서비스 파일이 위치할 디렉토리를 지정해 준다.


 

 

 

 

* Services section에 사용되는 주요 속성과 그 속성 값
# vin /etc/xinetd.d/telnet


 

 service telnet
{
        disable           = yes
        flags              = REUSE
        socket_rype    = stream
        wait                = no
        user               = root
        server             = /usr/sbin/in.telnetd
        log_no_failure   += USERID
}

 
 


       
속성1. service telnet
        service 속성으로 설정하고자 하는 서비스의 이름 지정


속성2. disable = yes
        disable 속성은 해당 서비스가 실행되지 못하도록 설정하는 데 사용


속성3. flags =REUSE

     >> flags 속성의 종류


        REUSE                     서비스 소켓에 SO_REUSEADDR 플래그를 설정하도록 한다.
        INTERCEPT              패킷이나 허용된 접속을 가로채어 허가된 위치에서 접속하는지 인증하고자 할때 사용.
        NORETRY                 프로세스가 새롭게 생기지 못할 경우 재시도하지 못하도록 한다.
        IDONLY                    원격 호스트가 원격 사용자를 인증할 때만 접속 허용. 접속기반 서비스에만 적용
                                       USERID log옵션을 사용하지 않을 경우 효과를 내지 못함.
        NAMEINARGS           서버가 작동될 때 서버 내에 지정한 것과 같이 server_args내의 첫 번째 인수가
                                       argv[0]이 되도록 하는 플래그입니다. 이 플래그는 서버내에 tcpd를 넣어 tcpd를 사용할
                                       수 있게 하고 inetd처럼 server_args내에 서버 이름을 넣을 수 있게 해 준다.
        NODELAY                 TCP 서비스에 이 플래그를 설정하면 TCP_NODELAY 플래그가 소켓에 설정된다. 이 플
                                       래그는 TCP서비스에 한해서 작용한다.
        DISABLE                  서비스가 실행되지 않게 한다.
        KEEPALIVE              TCP 서비스에 이 플래그가 설정되면 SO_KEEPALIVE 소켓에 설정 된다. 이 플래그도
                                       TCP 서비스에 한해서 작용한다.


속성4. protocol = tcp
서비스가 사용할 프로토콜을 설정. 프로토콜은 /etc/protocols 내에 있어야 함.


속성5. socket_type = stream등
stream, dgram, raw, seqpacket 4가지 값을 지정할 수 있다.
        dtream            stream 기반의 서비스
        dgram             datagram 기반의 서비스
        raw                 아이피에 직접 접근을 요하는 서비스
        seqpacket       신뢰성있는 연속적인 데이터그램 전송을 요구하는 서비스

속성6. wait = no
wait 속성은 서비스가 단일 스레드(single thread)인지 다중 스레드( multi-thread)인지를 결정하는

플래그로 yes인경우는 단일 스레드로 실행.


속성7. user = root
서버 프로세스를 실행할 수 있는 사용자의 ID를 나타내는 것으로 수퍼유저일 경우에만 효과 적.


속성8. server = /usr/sbin/in.telnetd
해당 서비스를 실행할 데몬 프로그램을 지정


속성9. access time = 01:00-07:00
지정된 시간에서만 서비스를 이용할 수 있게 해 줌.


속성10. redirect = 192.168.1.10 23
TCP 서비스를 다른 호스트에게 이양하고자 할 때 사용.


속성11. port = 8080
서비스 포트를 명시해 준다. /etc/services파일 목록 내의 서비스 포트와 일치해야 함.


 

 

 

 

 

6) xinetd 설정 예
시간제 ftp 사이트를 운영하고자 한다.
운영시간 : 오전 1시부터 오전 5시까지, 오후 5시부터 오후 11시 59분까지
서버인원 : 3명으로 제한.
허락주소 : 192.168.10.1 주소에서 192.168.10.126주소로만 접속 허용.


 

 defaults
{
        instances                 = 60
        log_type                   = SYSLOG authpriv
        log_on_success        = HOST PID
        log_on_failure            = HOST RECORD
}

 
 
service ftp
{
        disable                     = no
        flags                         = REUSE
        protocol                     = tcp
        socket_rype               = stream
        instances                  = 3
        wait                          = no
        user                          = root
        server                        = /usr/sbin/in.proftpd
        log_no_success          = HOST PID
        log_no_failure             = HOST RECORD
        no_access                 = 0.0.0./0
        only_from                   = 192.168.10.0/25
        access_time              = 1:00-5:00 17:00-23:59
}


 
 


 

 

 

 

 

 


7) xinetd 실행하기
# /etc/init.d/xinetd start
   ---> 시작

# /etc/init.d/xinetd restart

   ---> 재시작


xinetd의 config.h 헤더 파일에서 정의된 시그널을 사용하여 xinetd 데몬을 종료하거나 설정 파일을 갱신할 수 있다.
kill -SIGUSR1 xinetd's PID           # 변경된 설정으로 다시 데몬을 띄우고자 할 때
kill -SIGQUIT xinetd's PID           # xinerd 데몬을 종료하고자 할 때
kill -SIGTERM xinetd's PID         # xinetd을 종료하기 전에 동작중인 서버를 중지
kill -SIGHUP xinetd's PID            # 내부 상태를 /var/run/xinerd.dump로 덤핑함

 

 

 


8) xinerd 설정 파일 보안 유지하기
# chmod 600 /etc/xinerd.conf
# chmod 600 /etc/xinetd.d/*


# chattr +i /etc/xinerd/conf
# chattr +i /etc/xinetd.d/*
# rm -f /etc/xinetd.conf
                 : 삭제 명령이 허용되지 않음


>> chattr 명령어
리눅스 ext2 또는 ext3파일 시스템상에서 파일 속성을 바꾸는 명령어.
i옵션은 변경할 수 없도록 하는 옵션.

profile

일요일은 짜빠게뤼~ 먹는날~^^

엮인글 :
http://adminplay.com/1642/d53/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수
67 리눅스 시스템 관리자를 위한 즐겨찾기 ADMINPLAY 2009-05-22 25018
66 리눅스 언어 인코딩 설정 ADMINPLAY 2009-05-22 21952
65 Disk Quota : 용량 제한 하기 ADMINPLAY 2009-05-22 16720
64 알아두면 편리한 단축키(콘솔) ADMINPLAY 2009-05-22 16566
63 리눅스 디렉토리 구조와 파티션 관리의 기본 ADMINPLAY 2009-05-22 60763
62 vi편집기 행번호 표시, 들여쓰기 ADMINPLAY 2009-05-22 18255
61 리눅스 시스템 log 파일 정리 ADMINPLAY 2009-05-22 20389
60 vim 편집기 색상변경 ADMINPLAY 2009-05-17 22229
59 rsync 옵션 ADMINPLAY 2009-05-17 21027
58 [rsync]서버 백업및 동기화 ADMINPLAY 2009-05-17 17571
57 rsync 미러링 백업 ADMINPLAY 2009-05-17 14875
56 SSH 서버 설정 파일(sshd_config) ADMINPLAY 2009-05-17 18031
55 rsync 에러 ADMINPLAY 2009-05-17 22377
54 rsync : protocol version mismatch -- is your shell clean? ADMINPLAY 2009-05-17 26234
53 리눅스 기본 명령어 # 2 ADMINPLAY 2009-05-11 15663
52 리눅스 기본 명령어 # 1 ADMINPLAY 2009-05-11 16854
51 vi(Visual) Editor 사용법 ADMINPLAY 2009-05-11 16164
50 리눅스 네트워크 설정 ADMINPLAY 2009-05-11 21874
49 데몬(Daemon)이란? ADMINPLAY 2009-05-11 16389
» 슈퍼데몬 : xinetd ADMINPLAY 2009-05-11 17606

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234