Linux ETC

xinetd 소개 및 설정

2012.06.29 15:39

호스트웨이 조회 수:51903

 xinetd 소개 및 설정


1. xinetd의 역할
Xinetd의 역할은 inetd의 역할과 유사합니다.
네트워크서비스에 대한 접근제어, login에 대한 접근제어 등을 합니다.
2. xinet의 구성
1) 환경설정파일 : /etc/xinetd.conf
2) xinetd에서 제공하는 서비스를 모아두는 디렉토리 : /etc/xinetd.d
xinted에서 제공하는 서비스는 모두 이 디렉토리 안에 파일로 나열되어 있으며,
해당서비스의 설정은 해당파일에서 설정해야 합니다.

3. /etc/xinetd.conf
기본설정
===================================================================
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

Defaults
{
 Instances  = 60
 log_type   = SYSLOG authpriv
 log_on_success  = HOST PID
 log_on_faulure  = HOST RECORD
 cps   = 25 30
}
Includedir /etc/xinetd.d
===================================================================

옵션

1) Instances : 동시에 서비스 할 수 있는 섭의 최대 개수를 지정합니다.
만일 접속에 제한을 두지 않으려면 UNLIMITED로 지정하면 됩니다..

2) Log_type : 어떠한 형태로 로그 기록을 저장할 것인가를 지정하는
속성으로 SYSLOG와 FILE 두형태로 사용가능합니다.
-SYSLOG : 지정된 facility에서 syslog로 로그기록이 전달됩니다.
-FILE : 지정된 크기를 가진 파일명에 로그 기록이 저장됩니다.

3) Log_on_success : 서버가 시작될 때와 끝날 때 기록될 것을 지정합니다.
-PID : xinetd 프로세스 ID
-HOST : 원격 호스트의 IP
-USERID : 원격 사용자의 ID
-EXIT : 서비스가 빠져 나갈 때의 상태
-DURATION : 서버 세션 지속상태

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

5) cps : 초당 접속가능 수에 대한 제한 설정입니다.
cps = [초당 접속가능 수] [초당 접속가능 수 이상 발생시 제한시간]
ex) cps =  25 30 초당 접속수가 25개 이상될 경우 30초동안 접속을 중단합니다.

6) only_from : 특정서비스를 이용 가능한 원격호스트를 설정합니다.
이속성에 값이 주어지지 않으면 모든 접속이 허용되지 않습니다.
속성값은 IP 주소 및 IP Block 으로 지정합니다.

7) per_source : 똑 같은 IP주소로 로컬서비스에 접속할 수 있는 최대 접속 수를 지정해줍니다.
무제한 접근을 허용하려면 UNLIMITED로 설정합니다.

8) Enable : enable 속성은 실행 가능한 서비스의 목록을 표시할 수 있게 합니다.

9) no_access : 서버의 서비스를 이용하지 못하도록 서버에 접근하지 못하게
할 원격호스트의 주소를 지정해 줍니다.

10) disable : 서비스가 실행되지 못하도록 지정합니다. Enable 속성과 같이
존재할 경우 enable 속성이 무시되어 실행되지 않습니다.

11) includedir /etc/xinetd.d : 각각 해당 서비스에 대한 지정을 /etc/xinetd.conf에서
하지 않고 해당 서비스마다 하나의 파일로 지정할 때 습니다. 이 속성을 사용할 경우
xinetd.conf에서는 해당 service를 설정할 수 없습니다.

4. service section에서 사용되는 주요 속성과 속성값

1) service telnet : service 속성으로 설정하고자 하는 서비스의 이름을 지정해줍니다..
여기서 지정해 주는 서비스들은 /etc/services파일 리스트에 있어야합니다.

2) disable=yes : 해당 서비스가 실행되지 못하도록 설정합니다.
해당 서비스를 사용하지 않거나 httpd와 같이 standalone상태로 데몬이 작동하는 경우에 속성값을 yes로 지정하고,
telnet이나 POP3처럼 항상 서비스가 작동하도록 하기위해서는 속성값을 no로 지정해야 합니다.

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

플래그는 TCP서비스에 한해서 적용됩니다.
-DISABLE : 서비스가 실행되지 않게 합니다.
-KEEPALIVE : TCP서비스에 이 플래그가 설정되면 SO_KEEPALIVE소켓 플래그가 소켓에 설정됩니다.

4) protocol = tcp
서비스가 사용할 프로토콜을 설정합니다. 이프로토콜은 /etc/protocols내에 있어야 합니다.
이속성을 지정하지 않으면 서비스가 사용하는 기본 프로토콜로 지정됩니다.

5) socket_type = stream
-stream : stream기반의 서비스
-dgram : dgram기반의 서비스
-raw : IP에 직접 접근을 요하는 서비스
-seqpacket : 신뢰성있는 연속적인 데이터그램 전송을 요구하는 서비스

6)wait = no : 서비스가 단일 스레드 인지 다중스레드 인지를 결정하는 플래그로 yes인 경우는
단일 스레드로 실행되어 오직 하나의 서비스만 작동하게 하며, no인 경우는 다중 스레드로
서버가 새로운 서비스 요청을 받아 들이게 됩니다.

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서비스를 다른 호스트에게 이양하고자 할 때 사용합니다.
즉 192.168.1.1의 FTP 서비스를 192.168.1.10호스트에게 FTP서비스를 할 수 있도록 해주는 설정입니다.
설정방법은 “IP_Address port”입니다.

11) port = 8080 : 서비스 포트를 명시해줍니다. 이포트는 /etc/services파일 목록내의 서비스포트와 일치해야 합니다.

12) nice = 10 : 서버의 예약우선권을 나타내는 속성으로 -20~19까지의 범위를 갖는다.
-20은 가장 빠른 우선권을 나타내며, 19는 가장 느린 우선권을 갖게 됩니다.