Skip to content

2012.01.16 15:43

Portsentry 1.1 설치하기

조회 수 15182 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

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-1.2.tar.gz

 

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

  • ?
    강서인 2013.10.25 11:25
    다운받는경로좀 자세히 알려주세요~
  • profile
    ADMINPLAY 2013.11.13 15:58
    파일첨부 하였습니다.참고 하세요

List of Articles
번호 제목 글쓴이 날짜 조회 수
88 CentOS Portsentry 1.2 소스설치 오류 ADMINPLAY 2014.01.19 7201
87 PHP 보안의 약방의 감초 open_basedir ADMINPLAY 2014.01.02 7600
» Portsentry 1.1 설치하기 2 file ADMINPLAY 2012.01.16 15182
85 [그누보드관련] $_POST 는 이미 오염된(?) 변수다. ADMINPLAY 2010.11.18 16203
84 iptables와 mod_security 연동을 통한 ip 차단 file ADMINPLAY 2010.09.15 19870
83 Modsecurity 무료 웹방화벽 설치 file ADMINPLAY 2010.09.12 24141
82 Modsecurity-apache 2.5.X 설치중 에러 server: /usr/lib/... ADMINPLAY 2010.09.12 21367
81 Modsecurity-apache 2.5.12 file ADMINPLAY 2010.09.12 18821
80 modsecurity-2.5 configure: *** apr library not found. ADMINPLAY 2010.09.12 21228
79 iptables를 이용한 SSH brute force 공격방어 l2zeo 2010.05.29 19763
78 PHP 보안관련 설정 권고사항 ADMINPLAY 2010.05.19 20307
77 php 수호신 설치 ADMINPLAY 2010.05.03 20899
76 denyhosts (ssh, ftp 등의 접근 차단) ADMINPLAY 2010.05.03 21433
75 웹어플리케이션 보안 ADMINPLAY 2010.05.03 17239
74 php.ini 보안 설정 ADMINPLAY 2010.05.03 20457
73 해킹 당했는지 알아보는 방법 ADMINPLAY 2010.05.03 20058
72 [적용] iptables 접속 차단 스크립트 ADMINPLAY 2010.05.03 26043
71 보안 체킹 프로그램 - portsentry file ADMINPLAY 2010.04.27 16256
70 /etc/passwd 구조 l2zeo 2010.03.31 35002
69 매직키를 이용한 응급복구법 l2zeo 2010.03.31 32164
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234