# 리눅스 시스템의 서비스관리 방식

 - 리눅스 서버에서 서비스를 관리하는 방식에는 여러가지가 있으며 대부분 서비스들은 init
   이라는 프로세스에 의해 생성 및 제거 된다

 - 특정 스크립트에 의해 시작/종료/재시작되는 것이 있으며 또한 리눅스명령어에 의해
   직접 시작/종료되는 것들도 있다

 - init 프로세스에 의한 관리

  -> 시스템 부팅에서부터 종료할 때까지의 모든 서비스들에 관여하고 있다

  -> 모든 독립데몬 서비스들이 init 프로세스로부터 실행됨

  -> init 프로세스 설정 파일 : /etc/inittab

 - 리눅스 명령어(command)에 의한 관리방식

  -> 가장 직접적인 방식으로서 사용자의 명령어 사용에 의해 실행된다

  -> 시스템에 존재하는 명령어 또는 사용자가 만든 쉘스크립트(또는 실행파일)

 - SYSTEM V 스크립트 방식

  -> /etc/rc.d/init.d 디렉토리에 존재하는 각 서비스 제어파일에 의한 관리방식

 - xinetd에 의한 관리방식

  -> /etc/xinetd.d 디렉토리내의 각 서비스파일들에 의한 관리방식

 - chkconfig에 의한 관리방식

  -> 부팅시에 자동실행할 서비스들을 설정한다

  -> 설정결과는 /etc/rc.d/rcN.d 디렉토리내의 링크파일의 생성과 파일명으로 존재

  -> xinetd 서비스는 /etc/xinetd.d 디렉토리내에 있는 파일내의 설정으로 존재

  -> ntsysv와 상호 보완적인 관리방식이다

  -> ntsysv 방식과 결과는 같지만 command 형식을 이용한 설정방식이다

 - ntsysv에 의한 관리방식

  -> 부팅시에 자동실행할 서비스들을 설정한다

  -> 설정결과는 /etc/rc.d/rcN.d 디렉토리내의 링크파일의 생성과 파일명으로 존재

  -> chkconfig와 상호 보완적인 관리방식이다

  -> chkconfig 방식과 결과는 같지만 툴을 이용한 설정방식이다


 - 서비스명 규칙

  -> /etc/hosts.allow 파일과 /etc/hosts.deny 파일내에서 사용하는 서비스이름은
     실제 데몬파일명을 지정해야 하며 "sshd : ALL" 에서 sshd 라는 이름은
     /usr/sbin/sshd 라는 파일명에서 가져온 것이다

  -> chkconfig 와 ntsysv 는 설정하면 자동으로 이름이 명명되어 나타나며 그 이름을
     그대로 사용하면 된다

  -> /etc/xinetd.d 디렉토리의 파일 내에서 사용하는 services 항목이름은 chkconfig
     설정시 사용되는 이름 또는 서비스 데몬명을 그대로 사용한다


# 슈퍼데몬방식과 독립데몬방식의 서비스 차이점

 - 독립방식서비스는 자체적으로 항상 메모리에 상주하여 서비스 요청시 실시간으로 응답한다

 - xinetd라는 슈퍼데몬에 의해 실행되고 제어된다

 - xinetd 서비스와 standalone 서비스의 비교

  XINETD 환경 서비스

   -> 의미 : xinetd에 의해 제어되는 서비스들의 데몬
   -> 실행방법 : 필요할 때에 xinetd에 수행됨
   -> 데몬상주여부 : xinetd에 의해 불리워진 후에 서비스완료후에 자동 종료
   -> 실행속도 : 독립방식에 비해 느림
   -> 자원사용 : 시스템자원사용이 효율적(자원사용 적음) 
   -> 기타 : /etc/xinetd/서비스명으로 xinetd 제어파일이 존재
   -> 접근제어 : tcp_wrapper에 의해 접근제어
        /etc/hosts.allow, /etc/hosts.deny 파일로 접근제어 설정을 할수 있다


  독립 서비스

   -> 의미 : 독립적으로 실행되는 서비들의 데몬
   -> 실행방법 : 독립적인 서비스를 위하여 항상 독립적으로 수행된다
   -> 데몬상주여부 : 독립적인 서비스를 위하여 메모리에 독립데몬으로 상주한다
   -> 실행속도 : xinetd 방식에 비해 빠름
   -> 자원사용 : xinetd방식에 비해 자원사용이 비효율적이다(자원사용 많음) 
   -> 기타 : /etc/xinetd/서비스명으로 xinetd 제어파일이 존재
   -> 접근제어 : tcp_wrapper와는 무관하지만 자체
        설정파일에 의해 접근제어 할 수 있다  
 
  공통 사항

   -> 로깅 : /etc/syslog.conf 파일의 설정에 따름, 대부분 /var/log파일에 로깅
   -> 참고
    1) 독립적으로 실행되는 데몬들도 xinetd 환경으로 변경할 수 있으며
        반대로 xinetd 환경에서 서비스되는 데몬들도 독립적인 실행모드로
        변경할 수 있다                                               
    2) sshd 서비스의 경우 standalone이지만 /etc/hosts.aloow,        
        /etc/hosts.deny의 접근제어를 받는다 따라서 독립데몬이라도    
         tcp_wrapper의 영향을 받을 수 있다                           
 

  -> standalone 모드로 실행이 되는 데몬은 독립적으로 실행되며 항상 메모리에
     상주하여 서비스요청이 있을 때 언제든 바로 응답하며 응답속도를 요하는 경우에
     이 모드를 이용한다 단점으로는 메모리에 항상 상주해있으므로 메모리점유로
     인하여 서버부하를 준다

  -> xinetd 모드로 실행이 되는 데몬은 xinetd라는 특별한 데몬(인터넷슈퍼데몬)에
     의해 관리되며, 필요한 경우에만 메모리로 적재되어 실행이 되어 응답을 한다
     빠른 응답속도를 요하지 않는 경우에 이 모드를 이용한다 단점으로는 응답속도가
     standalone 보다는 상대적으로 느리다는 것이고 장점으로는 메모리에 항상 상주해
     있는 것이 아니므로 standalone 모드보다는 서버부하를 상대적으로 줄일수 있다


# 인터넷 슈퍼데몬의 특징

 - xinetd는 인터넷슈퍼데몬(Internet Super Daemon)을 의미한다

 - xinetd는 그 자체적으로는 하나의 독립데몬이지만 xinetd가 하는 역할이 여러가지 다른
   서비스들을 관리하는 역할이기 때문이다
 
 - xinetd는 서비스되는 여러가지 데몬들을 제어하면서 각각의 서비스들의 연결을 담당한다

 - xinetd의 특징

  -> 각 서비스별로 별도의 파일에 설정이 가능하다(/etc/xinetd.d/* 파일들)

  -> xinetd에서 가지고 있던 접근제어 기능을 가지고 있다

  -> tcp_wrapper를 내장하고 있기 때문에 접근제어를 할 수 있다

  -> timeout 설정으로 서비스 접근제어를 할 수 있다

  -> 접속시도 횟수로 접근제어를 할 수 있으므로 무차별 서비스거부공격(DoS)을
     방지할 수 있다

  -> 동일한 IP를 가진 호스트에서 동시 접속수를 제어하여 접근제어를 할 수 있다

  -> 로그파일의 크기를 제한 할 수 있다

  -> xinetd에서 제어되는 각 서비스들에 대한 syslog 로깅 레벨 설정이 가능하다

  -> 서비스를 거부하거나 서비스 접근제어가 되었을 경우에 상세로그를 기록한다

 - xinetd는 외부에서 서비스요청이 있을 때 /etc/xinetd.d/ 디렉토리내의 각 서비스파일들에
   정의되어 있는 내부 프로그램(데몬)을 실행시켜주는 역할을 한다


# 슈퍼데몬 xinetd방식의 서비스 흐름

 - 외부에서 telnet 연결요청(서비스의 요청)이 들어온다

 - xinetd 데몬은 외부에서 요청된 서비스를 tcp_wrapper에게 넘겨준다

 - tcp_wrapper는 /etc/hosts.allow와 /etc/hosts.deny 파일의 설정을 확인하여 해당 요청자의
   접근을 허용할지 허용하지 않을지 결정한다

 - 허가된 요청일 경우에는 /etc/syslog.conf에 설정되어 있는 /var/log/secure 파일에
   해당 접속에 대한 정보를 기록하고 /etc/xinetd.d/telnet 파일을 불러들여서 서비스를
   연결한다 이때 /etc/xinetd.d/telnet 파일내의 server 지시자행에 설정되어 있는 telnet
   데몬의 위치를 찾아서 요청을 처리하게된다

 - 허가되지 않은 요청일 경우에는 /etc/syslog.conf 파일에 설정되어 있는 /var/log/secure
   파일에 허가되지 않은 접속이 있었다는 로그를 남기고 접속요청을 거부하게 된다


# xinetd 서비스 관련 파일

 - xinetd 서비스 관련 파일들


  -> /etc/xinetd.conf : xinetd 서비스에 공통적으로 적용되는 주된 설정 파일
  -> /etc/xinetd.d/파일들 :  xinetd 기반 서비스들의 개별 설정 파일들          
  -> /usr/sbin/xinetd : xinetd 데몬파일                                  
  -> /usr/sbin/tcpd : tcp_wrapper 데몬 파일                            
  -> /etc/rc.d/init.d/xinetd : xinetd 시작/종료 스크립트 파일                   
  -> /etc/hosts.allow : 서비스별 허용할 호스트 또는 IP 리스트(tcp_wrapper)
  -> /etc/hosts.deny : 서비스별 거부할 호스트 또는 IP 리스트(tcp_wrapper)
  -> /etc/syslog.conf : 시스템로그 설정 파일                             
  -> /var/log/secure : tcp_wrapper 로그파일 (접근기록 파일)             
  -> /etc/services : 서비스포트 설정 파일                             
  -> /etc/protocols : 프로토콜 설정 파일                               

 - /etc/xinetd.conf 파일은 xinetd의 최상위 설정파일로서 "Tcp_Level Configuration File"
   라고 한다

 - /etc/xinetd.d 디렉토리내의 각 서비스 설정파일들에 대하여 글로벌하게 영향을 주게된다
   개별 설정파일에 개별적으로 존재하지않는 설정항목들에 대해서는 기본적으로 적용될
   항목들이 설정되어 있는 파일이다


# xinetd 주설정 파일과 /etc/xinetd.d 내의 개별 서비스 설정파일

 - xinetd의 메인 설정파일로서 xinetd 데몬이 실행될 때에 설정 내용을 불러와서 적용한다

  # cat /etc/xinetd.conf

  #
  # This is the master xinetd configuration file. Settings in the
  # default section will be inherited by all service configurations
  # unless explicitly overridden in the service configuration. See
  # xinetd.conf in the man pages for a more detailed explanation of
  # these attributes.

  defaults
  {
  # The next two items are intended to be a quick access place to
  # temporarily enable or disable services.
  #
  # enabled  =
  # disabled =

  # Define general logging characteristics.
   log_type = SYSLOG daemon info
   log_on_failure = HOST
   log_on_success = PID HOST DURATION EXIT

  # Define access restriction defaults
  #
  # no_access =
  # only_from =
  # max_load = 0
   cps  = 50 10
   instances = 50
   per_source = 10

  # Address and networking defaults
  #
  # bind  =
  # mdns  = yes
   v6only  = no

  # setup environmental attributes
  #
  # passenv  =
   groups  = yes
   umask  = 002

  # Generally, banners are not used. This sets up their global defaults
  #
  # banner  =
  # banner_fail =
  # banner_success =
  }

  includedir /etc/xinetd.d

  -> /etc/xinetd.conf 파일의 구성

   => defaults 설정은 /etc/xinetd.d 디렉토리내에 존재하는 xientd 서비스들에
            공통적으로 적용하는 설정내용이다
      xinetd 기반의 서비스들에 대하여 기본값으로 적용하는 설정으로 개별
      설정항목이 별도로 존재할 때에는 이 기본 설정값은 무시되고 개별
      설정값이 적용된다

   => includedir /etc/xinetd.d 설정은 xinetd 서비스의 적용을 받는 개별
      서비스 설정파일들을 /etc/xinetd.d 디렉토리에서 불러오는 것이다


 - xinetd 기반의 개별 서비스 설정파일들은 /etc/xinetd.d 디렉토리 내에 개별 서비스이름과
   같은 파일명으로 존재한다

  # ls -l /etc/xinetd.d/
  total 52
  -rw-r--r-- 1 root root 1157 2008-09-18 17:36 chargen-dgram
  -rw-r--r-- 1 root root 1159 2008-09-18 17:36 chargen-stream
  -rw-r--r-- 1 root root 1157 2008-09-18 17:36 daytime-dgram
  -rw-r--r-- 1 root root 1159 2008-09-18 17:36 daytime-stream
  -rw-r--r-- 1 root root 1157 2008-09-18 17:36 discard-dgram
  -rw-r--r-- 1 root root 1159 2008-09-18 17:36 discard-stream
  -rw-r--r-- 1 root root 1148 2008-09-18 17:36 echo-dgram
  -rw-r--r-- 1 root root 1150 2008-09-18 17:36 echo-stream
  -rw-r--r-- 1 root root  332 2008-09-08 23:11 rsync
  -rw-r--r-- 1 root root 1212 2008-09-18 17:36 tcpmux-server
  -rw-r--r-- 1 root root  304 2009-07-29 19:17 telnet
  -rw-r--r-- 1 root root 1149 2008-09-18 17:36 time-dgram
  -rw-r--r-- 1 root root 1150 2008-09-18 17:36 time-stream


 - xinetd 기반의 서비스에 대한 개별 설정 파일

  # cat /etc/xinetd.d/rsync

  # default: off
  # description: The rsync server is a good addition to an ftp server, as it \
  # allows crc checksumming etc.
  service rsync
  {
   disable = yes
   flags  = IPv6
   socket_type     = stream
   wait            = no
   user            = root
   server          = /usr/bin/rsync
   server_args     = --daemon
   log_on_failure  += USERID
  }


 - /etc/xinetd.conf 파일에 다음 항목이 설정되어 있다면 Global 하게 적용되는 것을
     의미하고 /etc/xinetd.d/ 디렉토리 내에 존재한다면 개별서비스 설정이 된다

  -> service   : 서비스이름으로 /etc/services 파일에 등록된 서비스이름과 동일해야한다

  -> disable : 해당 서비스를 서비스할 것인가(no) 아닌가(yes)를 결정한다
             서비스를 하도록 설정하려면 no로 설정하고 서비스를 하지 않으려면
             yes 로 설정한다

  -> socket_type : TCP일 경우에는 stream으로 설정하고 UDP일 경우에는 dgram으로
      설정하며 서비스의 성격에 따라 raw, rdm, seqpacket 등이 올수
      있다

  -> wait  : xinetd가 서비스 요청을 받은 경우, 이후에 즉시 또는 다른 요청을
      처리할 것인지(no) 아닌지(yes)의 여부를 결정하는 지시자이다
      stream일 경우에는 반드시 no 이여야하며 no는 현재 요청외에의
      다른 접속요청을 새로운 것으로 시작하여 처리하게 된다

  -> user  : 서비스를 어떤 사용자 권한으로 서비스할 것인가를 결정한다

  -> server : 해당 서비스 요청이 들어왔을 경우에 해당 서비스를 담당하게될
      데몬파일의 위치를 절대경로로 지정하는 항목이다

  -> log_on_failure : 서버접속에 성공하지 못하였을 때 로그파일에 기록하는 내용을
        설정할 수 있다 HOST, USERID 그리고 ATTEMPT, RECORD 등이
        추가로 설정될 수 있다.

        HOST란 접속을 시도한 클라이언트의 IP 주소를 의미한다

        USERID란 접속한 사용자의 ID를 각각 의미한다

        +=은 /etc/xinetd.conf 파일의 기본설정항목에 추가할 항목을
        지정할 때 사용한다

        -=는 /etc/xinetd.conf 파일의 기본설정항목에서 뺄 항목을
        지정할 때 사용한다

  -> log_on_success : 서버 접속에 성공하였을 경우에 기록할 내용을 설정할 수 있다
        PID, HOST, USERID, EXIT, DURATION 등을 기록할 수 있다

        PID란 프로세스의 ID를 의미한다

        HOSTID란 클라이언트의 IP 주소를 의미한다

        USERID란 접속한 사용자의 ID를 의미한다

        EXIT란 프로세스의 종료상태를 의미한다

        DURATION이란 연결지속시간을 의미한다

  -> only_from : 'only_from = 192.168.1.0/24' 와 같은 설정이 가능하며 서버로
      해당 서비스 접속이 가능한 네트워크를 지정한다

  -> no_access  : 'no_access = 192.168.1.100'와 같은 설정이 가능하며 특정
      호스트를 접속을 제한 한다

  -> instances  : 'instances = 60'과 같은 설정이 가능하며 해당 서비스로 접속
      가능한 최대 접속자수를 제한한다

  -> access_times : 'access_times = 08:00~18:00'와 같은 설정이 가능하며 해당
      서비스의 이용가능 시간을 지정할 수 있다

  -> per_source : 'per_source = 5'와 같은 설정이 가능하며 동일한 호스트에서
      해당 서비스로의 접속시 동시에 접속할 수 있는 횟수를 지정한다

      서비스거부공격 (DoS)을 차단하기 위해 사용될 수 있다


# xinetd의 시작과 종료

 - xinetd 서비스를 위해서는 xinetd 데몬이 실행되어있어야한다

 - xinetd 데몬을 실행하려면 /etc/rc.d/init.d/xinetd 스크립트파일을 이용하면 된다

 - xinetd 의 시작

  -> xinetd 스크립트에 'start' 옵션을 함께 사용하면 된다

   # /etc/rc.d/init.d/xinetd start
   Starting xinetd:                                           [  OK  ]


 - xinetd 의 종료

  -> xinetd 스크립트에 'stop' 옵션을 함께 사용하면 된다

   # /etc/rc.d/init.d/xinetd stop
   Stopping xinetd:                                           [  OK  ]
 
 - xinetd의 재시작

  -> xinetd 스크립트에 'restart' 옵션을 함께 사용하면 된다

   # /etc/rc.d/init.d/xinetd restart
   Stopping xinetd:                                           [  OK  ]
   Starting xinetd:                                           [  OK  ]


# xinetd 서비스의 접근제어 담당 tcp_wrapper

 - 특정 IP나 도메인으로부터 서비스의 접속을 차단할 수 있다

 - 접속기록이나 접속시도기록을 특정한 파일에 로그로 기록한다

 - xinetd는 tcp_wrapper를 내장하고 있기 때문에 xinetd 모드에서 실행되는 서비스들(ftp,
   telnet, ssh 등)은 거의 대부분 tcpd라는 tcp_wrapper의 데몬에 의해 접속제어를 받게 된다

 - 개별서비스들의 접근 허용을 설정하는 파일은 /etc/hosts.allow이며 접근허용이 되지 않도록
   설정하는 파일이 /etc/hosts.deny 이다

 - tcp_wapper에 제어파일인 /etc/hosts.allow 파일과 /etc/hosts.deny 파일에 의해 제어되는
   서비스가 xinetd 기반 서비스에 한정되어있지 않다는 점이다
 
 - xinetd 기반 서비스뿐아니라 독립데몬들에 대한 서비스들도 tcp_wrapper의 제어파일인
   /etc/hosts.allow 파일과 /etc/hosts.deny 파일의 접근제어를 설정할 수 있다는 의미이다

 - /etc/hosts.allow와 /etc/hosts.deny 파일의 설정

  왼쪽부분 설정 항목

   대상서비스 : tcpd에 의해 제어되는 모든 서비스명
       xinetd 기반의 서비스들 뿐 아니라 독립데몬들의
       서비스들도 설정 가능

  오른쪽부분 설정 항목

   접근제어 대상 (host, IP주소, 네트워크주소등)
    : 특정 도메인명, 특정 호스트명, 특정 IP주소, 특정네트워크


  -> 왼쪽 항목과 오른쪽 항목은 콜론(:)으로 구분하며 세번째 항목을 계속 설정할
         때에도 콜론으로 구분하여 설정한다

  -> /etc/hosts.allow 설정과 /etc/hosts.deny 설정이 중복되었을 경우에는
       /etc/shots.allow 파일의 내용이 우선 적용된다

  -> '#'으로 시작하면 주석문으로 인식한다

  -> 대상 리스트들의 나열은 스페이스나 콤마(,)로 구분한다

 - tcp_wrapper에 의해 접근제어(허용 또는 차단)가 된 후에는 그 기록을 /var/log/secure
   파일에 남기게 된다


# ntsysv

 - ntsysv와 chkconfig는 방법이 조금 다를 뿐 목적하는바가 같다

 - 사용법과 실행결과에 조금씩의 차이는 있으나 부팅시에 자동실행할 서비스들을 관리하는
   점에서는 같은 목적을 가진 도구이다

 - GUI 환경에서 사용하고 있다면 "system-config-services"를 실행하면 동일하게 사용할 수
   있다

 - ntsysv는 리눅스의 부팅시 각 부팅레벨에 따라서 실행시키거나 실행시키지 않을 서비스들을
   설정하는 유틸리티이다

 - 0번부터 6번까지의 시스템부팅레벨에 따라서 부팅시에 자동실행 할 여러가지 서비스들에
   대한 실행 여부를 설정할 수 있다

 - /usr/sbin/ntsysv를 실행하면 실행이 되지만 setup 유틸리티를 실행하여 "System services"
   항목을 선택하여 실행할 수도 있다

 - ntsysv를 실행하면 "Services" 설정창이 뜨게 되며 시스템 부팅시에 자동실행할 여러가지
   서비스들에 대해 설정하는 것이 목적이다

  -> ntsysv를 실행한 후에 각 서비스의 앞에 있느 [ ]탭을 빈공간으로 두면 해당
     서비스를 부팅시 시작하지 않으며 [*]와 같이 해당서비스를 선택해두면 부팅시에
     그 서비스를 자동실행한다


 - 개별 서비스들에 간략한 도움말을 ntsysv 실행창에서 확인할 수 있으며 도움말을 보기위해선
   'F1' 키를 누르면 된다  


 - ntsysv를 실행하였을 경우에 현재부팅레벨로 다시 부팅할 경우에 자동 실행할 서비스들을
   설정하지만 '--level' 옵션을 이용하여 특정 런레벨로 부팅시 자동으로 실행할 서비스를
   설정할 수 있다

  형식 : ntsysv --level 3

  -> 여러개의 런레벨을 설정할시에 '35' 처럼 런레벨을 설정한다


# chkconfig

 - ntsysv와 chkconfig는 부팅시에 자동으로 실행할 각종 서비스들을 설정하는 유틸리티이다

 - chkconfig는 /etc/rc.d/rcN.d의 각 디렉토리에 있는 S로 시작하는 링크파일과 K로 시작하는
   링크파일을 생성/삭제함으로써 부팅시에 자동 실행할 서비스들을 결정할 수 있다

 - '--list' 옵션을 이용하여 ckhconfig로 관리되는 자동실행 서비스 리스트들을 확인한다

  # chkconfig --list | more
  NetworkManager  0:off 1:off 2:on 3:off 4:on 5:off 6:off
  acpid           0:off 1:off 2:on 3:on 4:on 5:on 6:off
  anacron         0:off 1:off 2:on 3:off 4:on 5:on 6:off
  atd             0:off 1:off 2:off 3:on 4:on 5:on 6:off

  -> on은 활성화를 의미하는 것으로 해당 런레벨로 부팅시 자동실행 시키며
     off는 비활성화를 의미하는 것으로 해당 런레벨로 부팅시 자동실행하지 않는다


 - '--add'로 지정한 서비스를 chkconfig 관리항목에 추가한다

  # chkconfig --add httpd

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

  -> '--add'로 서비스를 추가하면 /etc/rc.d/rcN.d 디렉토리에 httpd 링크 파일이
     생성된다


 - '--del'로 지정한 서비스를 chkconfig 관리항목에서 제거한다

  # chkconfig --del httpd

  # chkconfig --list | grep httpd

  -> '--del'로 서비스를 제거하면 /etc/rc.d/rcN.d 디렉토리에 httpd 링크 파일이
     삭제된다


 - 'on'으로 서비스를 2, 3, 4, 5 런레벨에서 자동실행 설정을 한다

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

  # chkconfig httpd on

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:on 3:on 4:on 5:on 6:off

  -> 런레벨을 지정하지 않으면 기본적으로 2,3,4,5 런레벨을 의미한다


 - 'off'로 서비스를 2, 3, 4, 5 런레벨에서 자동실행을 해제할 수 있다

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:on 3:on 4:on 5:on 6:off

  # chkconfig httpd off

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off


 - '--level'로 해당 런레벨에서 자동실행을 설정 해제 할 수 있다

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

  # chkconfig --level 3 httpd on

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:off 3:on 4:off 5:off 6:off

  # chkconfig --level 45 httpd on

  # chkconfig --list | grep httpd
  httpd           0:off 1:off 2:off 3:on 4:on 5:on 6:off


# chkconfig 와 ntsysv, xinetd, /etc/rc.d/rcN.d 파일의 상관 관계

 - chkconfig에서 특정 서비스의 ON 의미
 
  -> ntsysv에서 *설정이 되어 부팅시 자동 실행되도록 설정된다

  -> /etc/rc.d/rcN.d에서 S로 시작하는 파일이 생성된다

  -> xinetd에 속한 서비스라면 해당파일내의 disable 항목이 no로 설정된다


 - chkconfig에서 특정 서비스의 OFF 의미

  -> ntsysv에서 *설정이 제거되어 부팅시 자동실행되지 않게된다

  -> /etc/rc.d/rcN.d 에서 K로 시작하는 파일이 생성된다

  -> xinetd에 속한 서비스라면 해당파일내의 disable 항목이 yes로 설정된다


 - chkconfig에서 특정 서비스의 add 의미

  -> /etc/rc.d/rcN.d에서 해당 서비스의 링크파일이 생성된다
     (S로 시작하는 링크파일)

  -> ntsysv의 리스트 항목에 해당 서비스 항목이 생성된다


 - chkconfig에서 특정 서비스의 del 의미

  -> /etc/rc.d/rcN.d에서 해당 서비스의 링크파일이 삭제된다

  -> ntsysv의 리스트 항목에 해당 서비스 항목이 삭제된다


# /etc/services 파일

 - 리눅스 서버에서 사용하는 모든 포트들에 대한 정의가 설정되어 있다

 - 파일에 설정되는 서비스 포트들의 형식

  서비스이름  포트/사용프로토콜유형  별칭

  -> 서비스이름

   => 설정되는 포트에 대한 서비스의 이름


  -> 포트/프로토콜

   => 지정된 서비스에서 사용될 포트번호와 사용할 프로토콜유형

   => 사용되는 포트들은 /etc/protocols란 파일에 정의되어
      있으며 프로토콜유형은 일반적으로 tcp와 udp등이 사용된다

   => 사용될 포트번호는 1024번까지는 시스템에서 이미 사용예약이 되어
      있으므로 관리자가 만들어 사용할 포트가 있다면 이 번호 이상되는
      포트번호를 지정하여 사용해야한다


  -> 별칭

   => 지정된 "서비스이름" 외에 다른 이름을 사용할 수 있도록 한다


  # cat /etc/services | more

  # /etc/services:
  # $Id: services,v 1.44 2008/04/07 21:30:33 pknirsch Exp $
  #
  # Network services, Internet style
  #
  # Note that it is presently the policy of IANA to assign a single well-known
  # port number for both TCP and UDP; hence, most entries here have two entries
  # even if the protocol doesn't support UDP operations.
  # Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
  # are included, only the more common ones.
  #
  # The latest IANA port assignments can be gotten from
  # http://www.iana.org/assignments/port-numbers
  # The Well Known Ports are those from 0 through 1023.
  # The Registered Ports are those from 1024 through 49151
  # The Dynamic and/or Private Ports are those from 49152 through 65535
  #
  # Each line describes one service, and is of the form:
  #
  # service-name  port/protocol  [aliases ...]   [# comment]
 
  tcpmux        1/tcp                   # TCP port service multiplexer
  tcpmux        1/udp                  # TCP port service multiplexer
  rje              5/tcp                   # Remote Job Entry
  rje              5/udp                  # Remote Job Entry
  echo           7/tcp

2010/04/14 09:40 2010/04/14 09:40

Trackback Address :: https://youngsam.net/trackback/1142