작업환경 : Redhat6.2k
=========================================================================
TCPWRAPER를 이용한 간단 보안임돠.
관리자가 선택적으로 접속하는 호스트를 막는 툴이라고나 할까염?!
/etc/hosts.allow
/etc/hosts.deny
그리고, 파일하나를 작성합니다.
/etc/hosts.check
============================== START ====================================
#!/bin/sh
################################ 변수정의부문
# 메일 수신자
mailto=root
# 화면출력 여부, 메일전송 여부
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
/bin/echo "
========================================
접속이 허용되지 않습니다.
========================================
Access Time : $time
Client host address : $a
Client information : $c
Client host name(or IP) : $h
Client host name : $n
Client user name : $un
"
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
---------------------------------------------------------
n" |
/bin/mail -s "tcp_wrapper report [$d]" $mailto
fi
============================= STOP ======================================
/etc/hosts.check 파일을 만든뒤,
chmod a+rx /etc/host_check
이렇게 실행가능하도록 합니다.
그담은 /etc/hosts.allow 파일을 자신의 환경에 맞게 적당하게 수정합니다.
============================= START =====================================
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# 메일을 모든 사람에게 허용
# in.smtpd: ALL
# telnet과 ftp는 같은 도메인에 속한 사람과 집에 있는 본인의 호스트
# 에만 허용
# telnetd, ftpd: LOCAL, linux.klug.org
# finger를 허용하되 누가 요청했는지 기록을 남긴다.
# fingerd: ALL: (finger @%h | mail -s "finger from %h" root)
#in.telnetd: 192.168.0., LOCAL, koug.net
#in.ftpd: 192.168.0., LOCAL, koug.net
#ipop3d: 192.168.0., LOCAL, koug.net
#in.smtpd: 192.168.0.,LOCAL, koug.net
#in.telnetd: ALL
#ipop3d: ALL
#in.smtpd: ALL
in.telnetd ipop3d in.smtpd:
127.0.0.1
211.209.69.103
koug.net
192.168.0.2
: ALLOW
in.ftpd: ALL
================================= STOP ==================================
그리고, /etc/hosts.deny 파일을 수정합니다.
크게 건드릴것은 없습니다.
================================= START =================================
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
#ALL : ALL
#서비스: 거부주소: 쉘명령
#in.telnetd: ALL: twist ( /etc/hosts.check Y Y %a %c %d %h %n %p %s %u )
&
#ipop3d: ALL: twist ( /etc/hosts.check Y Y %a %c %d %h %n %p %s %u ) &
ALL : ALL EXCEPT LOCAL:
twist ( /etc/hosts.check Y Y %a %c %d %h %n %p %s %u ) &
=============================== STOP ====================================
죽 보시면 크게 어려운건 없을듯하네염. 저두하는데염.__+)
hosts.allow에는 허용할 컴의 ip내지 domain을 쓰면 됩니다.
그리고 hosts.deny는 수정할 것이 거의 없습니다.
단, 메일받는 사람의 ID는 root 로 해놓았는데 원하는 ID로 하시면 됩니다.
이것이 어떻게 작동을 하느냐하면, 일단 허용되지 않는곳의 IP에서 telnet으
로 접속을 시도합니다. 그러면 바로 hosts.check가 실행됩니다.
그리고 접속을 시도한 컴에게 finger를 시도해서 정보를 메일로 관리자에게 보
냅니다.
이런 프로그램에 관심이 있으신분들은,
http://www.rootshell.com
를 들러보십시오. 전 잘........ --ㆀ
직접 테스트한 화면을 볼까염!
=========================================================================
[root@www /etc]# telnet 211.209.69.103
Trying 211.209.69.103...
Connected to 211.209.69.103.
Escape character is '^]'.
========================================
접속이 허용되지 않습니다.
========================================
Access Time : 금 5월 11 23:22:17 KST 2001
Client host address : 211.209.69.103
Client information : 211.209.69.103
Client host name(or IP) : 211.209.69.103
Client host name : paranoid
Client user name :
Connection closed by foreign host.
=========================================================================
메일을 받을 ID로 보내진 메일을 확인해볼까염!
=========================================================================
From root Fri May 11 23:22:17 2001
Date: Fri, 11 May 2001 23:22:17 +0900
From: root <root@koug.net>
To: root@koug.net
Subject: tcp_wrapper report [in.telnetd]
========================================
접속 거부자 상세정보
========================================
Access Time : 금 5월 11 23:22:17 KST 2001
Access client host address : 211.209.69.103
Access client information : 211.209.69.103
The daemon process name : in.telnetd
Access client host name(or IP) : 211.209.69.103
Access client host name : paranoid
The daemon process id : 12378
Server information : in.telnetd@211.209.69.103
Access client user name : Y0
--------------------------------------------------------
Access client finger information
--------------------------------------------------------
=========================================================================
세부적인것은 나름대로 공부하시기 바랍니다.
사용할 대몬프로그램의 이름을 앞에 써주고 형식은 같으니 변형해서 사용하시
면 됩니다.
[출처] TCPWRAPER 를 이용한 보안 (정보보안해커대학(정보보안전문가카페)) |작성자 해커강
댓글 없음:
댓글 쓰기