[보안] xinetd 설치와 tcp_wrapper 사용하기 -아랑

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 : 식으로 풀어 주면 된다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.