오래전 이야기/Security

PIX Firewall Configuration #1

리눅스 엔지니어였던 2008. 9. 15. 18:01
이 글은 네트웍 엔지니어가 PIX 방화벽을 보다 쉽게 설치하기 위해 작성한 안내서이
다. 일반적으로 회사(기관)에서 방화벽을 구매하는 이유는 네트웍 보안 요구사항을 충
족하기 위해서 이다. 따라서 이 글은 네트웍 보안 요구사항을 PIX 방화벽을 통해서 어
떻게 구현할 것인가를 설명하도록 한다.

네트웍 보안을 위한 첫번째 단계 : 보안 정책 Security Policy 수립

네트웍에서 PIX 방화벽을 효과적으로 이용하려면, 우선 PIX 방화벽을 통해서 어떤
traffic이 허용하고 막을지를 결정하는 보안 정책 Security Policy을 세워야 한다. 보
안 정책이란 보다 구체적으로 회사 내부의 네트웍 자원을 누구에게 허용하고, 어떤 네
트웍 자원을 허용할 지를 결정하게 된다. 네트웍 보안 정책에 관한 자세한 안내는 아
래의 자료를 참고하기 바란다.

http://www.cisco.com/univercd/cc/td/doc/product/iaabu/pix/pix_v4/pixcfg/pixcnint
.htm#xtocid254855

네트웍 구조와 PIX 방화벽

Private Internet Exchange (PIX) 방화벽이 올바르게 설치되었다면, 외부의 네트웍에
서 내부의 네트웍으로 허용되지 않는 접속을 차단하게 된다. PIX 방화벽을 통해서 보
호하게 되는 네트웍을 내부 네트웍inside network이라고 하고 접속이 통제 받는 네트
웍을 외부 네트웍 outside network이라고 한다. PIX 방화벽은 다양한 주변 네트웍을
형성할 수 있는데, 대표적인 것이 Demilitarized Zone (DMZ)이다. 따라서 PIX 방화벽
의 기능은 DMZ, 내부 네트웍, 외부 네트웍간의 모든 네트웍 접속을 통제하는 역할을
수행하게 된다.

그림 1은 PIX 방화벽이 인터넷에서 들어오는 트래픽으로부터 내부의 네트웍을 어떻게
보호하는 지를 보여준다.

그림 1. 네트웍에서 PIX 방화벽


이런 구조에서 PIX 방화벽은 내부 네트웍과 외부 네트웍(DMZ 을 포함해서)의 경계에
위치하게 된다. 내부 네트웍과 외부 네트웍간의 모든 트래픽은 보안 기능을 수행하기
위해서 반드시 PIX 방화벽을 거치게 된다. 외부 네트웍은 일반적으로 인터넷을 통해
서비스를 제공하는 시스템들이 위치한다. 이러한 서비스들을 제공하는 것은 웹 서버,
FTP 서버, 메일 서버등이 있다. 이러한 응용프로그램 서버들로의 접근은 인터넷 접속
Router에서 Access List를 사용하여 접근을 컨트롤할 수 있다.
다른 방법으로, 그림 1에 나타낸 것과 같이 여러 서버들을 DMZ에 위치하도록 할 수 있
다. 그러면 PIX 방화벽은 이런 서버들로 접근을 계속 모니터링하고 조절할 수 있다.
또한 PIX 방화벽은 회사의 보안 정책에 따라 내부 네트웍으로의 모든 트래픽을 조절
할 수 있다.

일반적으로 내부 네트웍은 회사의 고유한 내부 네트웍, 즉 인트라넷, 이며 외부 네트
웍은 인터넷이 된다. 또한 PIX 방화벽은 이러한 회사 내부의 자원을 분리해서 다른 사
용자들로부터 특정 그룹의 컴퓨터 시스템을 보호할 수 있다. DMZ을 만듦으로서 보다
다양한 보안 수준을 갖는 영역을 형성할 수 있게 된다. PIX의 각 interface들은
Routing Information Protocol(RIP) routing update를 받아들이고 RIP default route
정보를 브로드케스트할 수 있다.

이 문서의 구조

이 문서는 당사에서 구축한 PIX 방화벽의 예를 보여준다. 각 PIX 방화벽의
configuration은 다음과 같은 포맷을 구성되어 있다.

- 네트웍 보안 요구 사항
- 특정 네트웍의 운영 예제와 필요 사항
- 네트웍 구성도
- 네트웍 요구사항에 따른 configuration. 특정 요구사항과 관련된 부분은 굵은체로
나타내었다.
- 요구 사항을 적용하기 위한 명령어에 대한 논의

아래는 일반적으로 구현되는 PIX 방화벽의 예이다. 특정 사례에 대해서 살펴보기 전
에 PIX 방화벽의 일반적인 기능 구현에 대해 살펴보도록 하자.


Basic PIX Firewall Configuration

네트웍 보안 요구 사항


- 내부의 네트웍 단말들은 DMZ과 인터넷(외부 네트웍)을 사용할수 있어야 한다.
- DMZ의 단말은 인터넷을 사용할 수 있지만, 내부 네트웍으로 접근은 금지한다.
- DMZ안에 있는 호스트 A(192.150.50.9, 사설 IP address는 192.168.0.2)은 World
Wide Web 서비스를 제공한다.
- 내부 네트웍의 호스트B (192.150.50.7, 사설 IP address는 10.0.0.99)은 인터넷 메
일 서비스를 제공한다.

그림 2. 네트웍 구성도 – 기본 설정


Configuration Code Snapshot

pixfirewall(config)# write terminal
Building configuration...
: Saved
:
PIX Version 4.2(0)205 Beta
nameif ethernet0 outside security0
nameif ethernet1 inside security100
nameif ethernet2 dmz security50
enable password 8Ry2YjIyt7RRXU24 encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
hostname pixfirewall

fixup protocol ftp 21
fixup protocol http 80
fixup protocol h323 1720
fixup protocol rsh 514
fixup protocol smtp 25
fixup protocol sqlnet 1521
no failover
failover ip address outside 0.0.0.0
failover ip address inside 0.0.0.0
names
pager lines 24
syslog output 20.7

no syslog console
syslog host inside 10.0.0.100
interface ethernet0 auto

interface ethernet1 auto
interface ethernet2 auto
ip address outside 192.150.50.3 255.255.255.0
ip address inside 10.0.0.3 255.0.0.0
ip address dmz 192.168.0.1 255.255.255.0
arp timeout 14400
global (outside) 1 192.150.50.10-192.150.50.252 netmask 255.255.255.0
nat (inside) 1 10.0.0.0 255.0.0.0 0 0
nat (dmz) 1 192.168.0.0 255.255.255.0 0 0

static (dmz,outside) 192.150.50.9 192.168.0.2 netmask 255.255.255.255 0 0
static (inside,outside) 192.150.50.7 10.0.0.99 netmask 255.255.255.255 10 40
static (inside,dmz) 10.0.0.0 10.0.0.0 netmask 255.0.0.0 0 0
conduit permit tcp host 192.150.50.9 eq www any
conduit permit tcp host 192.150.50.7 eq smtp any
conduit permit icmp host 192.150.50.7 any
age 10
no rip outside passive
no rip outside default
no rip inside passive
no rip inside default
no rip dmz passive
no rip dmz default
route outside 0.0.0.0 0.0.0.0 192.150.50.1 1
timeout xlate 24:00:00 conn 12:00:00 udp 0:02:00
timeout rpc 0:10:00 h323 0:05:00 uauth 0:05:00
snmp-server host outside 0.0.0.0
no snmp-server location
no snmp-server contact
snmp-server community public
snmp-server syslog disable
snmp-server log_level 5
mtu outside 1500
mtu inside 1500
mtu dmz 1500
Cryptochecksum:921ac2a721ef50f3109ebe7ee03fb2cb
: end
[OK]
pixfirewall(config)#

요구사항 구현

nameif ethernet0 outside security0

첫번째 이더넷 카드 (전원으로부터 첫번째 이더넷 카드)는 외부 영역이라고 명명한
다. 이 interface에 접속되어 있는 네트웍은 외부에 해커에 노출된 곳이다. 따라서 보
안 레벨을 0으로 설정한다.

nameif ethernet1 inside security100
두번째 이더넷 카드 (전원으로부터 두번째 이더넷 카드)는 내부 영역이라고 명명한
다. 이 interface에 접속되어 있는 네트웍은 보다 안전한 곳이다. 따라서 보안 레벨
을 100으로 설정한다.

nameif ethernet2 dmz security50
세번째 이더넷 카드 (전원으로부터 세번째 이더넷 카드)는 DMZ 영역이라고 명명한다.
이 interface에 접속되어 있는 네트웍은 외부 네트웍보다는 안전하지만 내부 네트웍보
다는 덜 안전한다. 따라서 보안 레벨을 50으로 설정한다.

enable password 8Ry2YjIyt7RRXU24 encrypted
Enable password를 설정한다.

passwd 2KFQnbNIdI.2KYOU encrypted
Telnet password을 설정한다.

hostname pixfirewall
PIX 방화벽의 이름을 "pixfirewall"로 설정한다.

fixup protocol smtp 25
PIX 방화벽은 여러 가지 위험 요소들을 막는다.(SMTP 명령어. fixup 명령어는 내부 네
트웍으로 들어오는 패킷중에 목적지 소스 포트가 25일 경우 SMTP security를 수행한
다. 이것은 default 로 설정되어있다.

no failover
Failover기능을 사용하지 않는다.

names
IP address와 영문자 이름을 일치시킨다. IP host와 같은 기능을 수행하는 명령어이
다.

pager lines 24
이 명령어는 Console이나 Telnet에서 디스플레이되는 라인의 길이를 설정하는 명령어
이다.

syslog output 20.7
모든 메시지를 syslog server로 보내도록 한다. 이 메시지를 PIX에서 발생하는 환경
정보, 에러 메서지, 경고, 디버그 메시지등을 담고 있다.

syslog host inside 10.0.0.100
syslog server의 IP address를 10.0.0.100으로 설정. 이 서버는 내부 네트웍에 위치한
다.

interface ethernet0 auto
첫번째 네트웍 interface의 속도와 duplex mode를 자동으로 인식하고 설정한다.

ip address outside 192.150.50.3 255.255.255.0
PIX 방화벽의 외부 interface의 ip address를 192.150.50.3 (class C)로 설정한다.

arp timeout 14400
캐시로 저장된 arp 항목을 14400초 동안 유지한다.

global (outside) 1 192.150.50.10-192.150.50.252 netmask 255.255.255.0
Global pool을 생성하고 global pool의 값을 1로 할당한다. 위의 경우, 글로벌 풀은
243개의 IP address를 갖는다. 이 address는 Network Address Translations에 의해서
할당된 것이다.

nat (inside) 1 10.0.0.0 255.0.0.0 0 0
nat (inside) 명령어는 내부 네트웍의 클라이언트와 DMZ과 인터넷 영역의 서버간의
IP 통신을 가능하게 한다. 내부 네트웍의 호스트에서 인터넷의 호스트와 통신하기 위
해서 내보낸 패킷이 PIX를 통과하게 되는데, 패킷의 Source Address의 IP address부분
이 10으로 설정되어 있으면 이것을 Global pool 값 1에 있는 IP address로 바꾸도록
설정하는 것이다.

nat (dmz) 1 192.168.0.0 255.255.255.0 0 0
nat (inside) 명령어는 DMZ 네트웍의 단말과 인터넷 영역의 서버간의 IP 통신을 가능
하게 한다. DMZ 네트웍의 호스트가 인터넷의 호스트와 통신하기 위해서 내보낸 패킷
이 PIX를 경유하게 되는데, 이때 패킷의 Source Address의 IP address부분이
192.168.0으로 설정되어 있으면 이것을 Global pool 1에 있는 IP address로 바꾸도록
설정하는 것이다.

static (dmz,outside) 192.150.50.9 192.168.0.2 netmask 255.255.255.255 0 0
DMZ 네트웍의 호스트(192.168.0.2)가 인터넷의 호스트와 통신을 하고자 할때, DMZ의
네트웍 호스트에서 인터넷으로 나가는 패킷의 Source Address를 192.150.50.9로 바꾸
도록 한다. 이 address는 공인 어드레스이다. 이것은 역의 경우에도 동일하게 적용된
다. 즉 외부 인터넷의 호스트가 통신을 시도할 때에도 역시 192.150.50.9를
192.168.0.2로 바꾸게 된다. 따라서 IP address 192.150.50.9는 다른 호스트에서 사용
하지 못한다.

static (inside,dmz) 10.0.0.0 10.0.0.0 netmask 255.0.0.0 0 0
이것은 내부 네트웍의 패킷이 DMZ 네트웍으로 전송되도록 하는 netstatic 명령어이다.

conduit permit tcp host 192.150.50.9 eq www any
이것은 DMZ 네트웍의 192.168.0.2 서버에 HTTP 프로토콜을 쓰는 패킷만 접근을 허용하
는 명령이다. (주의할 점은 이 명령이 정상적으로 작동하려면 static (dmz,outside)
192.150.50.9 192.168.0.2 netmask 255.255.255.255 0 0 명령과 같이 사용해야만 한
다.)

conduit permit tcp host 192.150.50.7 eq smtp any
외부 네트웍에서 내부 네트웍의 메일 서버(10.0.0.99)로 SMTP (mail)패킷 전송을 받아
들인다.

route outside 0.0.0.0 0.0.0.0 192.150.50.1 1
이 네트웍의 default 경로는 192.150.50.1로 설정한다. (이 address는 Internet
router의 IP address이다.)


 

===============================

<출처: http://blog.naver.com/jabusunin?Redirect=Log&logNo=30002313357 >