시스템(Linux)

xinetd에 대해 알아보겠습니다.

forward error correction Circle 2024. 11. 19. 08:22
반응형

Ⅰ. xinetd란 ?

xinetd(Extended Internet Services Daemon)는 리눅스 및 유닉스 운영체제에서 사용되는 슈퍼 데몬(super daemon)으로, 네트워크 기반 서비스를 효율적으로 관리하기 위해 설계되었습니다. 기본적으로, xinetd는 요청이 들어오면 관련 서비스를 시작하고, 사용하지 않을 때는 프로세스를 종료하여 시스템 자원을 절약하는 역할을 합니다.

Ⅱ. xinetd 주요 기능과 특징

ⅰ. 슈퍼 데몬 역할
 여러 네트워크 서비스(예: FTP, telnet, POP3 등)의 실행과 관리를 담당하며, 서비스별 개별 데몬을 항상 실행할 필요 없이 요청이 있을 때만 실행합니다.
ⅱ. 자원 절약
필요한 서비스만 실행하며, 요청이 없는 경우 프로세스를 종료해 CPU와 메모리 사용량을 최소화합니다.
ⅲ. 접근 제어
IP 주소, 도메인, 네트워크 대역 등을 기반으로 접속을 허용하거나 차단할 수 있습니다. 방화벽과 비슷한 기능을 제공합니다.
ⅳ. 로그 기능
요청과 접속 정보를 로깅하여 보안 및 디버깅 목적으로 사용할 수 있습니다.
ⅴ. 보안 설정
사용자가 설정 파일을 통해 최대 접속 수 제한, 특정 시간대 접속 허용, 비허가 IP 차단 등의 세부적인 보안 정책을 설정할 수 있습니다.
ⅵ. TCP Wrappers 지원
TCP Wrappers를 통해 추가적인 보안 계층을 제공합니다.

 

Ⅲ. xinetd와 inetd의 비교

inetd는 초기 슈퍼 데몬으로, xinetd의 전신 역할을 했습니다. 그러나 다음과 같은 한계점 때문에 xinetd로 대체되었습니다.

기능 inetd xinetd
보안 제한적 세부적이고 강화된 보안 제공
로그 단순한 로깅 기능 다양한 로깅 옵션 제공
성능 기본적인 서비스 실행 효율적인 자원 관리
구성 단순 세부적인 설정 가능

Ⅳ. xinetd 주요 구성 요소

ⅰ. 설정 파일
  1) 메인 설정 파일 :  /etc/xinetd.conf

  2) 각 서비스별 설정 파일 : /etc/xinetd.d/


1) /etc/xinetd.conf 예시

defaults
{
    instances        = 60
    log_type         = SYSLOG authpriv
    log_on_success   = HOST PID
    log_on_failure   = HOST
}
includedir /etc/xinetd.d

 

2) /etc/xinetd.d/의 서비스별 설정 예시 (FTP)

service ftp
{
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = root
    server          = /usr/sbin/vsftpd
    disable         = no
}

 

3) 디렉티브 (Directives)

disable: 서비스 활성화 여부 설정
socket_type: 통신 방식 설정 (stream, dgram 등)
protocol: 사용 프로토콜 지정 (TCP, UDP 등)
wait: 서비스 요청 처리 방식 지정
server: 실행할 데몬의 경로 지정
user: 실행할 사용자 지정

Ⅴ. xinetd 설정 및 사용법

ⅰ. xinetd 설치

sudo apt-get install xinetd  # Debian/Ubuntu
sudo yum install xinetd      # RHEL/CentOS

 

ⅱ. 서비스 관리

systemctl start xinetd
systemctl enable xinetd
systemctl status xinetd


ⅲ. 설정 파일 수정 후 적용
설정 변경 후 반드시 xinetd를 재시작해야 합니다.

systemctl restart xinetd


ⅳ. 로그 확인
xinetd의 로그는 일반적으로 /var/log/syslog 또는 /var/log/messages에 기록됩니다.

tail -f /var/log/syslog


ⅴ. 활용 사례
1) 서비스 활성화 및 비활성화
    : 특정 네트워크 서비스의 사용을 제한하거나 활성화합니다.
2) 접근 제어
    :  특정 IP 또는 도메인에서만 서비스에 접근 가능하도록 설정합니다.

only_from = 192.168.0.0/24
no_access = 10.0.0.0/8

3) 부하 관리
동시 접속 수를 제한하여 서버 과부하를 방지합니다.

instances = 10
per_source = 2



반응형