- Cisco는 과거 PIX라는 방화벽 장비를 판매하였다.
- 오늘날에는 PIX는 단종되었고 ASA모델을 판매하고 있다.
- ASA는 사용하는 License에 따라 지원되는 기능이 차이가 있다. (show version 명령어로 확인 가능)
네트워크 구성
- ASA장비에 Outside, DMZ, Inside 세 영역이 연결되어 있다.
- Static Routing을 통해 모든 구간을 연결하려고 한다.
방화벽 모드
- show firewall 명령어로 모드를 확인할 수 있다.
L3 방화벽 (Router 모드 / Default 동작)
- L3 방화벽 모드에서 인터페이스 설정은 Cisco 라우터와 거의 동일하다.
- nameif 명령어를 사용하여 인터페이스마다 이름을 지정해야 한다.
- security-level 명령어를 사용하여 각 인터페이스마다 Level을 설정해야 한다.
L2 방화벽 (Transport 모드)
ASA Log 관리
- 일반적인 라우터와 스위치의 경우 기본적으로 Console창에 로그가 발생되고 no logging console 명령어를 사용하여 비활성화 시키는 것이가능하다.
- ASA는 기본적으로 Console Log를 지원하지 않는다.
ASA Log 설정
<ASA> logging console <Syslog level> logging enable |
ASA Security Level
- 레벨이 높은 쪽에서 낮은 쪽 인터페이스 방향으로 전송되는 패킷은 허용된다.
- 레벨이 낮은 쪽에서 높은 쪽 인터페이스 방향으로 전송되는 패킷은 차단된다.
- 레벨이 Security level이 낮은 쪽에서 높은 쪽으로 패킷을 전송해야 하는 경우 access-list를 사용하여 관리자가 허용해야 한다.
- 기본적으로 응답 트래픽을 수신할 때 RACL(Reflexive ACL)과 유사하게 동작을 수행한다.
- Security Level이 높은 쪽에서 낮은 방향으로 트래픽을 전송하는 경우 해당 내용을 Connenction Table에 등록한다
- show conn 명령어로 확인할 수 있다.
- 정적 포트 서비스와 같은 단순한 응답 트래픽은 Connection Table 정보를 기반으로 수신이 가능하다.
- MPF(Moduler Policy Framework) 기능을 사용하여 3세대 방화벽 기술인 SPI(Stateful Packet Inspection)와 Application 계층 제어 기능인 DPI(Deep packet Inspection)등의 고급 보안 정책을 구성할 수 있다.
- 관리자가 설정하지 않아도 기본적인 Default MPF가 구성되어 있다.
- MPF의 Policy map에 동적 포트를 사용하는 서비스에 대해 inspect를 구성하면 응답 트래픽을 정상적으로 수신하는것이 가능하다.
ASAv의 기본 정책
match default-inspection-traffic
아래 나열된 모든 포트들을 match한다.
policy map에서 아래서 해당하는 프로토콜 중 원하는것만 선택하여 정책 구성을 할 수 있다.
따로 사용하고 싶은 포트를 추가할 때마다 Class map을 추가하지 않아도 되서 편리하다.
inspect dns migrated_dns_map_1
DNS는 Inspect처리를 할때 L7 Policy map에 따라 수행한다.
service-policy global_policy global
모든 인터페이스에 적용된 서비스 정책
show running-config로 확인
class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum client auto message-length maximum 512 no tcp-inspection policy-map global_policy class inspection_default inspect dns migrated_dns_map_1 inspect ftp inspect h323 h225 inspect h323 ras inspect ip-options inspect netbios inspect rsh inspect rtsp inspect skinny inspect esmtp inspect sqlnet inspect sunrpc inspect tftp inspect sip inspect xdmcp policy-map type inspect dns migrated_dns_map_2 parameters message-length maximum client auto message-length maximum 512 no tcp-inspection ! service-policy global_policy global |
|
ASA 방화벽 기본 설정
nameif Inside
인터페이스 이름이 Inside인 경우 기본적으로 Security-Level이 100으로 설정된다.
security-level 100
보안 레벨을 100으로 설정한다.
nameif Outside
인터페이스 이름이 Outside인 경우 기본적으로 Security-Level이 0으로 설정된다.
Inside를 제외한 나머지 이름들은 기본적으로 Security-Level이 0으로 설정된다.
<ASAv> conf t hostname ASAv enable password cisco123 int g 0/0 desc ##INSIDE_NETWORK## nameif Inside security-level 100 ip add 1.1.1.254 255.255.255.0 no sh ! int g 0/1 desc ##OUTSIDE_NETWORK## nameif Outside security-level 0 ip add 1.1.100.2 255.255.255.252 no sh ! int g 0/2 desc ##DMZ_NETWORK## nameif DMZ security-level 50 ip add 100.1.1.254 255.255.255.0 no sh ! |
- config 모드에서 do 명령 없이 명령어를 쓸 수 있다. (do를 쓸 수 없다)
- | (파이프) 기능을 지원하지 않지만 뒤에 키워드를 입력하면 해당하는 키워드만 출력한다.
- enable password은 암호화되어 설정되어 저장되지만 둘 다 적용했을 경우 enable secret이 적용된다.
- show int ip brief 명령어를 통해 인터페이스 정보를 확인할 수 있다.
- show nameif 명령어를 통해 인터페이스에 지정된 이름을 확인할 수 있다.
- show route 명령어를 통해 라우팅 정보를 확인할 수 있다.
- 포트 번호를 사용하지 않고 이름(Inside, Outside, DMZ)을 사용한다.
ASAv Static Routing 설정
- ip route [목적지 IP 목적지] [Subnet-mask 출구] [인터페이스 IP]를 입력하여 라우팅 처리한다.
ip Outside 0.0.0.0 0.0.0.0 1.1.100.1
default-gateway는 Outside이므로 outside로 지정 후 IP 설정을 해준다.
route Outside 0 0 1.1.100.1 명령어를 사용해도 된다.
<ASAv> conf t route inside 1.1.2.0 255.255.255.0 1.1.1.2 route Outside 0.0.0.0 0.0.0.0 1.1.100.1 |
- show running-config 명령어 확인
- show route 명령어 확인
- clear config route 명령어를 사용하면 route 관련 명령어를 모두 지울 수 있다. (인터페이스 별로 삭제할 필요가 없다.)
- clear config all 명령어를 입력하면 모든 설정을 초기화할 수 있다.
DSW, CE, ISP Router 설정 (Static Routing)
<DSW> conf t int f 0/0 ip add 1.1.1.2 255.255.255.0 no sh ! int lo 0 ip add 1.1.2.1 255.255.255.0 no sh ! ip route 0.0.0.0 0.0.0.0 f 0/0
<CE> conf t int f 0/0 ip add 1.1.100.1 255.255.255.252 no sh ! int f 0/1 ip add 1.1.100.6 255.255.255.252 no sh ! ip route 0.0.0.0 0.0.0.0 f 0/1 1.1.100.5 ip route 100.1.1.0 255.255.255.0 f 0/0 1.1.100.2 ip route 1.1.1.0 255.255.255.0 f 0/0 1.1.100.2
<ISP>
conf t int f 0/0 ip add 1.1.100.5 255.255.255.252 ip nat inside no sh ! int f 0/1 ip add dhcp ip nat outside no sh ! int f 1/0 ip add 2.2.2.254 255.255.255.0 ip nat inside no sh ! access-list 10 permit 1.1.1.0 0.0.0.255 access-list 10 permit 100.1.1.0 0.0.0.255 ip route 1.1.1.0 255.255.255.0 fa 0/0 1.1.100.6 ip route 1.1.100.0 255.255.255.252 fa 0/0 1.1.100.6 ip route 100.1.1.0 255.255.255.0 fa 0/0 1.1.100.6 |
Client 통신 확인
- WIN7_A에서 외부 웹사이트로 접근이 되는 것을 확인할 수 있다.
- Web 패킷의 이동 경로는 DNS 서버(100.1.1.250)에 먼저 접근을 하고 그 후 외부망으로 패킷이 나간다.
- WIN7_A에서 FTP 서버(100.1.1.252)에 Active 모드로 접속이 가능하다. (SPI 기본 설정)
Client ICMP Paket 확인
- ICMP 패킷이 잘 통신 되는지 확인하기 위해서 Outside 패킷과 Inside 패킷을 확인한다.
- WIN7_A에서 외부로 Ping test를 수행한다.
- ASA의 경우 Type 8(Echo Request)에 대한 응답 트래픽인 ICMP Type 0(Echo replay)를 하나의 세션으로 인식하지 못하고 차단한다.
- ASA에서 로그를 설정하면 차단된 로그를 확인할 수 있다.
- 통신이 정상적으로 이루어 지려면 Policy map의 inspect에 ICMP를 추가해 주어야 한다.
<ASA> policy-map global_policy class inspection_default inspect icmp ! |
- show running-config polict-map global_policy 명령어를 통해 확인
- WIN7_A에서 정상적으로 ICMP 패킷이 나가는 것을 확인할 수 있다.
- MPF에서 Inspect 처리가 된 프로토콜의 경우도 Security Level이 높은 쪽에서 낮은 방향으로 전송되는 경우에만 SPI 처리가 가능하다.
- Security Level이 낮은쪽에서 높은 방향으로 전송하고자 하는 경우에는 MPF에서 inspect 처리가 되어 있는 상황일지라도 반드시 관리자가 Access-list를 사용하여 접근을 허용해야만 inspect 처리가 가능하다.
- Kali Linux(Outside)에서 DNS 서버(DMZ)로 Ping test를 하면 ICMP 패킷이 이동하지 않는다.
Kali Linux 외부통신 확인
- /etc/resolv.conf를 확인해보면 DMZ 안에있는 DNS 서버로 설정되있다.
- Outside(0)에서는 DMZ(50)으로 패킷이동이 불가능 하므로 외부망과 통신이 되지 않는다.
'Network > Cisco ASA' 카테고리의 다른 글
[Firewall] ASA Twice NAT(Manual NAT) (0) | 2019.11.29 |
---|---|
[Firewall] ASA Packet-tracer Test (0) | 2019.11.27 |
[Firewall] ASA Object / Object Group 설정 (0) | 2019.11.26 |
[Firewall] ASA 접속 방식 (0) | 2019.11.26 |
[Firewall] ASA Access-Control (0) | 2019.11.26 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊