웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
리눅스 보안 : 기초적인 방화벽 : portsentry 설치하기
2002.11.29 20:40
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 등)을 찾아서 풀어 줘야 합니다.
또 스캔 공격을 받았을시 외부 스크립트나 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 등)을 찾아서 풀어 줘야 합니다.
댓글 2
-
정인배
2002.11.30 17:06
-
정인배
2002.11.30 17:17
문제가 되는 부분은 아래 입니다. 아래의 포트중에서 시스템에서 사용안하면 portsentry 가 대신 그포트를 열고 있습니다.
따라서 nmap 으로 확인하면 포트가 열린것으로 보이는 문제점이 있습니다. 그냥 # 으로 콤멘트 해두는게 좋을것 같습니다.
# Use these if you just want to be aware:
#TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320"
#UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321"
제목 | 글쓴이 | 날짜 |
---|---|---|
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] | 최종우 | 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] | 정회철 | 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 |
관련된 부분이 숙지되면 .conf 파일을 손대시기 바랍니다. 헷갈리게 해드린것 같아서 죄송 합니다.