Posted on 2004/01/28 19:07
Filed Under 리눅스기술문서/서버관련 조회수: view 4739

xinetd 설치 및 tcpwrapper 적용

xinetd 버퍼오버플로워 취약점 때문에 업그레이드를 시켜주어여 한다.
안그러면 root 를 손쉽게 넘겨주게 된다.

xinetd-2.3.0 으로 업그레이드함..

/usr/local/src 및에 xinetd-2.3.0.tar.gz 를 푼다.

# cd /usr/local/src/xinetd-2.3.0
# ./configure --with-libwrap --with-loadavg
(tcpwrapper 를 적용하기 위해서는 --with-libwrap 옵션을 꼭 주어야 함)
# make
# make install
# cd /usr/sbin
# mv xinetd xinetd_bak
# ln -s /usr/local/sbin/xinetd xinetd

이걸로 설치는 완료..

tcpwrapper 을 적용하기 위해서 /etc/hosts.deny , /etc/hosts.allow 파일을
설정한다.

# vi /etc/hosts.deny
-----------------------------------------------------------------------

ALL : ALL : twist ( /etc/host-check Y Y %a %c %d %h %n %p %s %u ) &

# vi /etc/hosts.allow
-----------------------------------------------------------------------

ALL: localhost 211.47.64.145 211.47.67.154 211.47.67.6

# vi /etc/host-check
-----------------------------------------------------------------------
#!/bin/sh

################################  변수정의부문

# 메일 수신자
mailto=alang at sysmng.com

# 화면출력 여부, 메일전송 여부
dsp=$1; msg=$2

# 접속자 정보 등
a=$3; c=$4; d=$5; h=$6; n=$7; p=$8; s=$9; u=$10

# 현재 시간
time=`date`

# 접속시도자 소속 서버의 finger 정보  
finger=`/usr/bin/finger -l @$h 2> /dev/null`


################################  화면 출력부문
if [ $dsp = Y ]
    then

echo "
                      ===================================
                           접속이 허용되지 않습니다.
                      ===================================

               Access Time             : $time
               Client host address     : $a
               Client information      : $c
               Client host name(or IP) : $h
               Client host name        : $n
               Client user name        : $u
        "

fi


################################  메일 송신부문

if [ $msg = Y ]
    then

/bin/echo "
                        ===============================
                              접속 거부자 상세정보
                        ===============================

         Access Time                    : $time
         Access client host address     : $a
         Access client information      : $c
         The daemon process name        : $d
         Access client host name(or IP) : $h
         Access client host name        : $n
         The daemon process id          : $p
         Server information             : $s
         Access client user name        : $u
                   --------------------------------------
                       Access client finger information
                   --------------------------------------
                            $finger
              ------------------------------------------------
" | \\
      /bin/mail -s "tcp_wrapper report [$d]" $mailto

fi

--------------------------------------------------------------------------

# chmod 755 /etc/host-check

이와 같이 하면 tcpwrapper 가 적용된다. 물런 xinetd 를 재시작 해주고..

xinetd 에서 tcpwrapper 는 이전 버젼인 inetd 보다 막강하고 용도가 다양하다.
    
위와 같이 /etc/hosts.deny 에서 ALL : ALL 로 걸면 21(ftp) 포트를 제외하고는
모두 걸리게 된다.

그렇기 때문에 /etc/hosts.allow 에서도 ALL 로 모두 풀어 주어야 한다.
telnet 만 wrapper 에 적용시킬려면 /etc/hosts.deny 에서 ..

in.telnetd : ALL 식으로 걸어주면 되고..

/etc/hosts.allow 에서도

in.telnetd : 식으로 풀어 주면 된다.

Writer profile
author image
-아랑 -
2004/01/28 19:07 2004/01/28 19:07

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by 서진우
Twitter :@muchunalang

Counter

• Total
: 4158224
• Today
: 1466
• Yesterday
: 1261