이 문서에서는 두 내부 네트워크를 사용하기 위해 소프트웨어 버전 9.x를 실행하는 Cisco ASA(Adaptive Security Appliance)를 구성하는 방법에 대해 설명합니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서의 정보는 소프트웨어 버전 9.x를 실행하는 Cisco ASA를 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 규칙을 참조하십시오.
ASA 방화벽 뒤에 두 번째 내부 네트워크를 추가할 때 다음 중요한 정보를 고려하십시오.
ASA를 구성하려면 이 섹션에 설명된 정보를 사용합니다.
다음은 이 문서의 예제에 사용되는 토폴로지입니다.
Cisco 디바이스에서 write terminal 명령의 출력이 있는 경우 Output Interpreter 툴(등록된 고객만 해당)을 사용하여 잠재적인 문제 및 수정 사항을 표시할 수 있습니다.
다음은 소프트웨어 버전 9.x를 실행하는 ASA의 컨피그레이션입니다.
ASA Version 9.3(2)
!
hostname ASA
enable password 8Ry2YjIyt7RRXU24 encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
names
!
!--- This is the configuration for the outside interface.
!
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 203.0.113.2 255.255.255.0
!--- This is the configuration for the inside interface.
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
boot system disk0:/asa932-smp-k8.bin
!--- This creates an object called OBJ_GENERIC_ALL.
!--- Any host IP address that does not already match another configured
!--- object will get PAT to the outside interface IP address
!--- on the ASA (or 10.1.5.1), for Internet-bound traffic.
object network OBJ_GENERIC_ALL
subnet 0.0.0.0 0.0.0.0
nat (inside,outside) dynamic interface
!
route inside 192.168.1.0 255.255.255.0 192.168.0.254 1
route outside 0.0.0.0 0.0.0.0 203.0.113.1
timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute
timeout tcp-proxy-reassembly 0:01:00
dynamic-access-policy-record DfltAccessPolicy
http server enable
http 192.168.0.0 255.255.254.0 inside
no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
crypto ipsec security-association lifetime seconds 28800
crypto ipsec security-association lifetime kilobytes 4608000
telnet timeout 5
ssh timeout 5
console timeout 0
threat-detection basic-threat
threat-detection statistics access-list
no threat-detection statistics tcp-intercept
!
class-map inspection_default
match default-inspection-traffic
!
!
policy-map type inspect dns preset_dns_map
parameters
message-length maximum client auto
message-length maximum 512
policy-map global_policy
class inspection_default
inspect dns preset_dns_map
inspect ftp
inspect h323 h225
inspect h323 ras
inspect rsh
inspect rtsp
inspect esmtp
inspect sqlnet
inspect skinny
inspect sunrpc
inspect xdmcp
inspect sip
inspect netbios
inspect tftp
inspect ip-options
!
service-policy global_policy global
prompt hostname context
Cryptochecksum:6fffbd3dc9cb863fd71c71244a0ecc5f
: end
내부 호스트가 번역을 위해 단일 공용 주소를 공유하도록 하려면 PAT(Port Address Translation)를 사용합니다. 가장 간단한 PAT 컨피그레이션 중 하나는 모든 내부 호스트를 변환하여 외부 인터페이스 IP로 보이도록 합니다.이는 ISP에서 사용할 수 있는 라우팅 가능한 IP 주소 수가 몇 개 또는 한 개로 제한될 때 사용되는 일반적인 PAT 컨피그레이션입니다.
내부 호스트가 PAT를 사용하여 외부 네트워크에 액세스할 수 있도록 하려면 다음 단계를 완료합니다.
다음은 라우터 B의 컨피그레이션입니다.
Building configuration...
Current configuration:
!
version 12.4
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router B
!
!
username cisco password 0 cisco
!
!
!
!
ip subnet-zero
ip domain-name cisco.com
!
isdn voice-call-failure 0
!
!
interface Ethernet0/0
ip address 192.168.1.1 255.255.255.0
no ip directed-broadcast
!
interface Ethernet0/1
!--- This assigns an IP address to the ASA-facing Ethernet interface.
ip address 192.168.0.254 255.255.255.0
no ip directed-broadcast
ip classless
!--- This route instructs the inside router to forward all of the
!--- non-local packets to the ASA.
ip route 0.0.0.0 0.0.0.0 192.168.0.1
no ip http server
!
!
line con 0
exec-timeout 0 0
length 0
transport input none
line aux 0
line vty 0 4
password ww
login
!
end
컨피그레이션이 제대로 작동하는지 확인하기 위해 웹 브라우저를 통해 HTTP를 통해 웹 사이트에 액세스합니다.
이 예에서는 IP 주소 198.51.100.100에서 호스팅되는 사이트를 사용합니다. 연결이 성공하면 다음 섹션에 제공된 출력을 ASA CLI에서 볼 수 있습니다.
연결을 확인하려면 show connection address 명령을 입력합니다.
ASA(config)# show connection address 172.16.11.5
6 in use, 98 most used
TCP outside 198.51.100.100:80 inside 192.168.1.5:58799, idle 0:00:06, bytes 937,
flags UIO
ASA는 스테이트풀 방화벽이며, 방화벽 연결 테이블의 연결과 일치하기 때문에 웹 서버의 반환 트래픽이 방화벽을 통해 다시 허용됩니다.존재하는 연결과 일치하는 트래픽은 인터페이스 ACL(Access Control List)에 의해 차단되지 않고 방화벽을 통해 허용됩니다.
이전 출력에서 내부 인터페이스의 클라이언트는 외부 인터페이스의 198.51.100.100 호스트에 대한 연결을 설정했습니다.이 연결은 TCP 프로토콜로 이루어지며 6초 동안 유휴 상태가 되었습니다.연결 플래그는 이 연결의 현재 상태를 나타냅니다.
컨피그레이션 문제를 해결하려면 이 섹션에 설명된 정보를 사용하십시오.
syslogs를 보려면 show log 명령을 입력합니다.
ASA(config)# show log | in 192.168.1.5
Apr 27 2014 11:31:23: %ASA-6-305011: Built dynamic TCP translation from inside:
192.168.1.5/58799 to outside:203.0.113.2/58799
Apr 27 2014 11:31:23: %ASA-6-302013: Built outbound TCP connection 2921 for outside:
198.51.100.100/80 (198.51.100.100/80) to inside:192.168.1.5/58799 (203.0.113.2/58799)
ASA 방화벽은 정상 작동 중에 syslog를 생성합니다.syslogs는 로깅 컨피그레이션을 기반으로 자세한 범위를 제공합니다.출력은 레벨 6 또는 정보 레벨에서 보이는 두 개의 syslog를 표시합니다.
이 예에서는 두 개의 syslog가 생성됩니다.첫 번째는 방화벽이 변환을 구축했음을 나타내는 로그 메시지입니다.특히 PAT(Dynamic TCP Translation)입니다. 트래픽이 내부에서 외부 인터페이스로 이동하는 동안 소스 IP 주소 및 포트, 변환된 IP 주소 및 포트를 나타냅니다.
두 번째 syslog는 방화벽이 클라이언트와 서버 간의 이 특정 트래픽에 대한 연결 테이블에 연결을 구축했음을 나타냅니다.이 연결 시도를 차단하도록 방화벽이 구성되었거나 이 연결의 생성을 방해하는 다른 요인(리소스 제약 조건 또는 컨피그레이션 오류 가능성)인 경우 방화벽은 연결이 구축되었음을 나타내는 로그를 생성하지 않습니다.대신 연결이 거부되는 이유 또는 연결을 만드는 것을 방해하는 요인에 대한 표시를 기록합니다.
패킷 추적기 기능을 활성화하려면 다음 명령을 입력합니다.
ASA(config)# packet-tracer input inside tcp 192.168.1.5 1234 198.51.100.100 80
--Omitted--
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
ASA의 패킷 추적기 기능을 사용하면 시뮬레이션된 패킷을 지정하고, 방화벽이 트래픽을 처리할 때 완료하는 다양한 단계, 검사 및 기능을 모두 볼 수 있습니다.이 툴을 사용하면 방화벽을 통과하도록 허용되어야 한다고 생각하는 트래픽의 예를 식별하고, 트래픽을 시뮬레이션하기 위해 5-튜플을 사용하는 것이 좋습니다.이전 예에서 패킷 추적기는 다음 조건을 충족하는 연결 시도를 시뮬레이션하기 위해 사용됩니다.
명령에 외부 인터페이스에 대한 언급이 없습니다.이는 패킷 추적기 설계 때문입니다.이 툴은 방화벽이 어떤 유형의 연결 시도를 어떻게 처리하는지, 여기에는 라우팅 방법과 어떤 인터페이스 밖으로 처리되는지 알려줍니다.
캡처를 적용하려면 다음 명령을 입력합니다.
ASA# capture capin interface inside match tcp host 192.168.1.5 host 198.51.100.100
ASA# capture capout interface outside match tcp any host 198.51.100.100
ASA#show capture capin
3 packets captured
1: 11:31:23.432655 192.168.1.5.58799 > 198.51.100.100.80: S 780523448:
780523448(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK>
2: 11:31:23.712518 198.51.100.100.80 > 192.168.1.5.58799: S 2123396067:
2123396067(0) ack 780523449 win 8192 <mss 1024,nop,nop,sackOK,nop,wscale 8>
3: 11:31:23.712884 192.168.1.5.58799 > 198.51.100.100.80: . ack 2123396068
win 32768
ASA#show capture capout
3 packets captured
1: 11:31:23.432869 203.0.113.2.58799 > 198.51.100.100.80: S 1633080465:
1633080465(0) win 8192 <mss 1380,nop,wscale 2,nop,nop,sackOK>
2: 11:31:23.712472 198.51.100.100.80 > 203.0.113.2.58799: S 95714629:
95714629(0) ack 1633080466 win 8192 <mss 1024,nop,nop,sackOK,nop,wscale 8>
3: 11:31:23.712914 203.0.113.2.58799 > 198.51.100.100.80: . ack 95714630
win 32768/pre>
ASA 방화벽은 인터페이스를 드나드는 트래픽을 캡처할 수 있습니다.이 캡처 기능은 트래픽이 방화벽에 도달하는지 또는 방화벽에서 출발하는지 확실하게 확인할 수 있으므로 환상적인 기능입니다.위의 예에서는 내부 및 외부 인터페이스에서 capin 및 capout이라는 두 캡처의 컨피그레이션을 각각 보여줍니다.capture 명령은 match 키워드를 사용하며, 이를 통해 캡처할 트래픽을 지정할 수 있습니다.
capin 캡처 예의 경우 tcp 호스트 192.168.1.5 호스트 198.51.100.100과 일치하는 내부 인터페이스(인그레스 또는 이그레스)에 표시되는 트래픽을 매칭하고자 합니다. 즉, 호스트 192.168.1.5에서 호스트1998.01.501.550001호스트호스트에서 전송되는 모든 TCP 트래픽을 캡처하고자 합니다1.1.1.1.1.1.11111.1111101101100111111111 0.100 또는 그 반대입니다.match 키워드를 사용하면 방화벽에서 해당 트래픽을 양방향으로 캡처할 수 있습니다.외부 인터페이스에 대해 정의된 capture 명령은 방화벽이 해당 클라이언트 IP 주소에서 PAT를 수행하기 때문에 내부 클라이언트 IP 주소를 참조하지 않습니다.따라서 해당 클라이언트 IP 주소와 일치시킬 수 없습니다.대신 이 예에서는 any를 사용하여 가능한 모든 IP 주소가 해당 조건과 일치함을 나타냅니다.
캡처를 구성한 후 다시 연결을 설정하고 show capture<capture_name> 명령을 사용하여 캡처를 볼 수 있습니다.이 예에서는 클라이언트가 캡처에서 볼 수 있는 TCP 3-way 핸드셰이크에 의해 분명하게 나타나듯이 서버에 연결할 수 있음을 확인할 수 있습니다.