bxm's IT Story
Zone based Firewall 방화벽(2) - 방화벽 우회와 방어 본문
## 9. DPI(Deep Packet Inspection) ##
* 전통적인 방화벽 장비는 L3/L4 정보를 기반으로 필터링을 수행한다. 그에 반해 오늘날 방화벽 장비들은 어느 정도
Application 계층 검사 혹은 제어가 가능하다.
* ZFW에서 DPI 기능을 사용하게 되면, Application 계층 Inspection 및 Control이 가능하다.
## 방화벽 우회를 해서 접속해보는 실습
SW1]
conf t
int vlan 1
ip add 100.1.1.252 255.255.255.0
no shut
no ip routing
ip default-gateway 100.1.1.254
line vty 0 4
password cisco123
login
end
wr
DMZ]
conf t
ip nat inside source static tcp 100.1.1.252 23 1.1.100.6 80
## 100.1.1.252 23 -> 1.1.100.6 80번으로 바꿔라.
int f0/1
ip nat inside
exit
int f0/0
ip nat outside
end
wr
FW]
conf t
class-map type inspect match-all WEB_SER
no match access-group 101
end
wr
## 현재 방화벽에서 Telnet을 허용하지 않았으므로, Kali에서 DMZ의 23번에 접속하려고 할 때 접속이 안된다.
그래서 1.1.100.6 80번으로 접속을 하면 NAT가 동작하면서, 100.1.1.252 23번으로 들어갈 수 있음.
(현재 80번은 허용했으므로 방화벽을 통과하는 것이 가능하다. 80번으로 변장하고나서 방화벽을 들어가자마자
변장을 벗고, 23번으로 들어간다)
## 접속 시도 ##
GNS3]
ip.addr==1.1.100.6
Kali]
telnet 1.1.100.6.80
cisco123
GNS3]
## 로그를 보면
GNS3]
ip.addr==100.1.1.252
Kali]
## 다시 Telnet 접속 시도한 후 Wireshark 봐보기
* 위와 같이 설정 후 Kali에서 [telnet 1.1.100.6 80] 명령어를 사용하면 <FW>에 Telnet이 허용되지 않음에도
불구하고, 80번 포트로 우회하여 DMZ 스위치에 Telnet 연결이 가능하다. 현재 <FW>에 Application 계층을 검사하는
DPI를 활성화 시키지 않았기 때문에 L3/L4 정보만 사용하여 Filtering을 수행하기 때문에 포트 우회가 가능하다.
## 그렇다면 이런 방화벽 우회를 막을 수 있는 방법은 무엇이 있을까 ##
* ZFW의 경우 Application을 검사하거나 제어하는 DPI 기능을 사용할 수 있다. DPI를 설정하는 방법은 다음과 같다.
1 | L7 Class-map을 생성 후 트래픽을 분류 |
2 | L7 Policy-map을 생성하여 정책을 정의. |
3 | L3/L4 Policy-map에, 위에서 정으한 L7 Policy-map을 호출. |
4 | Zone-pair에 L3/L4 Policy-map을 적용한다. |
<Ex1>
Outside에서 DMZ에 위치한 Kedu.edu 사이트에 접속하려는 트래픽이 발생되면, FW에서 log를 발생 시키세요.
또한, TCP 80번 포트를 사용하여 방화벽을 우회하려는 트래픽은 차단 후 log가 발생되도록 설정하시오.
FW]
conf t
parameter-map type regex KEDU ## KEDU라고 이름을 붙이자.
pattern .*kedu ## .으로 시작하고, 모든 파일 /kedu.edu로 접속하려는 경우에 log를 발생시켜라!
exit
class-map type inspect http L7_HTTP_C
match request header host regex KEDU ## L7 헤더를 검증할 것이고, 헤더에 .*kedu 문구가 오는 것을 분류 하겠다.
class-map type inspect http match-any L7_HTTP_C2
match request port-misuse any ## 포트를 우회하거나,
match req-resp protocol-violation ## 문법에 맞지 않는 것을 잡아내겠다.
policy-map type inspect http L7_HTTP_P
class type inspect http L7_HTTP_C
log ## log를 발생시켜라
exit
class type inspect http L7_HTTP_C2
reset ## 포트를 우회하거나 문법에 맞지 않는 것은 리셋 시켜버리고 로그 발생!
log
exit
exit
class-map type inspect http HTTP_C
match protocol http ## 어제 개고생한거 ^^
policy-map type inspect OUT->DMZ_P ## DMZ_P에다가 적용을 하고,
no class type inspect WEB_SER
class type inspect HTTP_C
inspect
service-policy http L7_HTTP_P
Kali]
telnet 1.1.100.6 80
FW]
## 지금까지 돈 안들이고 쓰는 방화벽중에 최고인 Zone based FW에 대해서 공부해보았다.
다음 시간에는 돈 주고 사용하는 방화벽 'Cisco ASA 방화벽'에 대해서 공부해보겠다.
'Network > Firewall (KEDU)' 카테고리의 다른 글
Cisco ASA 방화벽(2) - SSH, ASDM(GUI Firewall), ACL(Access Control List), Syn Flooding 방어 (2) | 2021.07.16 |
---|---|
Cisco ASA 방화벽(1) - 기본 세팅, 사용법 (0) | 2021.07.15 |
Zone based Firewall 방화벽(1) - 방화벽 세팅 (0) | 2021.07.14 |
방화벽 GNS3 (0) | 2021.07.13 |
Network] 차세대 방화벽 UTM - 방화벽의 정석 (0) | 2021.07.12 |