데몬(Daemon)

  • 시스템에 관련된 작업을 수행하는 Background Process를 통칭하는 용어
  • 부팅 단계부터 지정된 데몬이 동작하며 서비스의 요청이 없을 때는 유휴 상태를 유지 한다.
    • 기본적인 시스템 자원을 소모하게 된다.

Standalone 방식

  • 각 서비스 Daemon이 항상 Standby 하고 있다가 서비스 요청이 오면 바로 작동 된다.
  • 자주 사용되는 Service에 사용

Super Daemon 방식

  • Super Daemon이 다른 Daemon들을 관리하는 형태
  • Super Daemon 만 Standby 하고 있다가 서비스 요청이 들어오면 해당 서비스 Daemon을 작동 시킨다.
  • 자주 사용하지 않는 Service에 사용

inetd (internet service daemon) 서비스

  • UNIX 부터 제공된 슈퍼 데몬
  • 네트워크 접속 제어 역할을 수행한다.
    • 특정 서비스 데몬 대신 클라이언트의 연결을 받아들이는 역할을 수행 한다.
    • 연결이 허용되면 서비스 데몬을 실행시켜 서비스를 수행하게 한다.
    • Telnet, FTP, Shell…
  • 서비스 데몬이 계속 동작할 필요가 없으므로 불필요한 리소스 낭비를 줄이게 된다.
  • 보안 향상을 위해 TCP Wrapper와 연동하여 접근통제를 수행 한다.
    • 리눅스 커널 2.4.x부터 inetd의 확장 형태인 xinetd를 사용한다.
    • xinetd는 자체적인 보안기능을 가지고 있다.

xinetd(extended Internet Services Daemon) 서비스

  • inetd + tcpd에 추가된 보안기능을 수행하는 네트워크 슈퍼 데몬
  • 리눅스 커널 2.4.x부터 사용된다.

xinetd 확장 기능

  • 각 서비스 별 환경설정 파일을 별도로 제공 한다. -> /etc/xinetd/서비스 명
  • 서비스에 대한 접근통제 -> TCP Wrapper 기능이 내장되어 있다.
  • Timeout, 접속 시간 기록
  • 접속 시도 횟수 제한
    • Dos 공격 방어
  • 로그 크기 제한 및 다양한 로그(syslog)제어 기능

xinetd 동작 순서

1단계 클라이언트가 서비스 데몬으로 접속을 시도 한다.
2단계 xinetd이 요청을 받는다.
3단계 TCP Wrapper를 통해 접근 통제를 수행 한다.
4단계 결과에 따라 /var/log/secure파일에 로그를 남긴다.
5단계 접근통제를 통과하면 서비스 데몬의 설정파일을 실행 한다.(Server항목 데몬을 실행 한다.)
6단계 클라이언트의 요청을 실제 서비스 데몬에게 연결 한다.
7단계 클라이언트의 접속이 종료되면 실제 서비스 데몬은 종료한다.