요

Portsentry 1.1 설치하기(실시간해킹방지프로그램)

· 2007-09-27 (목) 14:03:29 · 3160

portsentry 란?
 
portsentry는 실시간으로 이런 portscan을 탐지하고 대응하기 위해 만들어진 프로그램이며, Abacus Project의 일환으로 PSIONIC사에서 개발 배포하는 도구중 하나이다. portsentry는 정상적인 스캔과 비밀스캔 모두를 탐지한다. portsentry는 portscan을 탐지하기 위해 많은 옵션들을 가지고 있는데 아래의 방법들로 portscan에 반응한다. (자세한 내용은 README.install을 참고하세요.)
 
 
 
portsentry 다운받기
 
http://www.psionic.com/products/portsentry.html 에서 설문 조사후 portsentry를 받는다..
 
예전의 1.1 버전과 최신 2.0베타 버전이 잇는데.. 여기서는 1.1 버전을 설치한다..
 
 
 
portsentry 설치하기
 
[root@chtla kan]# tar xvfz portsentry-1.1.tar.gz

[root@chtla portsentry-1.1]# make linux

SYSTYPE=linux
Making
cc -O -Wall -DLINUX -DSUPPORT_STEALTH -o ./portsentry ./portsentry.c
      ./portsentry_io.c ./portsentry_util.c


[root@chtla portsentry-1.1]# make install
디폴트 디렉토리는 /usr/local/psionic/portsentry/portsentry 이다..

[root@chtla portsentry-1.1]# cd /usr/local/psionic/portsentry/

[root@chtla portsentry]# vi portsentry.conf
수정할 내용은 portsentry가 점검할 대상 포트(port)에 대한 것으로서 필요한 점검포트들을 모두설정하거나 점검하지 않을 포트들을 빼버리면 된다. 크게 대상 포트는 TCP 포트와 UDP포트로 나위어져 있으며, 특히 Stealth 스캔에 대한 옵션에 대한 설정도 할수 있음을 유심히 보기 바란다.

[root@chtla portsentry]# vi portsentry.ignore
12.34.56.78 <== portsentry 에서 block 되지 않을 아이피를 적어준다..(즉 자신의 서버 아이피등..안전하다고 생각되는 아이피)

[root@chtla portsentry]# vi /etc/rc.d/rc.local <== 부팅시 실행을 위해 추가..


# Port Sentry Setting
/usr/local/psionic/portsentry/portsentry -tcp
/usr/local/psionic/portsentry/portsentry -udp
/usr/local/psionic/portsentry/portsentry -stcp
/usr/local/psionic/portsentry/portsentry -sudp
/usr/local/psionic/portsentry/portsentry -atcp
/usr/local/psionic/portsentry/portsentry -audp

 
 
 
옵션들 설명
 
-tcp - Basic port-bound TCP mode (기본 포트 제한 TCP 모드)
PortSentry는 설정파일들을 확인하고 나서, 백그라운드에 있는 모든 TCP포트들을 묶을 것이다. 만약 여러분이 init 상태를 점검하길 원한다면, 단지 여러분은 메시지가 저장되어지는 local syslog 파일을 살펴보면 된다.
-udp - Basic port-bound UDP mode (기본 포트 제한 UDP 모드)
PortSentry는 설정파일들을 확인하고 나서, 백그라운드에 있는 모든 UDP포트들을 묶을 것이다. 만약 여러분이 init 상태를 점검하길 원한다면, 단지 여러분은 메시지가 저장되어지는 local syslog 파일을 살펴보면 된다. UDP/스텔스 스캔 경고가 적용된다. (README.stealth파일을 읽어보라.)


-stcp - Stealth TCP scan detection mode (스텔스 TCP 스캔 탐지 모드)
PortSentry는 호스트로 들어오는 모든 패킷들을 감시하기 위해서 raw 소켓을 사용할 것이다. 만약 호스트로 들어오는 패킷이 감시되고 있는 포트로 향한다면, PortSentry는 호스트를 방어하기 위해 작동할 것이다. 이 방법은 connect() 스캔과 SYN/half-open 스캔과 FIN 스캔을 탐지할 것이다.
UDP/스텔스 스캔 경고가 적용된다. (README.stealth파일을 읽어보라.)


-sudp - "Stealth" UDP scan detection mode (스텔스 UDP 스캔 탐지 모드)
이것은 위의 TCP stealth mode와 작동방법은 동일하다. UDP 포트들을 나열하면, 그 포트들은 감시된다. 이것은 어떠한 소켓도 묶지 않으며, 실제 스텔스 스캔 탐지 모드가 아닌 중에도 거의 동일하게 동작한다.( 모든 UDP 패킷에 반응한다.)
UDP/스텔스 스캔 경고가 적용된다. (README.stealth파일을 읽어보라.)


-atcp - Advanced TCP stealth scan detection mode (advanced TCP 스텔스 스캔 탐지 모드)
PortSentry는 ADVANCED_PORTS_TCP 옵션에 지정된 최상의 포트번호이하의 모든 열려진 포트에 대한 목록을 만들면서 시작하고, 이러한 포트들을 기초로 제외(exclusion)목록을 만들 것이다. 제외되지 않은( 예를 들어, [SMTP, HTTP, 등의] 열려진[listening] network daemon이 아닌, ) 영역내의 임의의 포트에 연결된 호스트들은 접속이 금지된다. 이것은 여러분이 반드시 알고 있어야 할 몇몇 아주 강력한 함축적 의미들을 가지고 있다.

-audp - Advanced UDP stealth scan detection mode (advanced UDP 스탤스 스캔 탐지 모드)
UDP 프로토콜을 사용한다는 점을 제외하고는 위와 같다. Advanced UDP stealth scan detection은 지원되지 않는 트래픽을 즉시 알 수 있기 때문에 강력하지만 부정확한 경보의 가능성이 높다.
 
 
 
실행하기
 
[root@chtla portsentry]# /usr/local/psionic/portsentry/portsentry -tcp
[root@chtla portsentry]# /usr/local/psionic/portsentry/portsentry -udp
[root@chtla portsentry]# /usr/local/psionic/portsentry/portsentry -stcp
[root@chtla portsentry]# /usr/local/psionic/portsentry/portsentry -sudp
[root@chtla portsentry]# /usr/local/psionic/portsentry/portsentry -atcp
[root@chtla portsentry]# /usr/local/psionic/portsentry/portsentry -audp

[root@chtla portsentry]# ps -ax|grep portsentry
 1084 ?        S      0:00 /usr/local/psionic/portsentry/portsentry -tcp
 1086 ?        S      0:00 /usr/local/psionic/portsentry/portsentry -udp
 1092 ?        S      0:01 /usr/local/psionic/portsentry/portsentry -atcp
 1094 ?        S      0:00 /usr/local/psionic/portsentry/portsentry -audp


이처럼 실행을 되어 있는 것은 확인할수 있다..
그런데-stcp와 -sudp가 실행이 되지 않을것이다.. 서버 두대에서 같은 방법으로 돌려 보았는데, 실행이 되지 않고 있다.. 별문제라 문제되지 않아 아직까지 크게 신경을 쓰고 있지는 않아, (혹 아시는 분은 제게 좀 알려주세요..^^) 그냥 방치에 두고 있었다..
글을 쓰고면서 다시 기억이 났으니 우선을 그냥 넘어가기로 한다.. 큰 문제는 아니다.
 
 
 
침입 ip blocking 시키기..
 
우선 portsentry 는 디폴트로 tcp-wrapper 와 연동이 되어 정상적인 포트가 아닌 다른 포트로 스캔을 할지 자동으로 /etc/hosts.deny 에 기록을 하게 된다.

그냥 사용을 해도 좋으나 iptables 가 설치 되어 있다면 이것과 연동을 하는 것이 더 낮을것이다.
iptables와 연동을 하려면

[root@chtla portsentry]# vi portsentry.conf

#KILL_HOSTS_DENY="ALL: $TARGET$" <=== 이것을 주석처리 하구

# iptables support for Linux  <=== 끝부분에 있을것임
KILL_ROUTE="/sbin/iptables -A INPUT -s $TARGET$ -j DROP" <=== 이것을 주석 처리를 풀어준다.

iptables 의 기본 옵션으로 -I 로 되어 있을것이다.. 그대로 사용해도 사용이 없으나, iptables를 사용할 사용이라면 -A 를 쓰도록 하자.
(-I 는 최상위로 올라가기에, 즉 최상우선적으로 적용을 시키는 옵션으로 개인적으로 iptables에 허가 ip를 등록시켜둔 상태라서 저는 이렇게 사용합니다..
-A 를 쓰면 -I 으로 적용한것보다 밑에 있게 되어 보기가 편하거든요..)
 
 
 
침입 테스트하기
 
다른 컴퓨터나 해당 서버에 텔넷(보통 기본적으로 막혀 있음)이나 다른 포트에 접속을 해 보자..

(다른 컴터에서)
# telnet 12.34.56.78 23

접속하면 별일없이 프럼프트 상에서 한참을 기다리고 있을것이다.(linux상에서).. 종료후 해당 서버의 /etc/hosts.deny (iptables 설정을 안했을 경우) 를 열어 보거나, iptables로 설정한 경우

# iptables -L
target     prot opt source               destination        
DROP       all  --  61.xx.xx.196        anywhere  <== 허가 거부된 ip

이와 같이 거부된 것을 볼수 있을것이다..
 
 
 
참조할만한 사이트
 
http://www.certcc.or.kr/tools/Psionic_Portsentry.html
http://list.kldp.org/pipermail/tip/2001Sep/0292.html

[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
08-04-17 조회 4,346
08-03-14 조회 3,220
08-03-08 조회 3,040
08-03-06 조회 3,017
08-03-03 조회 4,307
08-02-20 조회 2,987
08-02-15 조회 3,906
08-02-11 조회 5,062
08-02-09 조회 5,800
08-02-05 조회 3,834
08-01-14 조회 6,644
08-01-11 조회 7,074
08-01-04 조회 1.1만
07-12-10 조회 4,982
07-12-10 조회 3,851
07-12-04 조회 3,387
07-11-29 조회 3,564
07-11-27 조회 3,919
07-11-23 조회 4,513
07-11-23 조회 4,248
07-11-13 조회 4,376
07-10-19 조회 4,843
07-10-17 조회 5,890
07-10-03 조회 5,055
07-10-02 조회 8,819
07-10-02 조회 4,470
07-09-09 조회 3,448
07-07-29 조회 4,333
07-07-28 조회 4,554
07-07-26 조회 4,457
07-06-19 조회 1.1만
07-06-17 조회 3,620
07-06-15 조회 4,117
07-05-31 조회 3,185
07-05-09 조회 5,332
07-05-04 조회 3,184
07-05-04 조회 3,528
07-04-28 조회 6,425
07-04-26 조회 4,670
07-04-14 조회 5,315
07-04-13 조회 3,733
07-04-12 조회 5,922
07-03-27 조회 3,862
07-03-19 조회 3,563
07-03-13 조회 4,637
07-03-07 조회 4,786
07-03-07 조회 3,297
07-02-25 조회 3,657
07-02-21 조회 4,550
07-02-18 조회 5,070
07-02-12 조회 3,414
07-02-02 조회 4,537
07-01-28 조회 6,149
07-01-27 조회 5,652
07-01-25 조회 4,021
07-01-21 조회 4,651
07-01-19 조회 6,587
07-01-19 조회 8,048
07-01-13 조회 3,506
07-01-09 조회 5,153
06-12-27 조회 3,544
06-11-24 조회 3,667
06-11-18 조회 4,186
06-10-17 조회 5,505
06-10-01 조회 4,424
06-09-26 조회 4,313
06-09-25 조회 4,634
06-09-25 조회 4,339
06-09-22 조회 4,869
06-09-22 조회 3,642
06-09-22 조회 4,482
06-09-13 조회 5,303
06-08-27 조회 4,908
06-08-26 조회 6,277
06-08-26 조회 5,583
06-08-23 조회 5,083
06-07-28 조회 7,182
06-07-24 조회 4,640
06-07-23 조회 5,419
06-07-21 조회 5,177
06-07-19 조회 3,063
06-07-19 조회 2,986
06-07-11 조회 3,634
06-07-11 조회 3,923
06-07-11 조회 4,507
06-07-11 조회 4,969
06-07-11 조회 3,584
06-07-11 조회 9,208
06-07-11 조회 4,065
06-07-11 조회 3,295
06-07-11 조회 3,347
06-07-11 조회 3,285
06-07-11 조회 3,082
06-07-07 조회 4,123
06-06-25 조회 4,474
06-06-15 조회 4,470
06-06-14 조회 4,952
06-06-11 조회 3,545
06-06-10 조회 3,926
06-06-09 조회 3,508