[수퍼데몬 xinetd] XINETD 에 관련된 파일들

 1. xinetd 에 관련된 파일.

 – /etc/xinetd.conf : xinetd 서비스에 공통적으로 적용되는 주된 설정파일

 – /etc/xinetd.d/내의 서비스 파일들 : xinetd 로 서비스될 파일들이 존재하는 디렉토리

 – /usr/sbin/xinetd : xinetd 데몬

 – /etc/services : 서비스포트 설정파일

 – /etc/protocols : 프로토콜 설정파일

 – /etc/syslog.conf : 시스템로그 설정파일

 – /usr/sbin/tcpd : tcpd 데몬

 – /etc/hosts.allow : 서비스별 허용목록파일( tcpd )

 – /etc/hosts.deny : 서비스별 거부목록파일( tcpd )

 – /var/log/secure : tcpd 로그기록파일( 접근기록 파일 )

 – /etc/rc.d/init.d/xinetd : xinetd 시작/종료 스크립트파일( start | stop | restart )

 – /etc/xinetd.conf 파일은 xinetd 의 최상위 설정파일로서 Top_Level Configuration File 이라고함.

 – /etc/xinetd.d/ 디렉토리에 대하여 Global 하게 영향을 주게 됨.

 – /etc/xinetd.d/서비스 파일과 /etc/xinetd.conf 파일내의 설정 중 중복되는 항목이 있다면 그 해당 서비스에 대해서는 당연히 /etc/xinetd.d/서비스 파일 내의 설정항목이 우선 적용 됨.

 2. xinetd.conf 파일의 구성

 – defaults 설정 : /etc/xinetd.d/ 디렉토리내에 존재하는 xinetd 서비스파일들에 공통적으로 적용하는 설정내용

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

[수퍼데몬 xinetd] XINETD 모드의 서비스흐름도

 1. 외부에서 telnet( xinetd 에서 관리하는 서비스중의 하나 ) 서비스의 요청이 들어옴.

 2. xinetd 데몬은 외부에서 요청괸 서비스를 tcpd 에 넘겨줌.

 3. tcpd 는 /etc/hosts.allow 와 /etc/hosts.deny 파일을 검사하여 허가된 접속인지를 체크함.

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

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

[수퍼데몬 xinetd] 데몬실행모드 두가지( standalone 과 xinetd )

 1. standalone 과 xinetd 의 차이점.
구분 : xinetd 환경 서비스                         :            독립( standalone ) 서비스
의미 : xinet 수퍼데몬에 의해 제어되는        : 독립적으로 실행되는 서비스들의 데몬
       : 서비스들의 데몬                             :
실행방법 : 필요할 때에 xinetd 에 의해 수행됨: 독립적인 서비스를 위하여 항상 독립적으로
             :                                               : 수행됨
데몬상주여부 : xinetd 에 의해 불리워진 후에 : 독립적인 서비스를 위하여 항상 메모리에 독립
                   : 서비스 완료후에는 종료됨     : 데몬으로 상주해 있음.
기타 : ” /etc/xinetd.d/서비스명 ” 으로된      :
       : xinetd 제어파일이 존재함                  :
접근제어 : tcpd 에 의해 접근제어됨.            : tcpd 와는 무관하지만 자체 설정파일에 의해 접근
             : ( /etc/hosts.allow, /etc/hosts.deny : 제어를 할 수도 있음.
             : 파일로 접근제어 설정할 수 있음.        :
참고 : 독립적으로 실행되는 데몬들도 xinetd 환경으로 변경할 수 있으며 반대로 xinetd 환경에서
       : 서비스되는 데몬들도 독립적인 실행모드로 변경할 수 있음.

 2. Standalone 모드

 – 독립적으로 실행이 되며 항상 메모리에 상주하여 서비스요청이 있을 때 언제든 바로 응답을 함.

 – 즉, 빠른 응답속도를 요하는 경우에 이 모드를 이용함.

 – 단점으로는 메모리에 항상 상주해 있으므로 메모리점유로 인하여 서버부하를 줌.

 – ex) httpd, sendmail, named…..

 3. xinetd 모드

 – xinetd 모드로 실행되는 데몬은 xinetd 라는 특별한 데몬( 인터넷 수퍼데몬 ) 에 의해 관리되며, 필요한 경우에만 메모리로 적재( load ) 되어 실행이 되어 응답을 함.

 – 즉, 빠른 응답속도를 요하지않는 경우에 이 모드를 이용함.

 – 단점으로는 응답속도가 standalone 보다는 상대적으로 느리다는 것이고, 장점으로는 메모리에 항상 상주해 있는 것이 아니므로 standalone 모드보다 서버부하를 상대적으로 줄일 수 있음.

 4. standalone 모드로만 실행되는 데몬들도 xinetd 모드로 변경실행이 가능하며 xinetd 모드로 실행이 되는 데몬들도 standalone 모드로 서비스하는 것 또한 가능함.

 5. standalone 및 xinetd 모드 설정시 고려해야 할 사항

 – 얼마나 많은 서비스요청을 받는가?

 – 얼마나 자주 서비스요청을 받는가?

 – 메모리 점유가 얼마나 되는가?

 – 보안이 필요한 경우와 비교적 그렇지 않은 경우의 분석.

 6. XINETD 수퍼데몬 서비스파일 주의사항

 – /etc/xinetd.d/ 디렉토리내의 서비스파일들에 등록되어 있는 데몬들이 root 계정으로 실행되고 있는 꼭 확인을 해야함. 그렇지 않다면 의심을 해보아야 함.

 – /etc/xinetd.d/ 디렉토리의 각 서비스파일들이 퍼미션에서 일반유저들에게 실행은 물론이고 읽기권한까지도 빼버려야 함.

 – 이 파일이 일반유저들에게 읽기 권한이 있다면 해당서버에서 어떤 서비스를 하고 있는지를 모두 알수있기 때문이며 실행파일의 위치까지도 파악이 가능함.

 –
더욱 우려되는 것은 서버관리자의 실수든 해킹된 것이든 /etc/xinetd.d/ 내의 파일들에게 쓰기( write ) 권한이
설정되어 있다면 어떤 프로그램이든지 만들어서 이 파일에 등록해 두면 root 의 권한으로 실행이 가능하게 됨.

[수퍼데몬 xinetd] 인터넷 수퍼데몬( xinetd ) 이란?

 1. 수퍼데몬( xinetd ) 개론
 
 – XINETD 는 인터넷 수퍼데몬( Internet Super Daemon ) 을 의미하는 것으로서  SENDMAIL, HTTPD 등과 같이 리눅스 시스템에서 실행되는 하나의 데몬임.

 – 하지만 SENDMAIL, HTTPD 등과는 달리 리눅스 서버에서 서비스되는 여러가지 데몬들을 제어하면서 각각의 서비스들의 연결을 담당하고 있음.

 2. 수퍼데몬( xinetd ) 의 특징

 – xinetd 는 inetd 상위버전으로 레드햇 7.0 이후 버전부터 사용됨.

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

 – xinetd 에서 가지고 있던 접근제어기능을 가지고 있음.

 – tcp_wrapper 를 내장하고 있기 때문에 접근제어를 할 수 있음.

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

 – 동일한 IP 를 가진 호스트에서 동시 접속수를 제어하여 접근제어를 할 수 있음.

 – xinetd 에서 제어되는 각 서비스들에 대한 syslog 로깅 레벨 설정가능.

 – 접속하는 클라이언트들의 서비스 이용시간을 기록할 수 있음.

 – 서비스를 거부하거나 서비스 접근제어가 되었을 겨우에 상세로그를 기록함.

[로그 관리 및 분석] Webalizer 를 이용한 멀티웹로그 자동 분석법

 1. Webalizer 의 소개와 특징

 – C 언어로 개발되었기 때문에 실행속도가 굉장히 빠름.

 – 특히, 한국어를 지원한다는 점에 굉장한 매력이 있음.

 – Webalizer 는 C 로 개발되었지만 그 소스를 공개하고 있음.

 – 분석대상이 되는 소스파일의 크기에 제한이 없음.

 2. Webalizer 설치하기

 – Webalizer 를 다운받을 수 있는 곳.
http://www.mrunix.net/webalizer/
http://www.webalizer.com

 3. 웹로그 분석을 위한 Webalizer 환경구성

 – Webalizer 설치 위치 : /usr/local/webalizer

 – 환경설정파일 디렉토리 : /usr/local/webalizer/conf/개별도메인.conf ( 없으면 만들어줘야 한다 )

 – 실행 쉘스크립트 파일 : /usr/local/webalizer/bin/webalizer.sh

 – 이 두개의 파일은 모두 직접 만들어 주어야 함. webalizer.conf 파일에는 분석대상이 되는 모든 웹사이트의 웹로그분석을 위한 설정파일들이 ” 도메인.conf ” 라는 파일이름으로 각각 한개씩 생성해야 함.

 – /usr/local/webalizer/bin 에 생성되는 webalizer.sh 파일 또한 직접 만들어 주어야 함. 이 파일에는 개별 conf 파일들을 하나씩 분석하기 위한 실행명령들이 들어가게 됨.

 4. Webalizer 의 실행설정파일 만들기

 – /usr/local/webalizer/conf 디렉토리에 분석하고자하는 대상 도메인의 설정파일( *.conf ) 파일을 만들어 주어야 함.

 – Webalizer 설치하고 나면 ” make install ” 과정에서 샘플설정파일( webalizer.conf.sample ) 이 /etc/ 디렉토리내에 생성됨. 이 샘플파일을 도메인데 하나씩 복사해 오면 됨.

 – cp /etc/webalizer.conf.sample stkim.com.conf

 – 복사해온 샘플파일의 내용을 개별 도메인의 환경에 맞게 수정해 주어야 함.

 – LogFile : 로그파일 위치( 예 : /home/stkim/www_log/access_log )

 – OutputDir : 분석결과 저장위치( 예 : /home/stkim/www/weblog )

 – HistoryName : 사이트명( 예 : stkim.com )

 – ReportTitle : 분석결과 페이지 이름( 예 : STKIM.COM WebSite )

 – HostName : 호스트명 FQDN 형식( 예 : www.stkim.com )

 5. Webalizer 의 실행파일 생성하기

 – Webalizer 의 실행파일 webalizer.sh 는 설치후에 생성되는 것이 아니며 멀티웹로그분석을 위해 직접 생성해야 함.

 – vi webalizer.sh
/usr/local/bin/webalizer -c /usr/local/webalizer/conf/stkim.com.conf

 – 위치는 /usr/local/webalizer 이며 이 위치에 webalizer.sh 라는 실행파일이 생성.

 6. 자동분석 설정을 위한 cron 설정하기

 – crontab -e

 – 00 03 * * * su – root -c ‘/usr/local/webalizer/bin/webalizer.sh’