네트워커의 보안 티스토리

MPF (Modular Policy Framework)


방화벽 주소와 번호를 이용한 간단한 트래픽과 IP port 제어는 ACL로 가능하다.

하지만 응용 계층 트래픽 제어처럼 복잡한 작업은 MPF(모듈화된 보안 정책 설정)를 사용한다.




MPF를 이용한 작업


Application 계층의 제어

Qos(폴리싱, 셰이핑, 큐잉)

TCP normalization(정상화), TCP/uDP 접속 수 제한, time-out 제어, TCP 순서번호 무작위화

Network 계층 제어





라우팅은 ospf로


라우터는 wild mask 쓰지만 ASA는 subnet mask 사용한다.


#R1

router ospf 1

network 1.1.1.1 0.0.0.0 area 0

network 10.10.10.1 0.0.0.0 area 0

network 10.1.1.254 0.0.0.0 area 0



#R2

router ospf 1

network 2.2.2.2 0.0.0.0 area 0

network 20.1.1.2 0.0.0.0 area 0

network 4.4.4.254 0.0.0.0 area 0


#ASA

router ospf 1

network 20.1.1.1 255.255.255.255 area 0

network 10.10.10.254 255.255.255.255 area 0

exit


이 후 xp에서 ASA inside 쪽으로

백트랙에서 ASA outside 쪽으로 핑





security level 별도 설정이 없는 상황에서 여기까지 ospf 가 잘됐는지 확인이 가능.






< ASA 장비에서 sh run 한 상황>


classmap 은 어떤 트래픽인지 정의 하는 것이다. 쉽게 말해 트래픽 분류


policy map은  정책.


inspect 뒤에 프로토콜 이름이 있는데 그 프로토콜을 추적하고 동적인 것도 따라 동적으로 적용시켜준다.  예를 들어 ftp 데이터 전송에 사용하는 프로토콜은 고정된 것이 아니다 .그런 것들을 추적 해준다.





service-policy 로 적용 시키는데 정책 이름과 인터페이스를 지정해주는데

맨뒤에 있는 global은 모든 인터페이스에 적용시키겠다는 것.



classmap으로 트래픽 분류 -> policy map으로 정책에 넣기 -> service-policy로 정책을 인터페이스에 적용


현재 XP에서 백트랙에서 ping이 안된다.

라우팅은 되있지만 안되는 이유는 icmp는 insfection에 포함되있지 않기때문이다




policy-map global_policy

 class inspection_default

  inpsect icmp

정책에 들어가서 적용된 class에 들어가서 추가를 해주는 방식이다.




sh run 맨밑을 보니 적용이 됐고



xp에서 백트랙(4.4.4.4)로 ping 하니까 적용된 상태로 넘어가는 것이 확인 가능.


다시 확인해보려면 no inspect icmp 하고 4.4.4.4로 핑해보면 확실히 유무차이를 알 수 있다.






default-inspection-traffic 기본으로 들어가 있는 목록들인데 이걸 제외하고 다른 옵션 acl,이나 dscp나 flow나 이런 것들 사용하게되면 inspect가 하나씩만 가능하다.


dscp qos 트리거에 있는 내용으로 필터링할 때 사용





show run class-map 으로 만든 class-map  확인



policy-map test_policy

class test_class

inspect icmp


추가하고 inspect http로 추가하려니까 안된다고 뜬다.

위에서 말한 default-inspection-traffic 쓰라고 한다.






인터페이스 별로 확인이 가능하다.




xp에서 ping 한 후에 show server-policy interface inside 해줬더니 packet이 8이 된 것이 확인이 가능하다.





TCP syn flooding 공격에 대한 방어



만들었던 service-policy 없애주고

access-list로 웹서버를 사용가능하게 만들어준다.






embryonic-conn-max 을 사용한다.




이 상태에서 공격을 한번 해본다.







500개로 제한했는데 되는 것을 확인.




특정 사이트 차단




토폴로지 변경하고

XP에서 www.daum.net 과 www.naver.com 연결 확인




그냥 .은 문자 하나가 들어가는 공간이 된다.

역슬래시로 기능 escape를 해줘야 의도하는 정규표현식이 된다.


정규식 만들고

regex DENY_NAVER "\.naver\.com"


class-map 만들어준다

class-map type inspect http match-all DENY_HTTP




일반 class-map이 아니라 inspect 타입의 class-map을 사용한다.



match request header host regex DENY_NAVER



그다음에 정책 만들기.

policy-map type inspect http HTTP-MAP

 parameters

  class DENY_HTTP

  drop-connection log // drop하고 log를 남기겠다



만든 타입들은 바로 적용시킬 수 없고



별도의 class-map과 policy-map을 만들어서 만들었던 inspect type을 연결 시켜줘야한다.



service-policy 인터페이스 적용



//총 명령어 정리


regex DENY_NAVER "\.naver\.com"


class-map type inspect http match-all DENY_HTTP

 match request header host regex DENY_NAVER


policy-map type inspect http HTTP-MAP

 parameters

  class DENY_HTTP

  drop-connection log


class-map CLASS_HTTP

 match port tcp eq www

 exit


policy-map POLICY_HTTP

 class CLASS_HTTP

 inspect http HTTP-MAP

 exit


service-policy POLICY_HTTP interface inside


명령어만 써놔도 복잡하다..

익히기만 한다면 좋을 것 같다.





실시간 로그로 확인해보니까 정책에 의해 필터링 된 것이 보인다.

'정보보안' 카테고리의 다른 글

49일차 ASA 이중화 failover  (0) 2017.04.21
48일차 PIX/ASA  (0) 2017.04.20
46일차 ASA 인터페이스 ACL NAT  (0) 2017.04.17
45일차 ASA GNS상 설치  (0) 2017.04.14
45일차 UTM9(4) ospf  (0) 2017.04.14