웹마스터 팁

portsentry는 누군가 내 새스템에 열려 있는 포트가 있는가 스캔을 검사하는 프로그램으로 해킹 방어용 툴 입니다. 누가 내 시스템을 스캔했는지 IP를 검사하고 공격시 정해진 방법으로 방어를 하며, tcpwrapper에서 IP를 원천 차단하도록 막아주는 기능, 공격자를 내 e-mail계정으로 알람 해주는 기능 등이 있습니다.

또 스캔 공격을 받았을시 외부 스크립트나 binary 프로그램을 실행하는 기능도 있습니다. 따라서 잘 이용하면 자동 역 공격도 가능 하겠습니다만, 권하고싶지는 않습니다.

rpm 버전으로 했을 경우 설치는 매우 쉽습니다. 단, .conf 파일등은 잘 살펴보아두어야 어떤 메커니즘으로 동작 하는지를 알 수 있겠습니다.

1. 설치
2. /etc/poresentry/ 의 conf 파일들
3. 테스트

( ** 레드햇 계열은(레드햇 8.0도)기본으로 sunproc 라는 rpc 용 포트가 열려 있습니다.  rpc 관련된 부분은 취약점이 많으므로 사용하지 않으면 내려 놓는게 좋습니다. portmap을 내리면 됩니다. )

1. 설치
설치는 rpm으로 했습니다. ( www.psonic.com 에서 최신 베타 2.10은 src는 어떤이유에선가 컴파일은 되는데 동작을 안하더군요. )

사용 환경 : 레드햇 리눅스 8.0 서버

1)http://www.rpmfind.net   에서 portsentry로 (search)검색을 해서 다운 로드를 받습니다.
  저는 portsentry-1.1-fr7.i386.rpm을 다운 받았습니다.

2) rpm을 풉니다.
[root@ibsis root]# rpm -Uvh portsentry-1.1-fr7.i386.rpm
경고: portsentry-1.1-fr7.i386.rpm: V3 DSA signature: NOKEY, key ID e42d547b
준비 중...                  ########################################### [100%]
   1:portsentry             ########################################### [100%]

**. 의존성 관계로 설치가 안될때는 그 의존성이 있는 rpm을 먼저 설치해 주어야 합니다.이부분이 좀 까다 롭습니다. 계속 의존성 rpm을 요구하는데 어디 속해있는지 찾기 힘들 때 ..

3) 잘 설치되었는가 확인 합니다.
[root@ibsis root]# rpm -ql portsentry
/etc/cron.d/portsentry
/etc/init.d/portsentry
/etc/portsentry
/etc/portsentry/portsentry.conf
/etc/portsentry/portsentry.ignore
/etc/portsentry/portsentry.modes
/usr/sbin/portsentry
/usr/share/doc/portsentry-1.1
/usr/share/doc/portsentry-1.1/CHANGES
/usr/share/doc/portsentry-1.1/CREDITS
/usr/share/doc/portsentry-1.1/LICENSE
/usr/share/doc/portsentry-1.1/README.COMPAT
/usr/share/doc/portsentry-1.1/README.install
/usr/share/doc/portsentry-1.1/README.methods
/usr/share/doc/portsentry-1.1/README.stealth
/var/portsentry

4) 실행을 시켜 봅니다.
[root@ibsis root]# portsentry
Psionic PortSentry - Port Scan Detector.
Copyright 1997-2000 Psionic Software, Inc. help@psionic.com>
Licensing restrictions apply. Please see documentation
Version: 1.1

usage: portsentry [-tcp -udp -stcp -atcp -sudp -audp]

*** PLEASE READ THE DOCS BEFORE USING ***

옵션을 안주고 그냥 치면 당연히(?) 아무것도 실행이 안됩니다.

4) 옵션을 주어야 실행 되는 것을 알 수 있습니다.  tcp , udp 포트만 검색하도록 해 보겠습니다. 나머지 -stcp -atcp -sudp -audp 도 각각 실행 시켜 주면 됩니다.
[root@ibsis root]# portsentry -tcp
[root@ibsis root]# portsentry -udp

# view /var/log/message  해서 실행을 확인 합니다.

2. 설정
/etc/portsentry 에 설정 파일 및 관련된 파일이 들어 갑니다.

/etc/portsentry/portsentry.conf 는 기본값으로 써도 되지만 다양한 설정이 가능 합니다. 기본값으로는 iptable을 이용해서 아래처럼 막아지게 되어 있습니다.
/sbin/iptables -I INPUT -s $TARGET$ -j DROP

.conf를 바꾸어서 이를 tcpwrapper 에 넘겨주어서 /etc/hosts.deny 에 IP를 등록하여 영구적으로 해당  IP를 차단 할수도 있습니다. 또 공격된 로그를 내 메일계정으로 e-mail을 보내게도 할수 있습니다.

/etc/portsentry/portsentry.ignore 에는 블록시키지 말아야할 기본 IP ( 내 로칼 IP, DNS,Gateway 등 ) 이 들어 갑니다.

3. 테스트
portsentry 가 설정된 서버에 다른 서버에서 nmap ( 레드햇 8.0 서버에 기본설치 됩니다.)으로 테스트를 해 봅니다.
# nmap xxx.xxx.xxx.xxx
# nmap -sS -O pP0 xxx.xxx.xxx.xxx

/var/log/message 에 보면 로그가 되고 차단 메시지가 나옵니다.
/etc/portsentry.패킷.   해당 파일에 공격한  IP가 기록되는 것을 알 수 있습니다.

1) 설치가 되면 portsentry는 crond 에 6시간 마다 재실행 되도록 등록 되며, 시스템서비스에도 실행하도록 등록 됩니다. # setup 이나 #natsysv 로 확인해보면 알수 있습니다.
즉 기본값에서 차단한  IP는 6시간 마다풀립니다. 따라서 공격한 IP를 영구히 막으려면 tcpwrapper 설정을 해 주어야 합니다.

2) nmap 등으로 테스트하다 테스트한 서버의 IP가 막혔을 경우, 해당 블록 방법(iptables 등)을 찾아서 풀어 줘야 합니다.
제목 글쓴이 날짜
cron과 rsync 그리고 replication 을 이용한 데이터 백업 [3] 최종우 2002.12.03
cron을 이용한 자동 백업 받기 최종우 2002.12.02
리눅스 보안 : 기초적인 방화벽 : portsentry 설치하기 [2] 정인배 2002.11.29
[FreeBSD] qmail+mysql+vpopmail+qmailadmin 설치 [1] DeX™ 2002.11.26
[FreeBSD] bind를 몰아낼 djbdns 설치하기 [5] DeX™ 2002.11.26
Apache + PHP + Mysql확실한 연동 및 리눅스 재설치 정보 [2] file 최종우 2002.11.26
리눅스 mysql 사용자 계정주기/삭제하기 [4] 정인배 2002.11.22
리눅스 서버를 구축해 보자! #2 [5] 꼬토 2002.11.22
리눅스 서버를 구축해 보자! #1 [11] 꼬토 2002.11.21
리눅스(레드헷8.0 배포판 기준) 처음 설치하시는 분들을 위한 apm 초간단 팁 [8] 김종환 2002.11.17
리눅스 시스템관리 고급 명령어 정인배 2002.11.16
ab 를 이용한 간편한 아파치 성능 측정 [2] 정인배 2002.11.15
윈xp pro 를 net 서버로 바꾸기 [7] file 정회철 2002.11.13
[Lindox] 설치 강좌 쓸때 유용한 명령어 [4] NeSTY♨™ 2002.11.05
[기초] 퍼미션 값에 대해서 [4] NeST™y 2002.11.05
[Lindox] 실수로 기본 명령어삭제시 강제 복구하기 NeSTY♨™ 2002.11.05
[Lindox] 가상콘솔 줄여서 메모리 절약하기.. NeSTY♨™ 2002.11.05
[기초]커널 2.4.x, quota 셋팅법 NeST™y 2002.11.05
사용자 자동 등록 쉘스크립트 [1] 편리 2002.11.05
OpenBSD3.2 설치가이드 - 완결 [3] pravda 2002.11.02