2008. 7. 8. 23:38

linux - 침입차단 , portsentry , IDS

portsentry , IDS

portsentry 는  host기반 침입 탐지 시스템으로 열려 있는 모든 포트를 모니터링 할 수 있는 것이 특징이다.
포트 스캔 공격을 받았을 경우 방화벽과 연동하여 보안정책을 구성 할 수 있다.


특징 ( 차단방법)
----------------------------------------------------------------------------------------------------
호스트로 들어오는 모든 패킷을 ROUTE명으로 DROP시킬 수 있다.
      xinetd 기반의 서비스에 접근하지 못하도록  /etc/hosts.deny 파일을 갱신 할 수 있다. (tcpd)
      연결을 막지 위해 iptables와 연동가능
----------------------------------------------------------------------------------------------------


다운로드
----------------------------------------------------------------------------------------------------
http://rpm.pbon.net

# wget ftp://ftp.pbone.net/mirror/ftp.falsehope.net/home/tengel/centos/4/te/i386/RPMS/portsentry-1.2-1.te.i386.rpm  // centos용

http://rpmfind.net
http://centos.org
----------------------------------------------------------------------------------------------------

설치
----------------------------------------------------------------------------------------------------
portsentry                 실행파일
portsentry.conf          환경설정 파일
portsenty.history        거부된 host정보 저장
portsenty.ignor          감시예외파일
----------------------------------------------------------------------------------------------------


실행 모드
----------------------------------------------------------------------------------------------------
portsentry 는 스캔 공격자가 스캔을 하기 위해 사용하는 다양한 공격에 대비하여 탐지하고 싶은 공격에 따라서 여러가지 방법으로 실행가능
----------------------------------------------------------------------------------------------------

실행 옵션
----------------------------------------------------------------------------------------------------
-tcp / -udp       : 표준 tcp/udp host기반 IDS로 동작
-stcp / -sudp   : 스텔스 tcp/udp 스캔 감시
-atcp / -audp   : portsentry.conf 파일에 지정한 port 에 어떤 host도 접근하지 못하도록 설정
----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------
[fedora]
위에서 받은 rpm 패키지를  설치 하자
# rpm -Uvh portsentry
# rpm -ql portsentry
# cd /etc/portsentry
# ls
portsentry.conf  portsentry.ignore  portsentry.modes
# vi portsentry.conf
사용자 삽입 이미지

35~36 라인에 감시할 포트를 추가할 수 있다.최대64


     42 ###########################################
     43 # Advanced Stealth Scan Detection Options #
     44 ###########################################
     58 ADVANCED_PORTS_TCP="1024"
     59 ADVANCED_PORTS_UDP="1024"
                                                        // 스텔스 스캔 포트 감시영역
     
     72 # Default TCP ident and NetBIOS service
     73 ADVANCED_EXCLUDE_TCP="21,22,25,53,80,110,113,135,137,138,139,443"
     74 # Default UDP route (RIP), NetBIOS, bootp broadcasts.
     75 ADVANCED_EXCLUDE_UDP="520,517,518,513,138,137,123,68,67,53"
                                                        // 감시제외 포트

     78 ######################
     79 # Configuration Files#
     80 ######################
     81 #
     82 # Hosts to ignore
     83 IGNORE_FILE="/etc/portsentry/portsentry.ignore"                           // 각 파일 위치
     84 # Hosts that have been denied (running history)
     85 HISTORY_FILE="/etc/portsentry/portsentry.history"
     86 # Hosts that have been denied this session only (temporary until next re        start)
     87 BLOCKED_FILE="/etc/portsentry/portsentry.blocked"



     89 ##############################
     90 # Misc. Configuration Options#
     91 ##############################

     96 RESOLVE_HOST = "1"       : DNS 사용안함 ' 0' 으로 수정

    109 ##################
    110 # Ignore Options #
    111 ##################
    128 # 0 = Do not block UDP/TCP scans.                         : 차단 안함
    129 # 1 = Block UDP/TCP scans.                                   : 차단
    130 # 2 = Run external command only (KILL_RUN_CMD)    : 역해킹
                            // ?????

    135 ###################
    136 # Dropping Routes:#
    137 ###################

    160 #KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666"            // route 명령어로 차단

    205 # iptables support for Linux
    206 KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
                                                                                  // iptables로 차단 시킴

    220 ###############
    221 # TCP Wrappers#
    222 ###############
   
    229 #KILL_HOSTS_DENY="ALL: $TARGET$"
    282 SCAN_TRIGGER="2"      : 스캔 간격     딜레이 ' 0 '

이상 conf 파일을 둘러 봤지만 집중하지 않아서 그런지 그냥 넘어간 부분이 있다 이해해주길
----------------------------------------------------------------------------------------------------

실행
----------------------------------------------------------------------------------------------------
# portsentry --help
# portsentry -stcp
# ps ax | grep port
# iptables -F
# iptables -P INPUT ACCEPT      // free nmap으로는 DROP상태에서 안됨

[Centos]
# yum -y install nmap
# nmap -v -sS -o 192.168.10.10        // fedora 스캔하다 멈추고

[fedora]
# iptables -L
192.168.10.20 즉 centos 에 대한 차단 룰이 적용되어 있는것을 볼 수 있다.
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------