Firewall

youp·2024년 9월 11일
0

방화벽

  • 신뢰할 수 있는 네트워크와 신뢰할 수 없는 네트워크 사이의 장벽
  • LAN과 WAN 사이에 적용
    • 즉, 데이터 전달 경로에 배치되어 패킷을 드롭/ 허용

Stateless Filtering

  • 라우터는 ACL을 이용해 Source, Destination, Port number 확인
  • 수천개의 패킷을 수신해도 각 패킷을 개별적으로 처리

Stateful Filtering

  • 방화벽은 모든 들어오는 또는 나가는 Connection 추적

Security Zone

  • 라우터는 기본적으로 라우팅 테이블을 기반으로 데이터를 허용/처리
  • 방호벽은 Zone 기반으로 데이터를 허용/처리
    High Security Level -> Low Security Level: 허용
    Low Security Level -> High Security Level: 거부
    • 외부에서 시작해 내부로 접근하는 트래픽에 대해 ACL을 이용해 예외 적용
  • 방화벽은 Stateful 동작으로 나가는 Connection 추적해 되돌아 오는 트래픽 허용

ASA

  • 시스코 방화벽 제품으로 방화벽 외에도 VPN 등 여러 보안 기능 탑재

Command

  • #show run interface

  • #show verison

    • OS Release, Uptime, Serial Num 등 표시
  • #show ip address

  • #show interface ip brief

  • ***** #show nameif

  • #show firewall

    • ASA는 L2모드, L3모드 동작 가능
    • Default L3 모드
    • L2모드: #firewall transparent
    • L3모드: no firewall transparent
  • #route [egress nameif] 0.0.0.0 0.0.0.0 [next-hop]
    route [나가는 인터페이스] ~~~
    ex) route outside 0.0.0.0 0.0.0.0 1.1.40.2

  • #show route

    • 라우팅테이블 확인
  • #show run route

    • 일부 설정 확인
  • show interface ip brief

    • 인터페이스 확인

security level 설정

interface e0/2
nameif DMZ
security-level 50
ip address ~~~
no shut

SSH 설정

config# username admin password cisco123

config# aaa authentication ssh console LOCAL
-> 콘솔 통해 ssh 접속할 때 인증 방식인데, 데이터베이스 외부가 아니라 로컬에 있다~

config# crypto key generate rsa modules 1024
-> 비대칭 키 생성

config# ssh 10.10.10.1 255.255.255.255 inside
-> Inside에 있는 10.10.10.1이 자신에게 SSH 사용하는거 허용

config# ssh 1.1.10.1 255.255.255.255 outside
-> outside에 있는 1.1.101.1이 자신에게 SSH 사용하는거 허용

ASA Security Levels

  • Security Level은 인터페이스의 신뢰도
    -> Security Level이 높을수록 신뢰도가 높음

  • Low Security Level에서 High Security Level 통신은 ACL통해 예외설정 해야함
    -> ACL이 Security Level보다 상위 정책

  • Security Level 0

    • 가장 낮음
    • 일반적으로 Outside Interface에 적용
    • ACL없이는 다른 Zone에 접근 불가
  • Security Level 100

    • 가장 높음
    • 일반적으로 Inside Interface에 할당
    • 다른 모든 Zone에 접근 가능
  • Security Level 1~99

    • 원하는 수준의 Security Level 할당 가능
  • zone = nameif

  • 1 Interface = 1 nameif 소속

    • ip주소 부여되어 있어도 소속이 안되면 인터페이스 작동 X
  • zone 이름, Inside, Outside 많이 사용

    • Inside로 이름 할당 시 자동으로 Security Level 100

ACL 적용은 Global Configuration Mode에서, 인터페이스 대신 nameif 사용
AS의 모든 설정은 nameif(zone) 기반

config# access-list INSIDE_INBOUND deny tcp any host 192.168.2.2 eq 80
config# access-grouop INSIDE_INBOUND in interface INSIDE

ASA Inspection

  • ASA는 자신을 통과하는 모든 연결에 대해 추적하고 conn table에 기록(Stateful, Inspect)
  • 유일하게 ICMP만 추적/기록 예외
  • 추적/기록하기 위해 ICMP 추가해주기

config#policy-map global_policy
config-pmap#class inspection_default
config-pmap-c#inspect icmp


ACL

config# access-list ALL_OUTBOUND permit udp any host 192.168.2.2 eq 53
config# access-list ALL_OUTBOUND deny udp any any eq 53

확인

show access-list ALL_OUTBOUND

규칙 추가

access-list ALL_OUTBOUND line 3 extended deny tcp any any
-> 라인 3번에 추가되고 밑에 규칙들은 한칸씩 밀림

규칙 삭제

no access-list ALL_OUTBOUND line 3 extended deny tcp any any

ACL 삭제

clear configure access-list MY_ACL
ACL 삭제 시 ACL 적용된 Access-Group 같이 삭제됨!!!
다시 access-group도 해줘야됨!!!

규칙 잠시동안 비활성화

access-list ALL_OUTBOUND permit tcp host 10.10.10.1 172.16.1.0 255.255.255.0 eq telnet inactive

NAT

  • Static NAT/PAT
  • Dynamic NAT/PAT
  • Policy NAT/PAT
  • Bypass NAT

구현방법

  • Object NAT(Auto NAT)
  • Manual NAT

Static NAT/PAT

  • 정적 NAT는 주소 변환에 필요한 정보를 저장하는 NAT 테이블에 반영구적으로 NAT 정책을 저장

    • 어느 방향에서도 통신 시작 가능
  • 정적 PAT는 TCP/UDP 포트 번호까지 변환

    • 다수의 사설 IP 주소에 하나의 공인 IP 사용하는 경우
    • 서로 다른 사설 IP 주소를 가진 웹 서버, FTP 서버, 메일 서버 등에 하나의 공인 IP 주소를 이용해 접속
    • 표준 포트번호와 비표준 포트를 매핑(8080 -> 80)

Dynamic NAT/PAT

  • 동적 NAT는 정책에 부합하는 트래픽이 발생한 순간 변환 주소가 할당

    • 해당 정보는 NAT 테이블에 임시적으로 저장되고 통신이 끝나면 제거(3분)
    • 평소에는 NAT 테이블에 등록된 정보가 없어, 정책의 반대 방향에서는 통신 불가
  • 동적 PAT는 수 개의 사설 IP 주소를 하나의 공인 IP 또는 공인 IP 풀 주소로 변환하면서 포트번호도 함께 변환

    • PAT은 사설 IP 주소와 출발지 포트 번호를 공인 IP 주소와 1024 이후의 포트 번호로 변환
    • 접속이 종료되면 30초 후 포트 변환이 해제

    Policy NAT/PAT

  • Policy NAT는 출발지와 목적지에 따라 변환

    • 일반 NAT는 Source를 보고 변환하지만, Policy NAT/PAT는 출발지, 목적지를 모두 참고하여 주소변환
    • 서버1 접속할 때는 공인 IP1로 변환, 서버2 접속할 때는 공인IP2로 변환

    Bypass NAT

  • Bypass NAT는 특정 출발지와 목적지를 가진 패킷만 주소 변환을 하지 않음

    NAT 구현 방식

    Object NAT

  • 하나의 Network Object 안에서 NAT 정책 설정

  • 오브젝트 NAT에서는 패킷의 출발지 주소만 변환할 수 있지만, 설정이 매우 간단

  • AUTO NAT이라고도 부름

    • 설정 순서와 상관없이 세부적인 정책일수록 테이블 상위에 존재

Manual NAT

  • 출발지 주소와 목적지 주소 모두 참고하여 주소 변환
    • 특정 출발지 주소를 가진 패킷이 특정 목적지를 향할 때
      • 출발지 주소만 원하는 IP로 변환
      • 출발지와 목적지 주소 모두 원하는 IP로 변환
  • NAT 테이블에서 정책 순위를 관리자가 직접 지정 가능
    • 설정 순서대로 NAT 테이블에 등록.

NAT 동작 순서

  • NAT가 설정된 방화벽을 통과하는 모든 패킷은 NAT 테이블에 등록된 정책을 참조해 주소 변환 결정
  • show nat 명렁어를 통해 확인 가능
  • 정책 우선순위
    1. Manual NAT
    2. Auto NAT
    3. Manual NAT with after-auto


ip주소와 nameif, security-level 설정해주기

config#object network PUBLIC_POOL

config-network-object#range 192.168.2.100 192.168.2.200
-> Dynamic NAT 범위 지정해주기(설정해준 IP로 바뀜)

config#object network INSIDE_TO_OUTSIDE
config-network-object#subnet 192.168.1.0 255.255.255.0
-> 변환해줄 IP 설정(이 대역이 지나갈 때 IP주소 변경됨)
config-network-object#nat (INSIDE,OUTSIDE) dynamic PUBLIC_POOL

0개의 댓글

관련 채용 정보