본문 바로가기
Network Know-how 기록하기

[AWS / Palo Alto]Palo Alto Firewall(EC2) 설치 및 GWLB 연동

by 네트워크 엔지니어 환영 2024. 5. 26.
반응형
AWS에서 제공되는 Palo Alto VM-Series는 기본적으로 유료(구독 필요)이며 Free-Trial을 통해 일정 기간동안 무료로 사용할 수 있습니다. 팔로알토 방화벽 OS는 일정 기간에 한해 무료이지만 EC2에 대한 비용은 별도 청구입니다.
  • Palo Alto Firewall(이하 팔로알토 방화벽)의 AWS EC2 설치 및 Gateway Load Balancer(이하 GWLB) 연동 과정에 대한 설명
  • AWS Console 접속, EC2 > 인스턴스 > 인스턴스 시작 클릭
  • 애플리케이션 및 OS 이미지 검색란에 "Palo Alto" 혹은 아래와 같이 제품 이미지 입력
    • 아래 이미지와 같이 Free Trial로 표기된 OS를 사용해야 Palo Alto 방화벽 자체에 대한 구독료를 내지 않고 일정기간 무료로 사용 가능

EC2 인스턴스 선택 화면

  • "VM-Series Next-Gen Virtual Firewall w/Advanced Threat Prevention (PAYG) 선택
    • 팔로알토 방화벽의 VM-Series OS 이미지는 여러개가 존재하지만 가장 최신 OS를 제공하는 아래 이미지 사용

팔로알토 VM Series OS 이미지 선택

  • 인스턴스 생성화면으로 되돌아가기 위한 구독 시작 버튼 클릭

구독 시작 버튼 클릭

  • Public IP 비활성화 버튼 클릭
    • EC2 인스턴스 생성과 함께 생성될 ENI(Elastic Network Interface)는 Data Port(이하 데이터 포트)로 사용되는데, GWLB 특성상 데이터 포트는 Public IP가 필요 없기에 비활성화 실시
  • 보안 그룹 생성
    • Health Check에 사용될 HTTP(80), GUI 접근에 사용될 HTTPS(443), CLI 접근에 사용될 SSH(22) 허용
  • Keypair(이하 키페어) 생성 및 저장
    • 팔로알토 방화벽 SSH 접근시 사용할 키페어 저장

Public IP 비활성화 및 보안그룹 생성

  • User data(사용자 데이터)란에 아래 명령어 입력 후 EC2 인스턴스 시작
mgmt-interface-swap= enable

Interface Swap 기능 활성화

  • Interface Swap을 활성화해야 하는 이유는 아래와 같음
  • GWLB는 자신의 Target Group(이하 대상 그룹)에 설정되는 인스턴스는 대상 목록에 Primary Interface로 자동 지정
  • 다시 말해 첫 번째 인터페이스를 자동으로 대상그룹과 통신할 IP로 지정하게 된다는 것과 동일
  • 팔로알토 방화벽의 첫 번째 인터페이스는 eth0, MGMT 포트(관리 목적)
  • GWLB의 대상 그룹에 팔로알토 방화벽 EC2 인스턴스를 등록하면 MGMT 포트와 IP가 대상그룹의 대상으로 지정, GWLB와 통신한다는 뜻
  • Interface Swap 기능을 활성화하여 eth0 포트를 데이터 포트로 사용하고 eth1(Ethernet1/1)를 관리 포트로 사용하도록 설정

Interface Swap Before / After(출처 : https://www.coursehero.com/)

  • 인스턴스와 함께 생성된 ENI(팔로알토 방화벽의 eth0, 아래 그림의 PA-DATA)는 데이터 포트로 사용될 예정이므로 MGMT 포트(팔로알토 방화벽의 eth1, 아래 그림의 PA-MGMT)를 사용할 인터페이스를 한 개 더 생성해줌
    • Elastic IP를 생성하여 PA-MGMT ENI에 연결
    • Elastic IP가 연결된 PA-MGMT ENI를 EC2 인스턴스에 연결
  • MGMT 포트의 보안 그룹은 가급적 데이터 포트의 보안 그룹과는 별개로 나누어 따로 가져가는 것이 좋음
    • 데이터 포트는 HTTP(80)와 GENEVE(6081)을 필요로 하지만, MGMT 포트는 HTTPS(443)와 SSH(22)를 필요로 하기 때문
       

MGMT 포트로 사용할 추가 ENI 생성 및 Elastic IP 할당, EC2 인스턴스 적용
생성된 팔로알토 EC2 인스턴스와 MGMT / 데이터 포트

  • EC2 인스턴스 생성시 같이 생성한 키페어를 활용하여 팔로알토 방화벽에 SSH 접근 실시
    • EC2 인스턴스가 올라온 상태에서도 꽤 오랜시간이 걸린 후에야 키페어를 활용한 접근이 가능
      • 최초 접근시 ID는 Admin
    • "Server refused our key"가 뜬다면 좀 더 기다려야 함
    • 접근 성공시 아래와 같은 화면 출력

키페어를 적용하여 팔로알토 방화벽에 접근

  • admin 계정에 대한 비밀번호를 재설정하여 GUI 접근을 가능하도록 설정
admin@PA-VM> configure
admin@PA-VM> set mgt-config users admin password
Enter password : 
Confirm password :
admin@PA-VM> commit

팔로알토 방화벽 admin 계정의 비밀번호 설정

  • 인터넷 브라우저에 "https://Elastic IP"를 입력하여 GUI에 접근
    • 이 때, 접속이 되지 않는다면 MGMT 포트가 보유한 보안 그룹의 허용 포트 중 HTTPS(443)가 있는지 확인
    • GUI 화면이 뜨면 계정(admin 동일)과 위에서 입력한 패스워드를 입력하여 진입
    • 방화벽 GUI 진입시 아래와 같은 대시보드 화면을 볼 수 있음

팔로알토 방화벽 대시보드

  • Network(상단 메뉴) > Interface > Ethernet > ethernet1/1 클릭
    • ethernet1/1 포트는 MGMT 포트로 사용
    • 위에서 추가로 생성한 ENI(PA-VM, 192.168.0.8)가 ethernet1/1에 연결되어 IP를 사용하게 됨

팔로알토 방화벽 인터페이스 설정

  • ethernet1/1 > Ethernet Interface > Interface Type "Layer3"로 변경
  • ethernet1/1 >  Ethernet Interface > Config > Assign Interface To > Virtual Router "Default" 설정
    • 팔로알토 방화벽의 Interface들이 사용하는 공동의 라우터(라우팅 테이블 소유)
  • ethernet1/1 >  Ethernet Interface > Config > Assign Interface To > Security Zone 설정
    • 인터페이스의 ACL 및 Log 설정 기능
    • Log, ACL 설정은 하지 않고 생성 및 연결

Virtual Router 및 Security Zone 설정

  • ethernet1/1 >  Ethernet Interface > Config > IPv4 > Type > DHCP Client
    • AWS VPC의 DHCP 서버로부터 IP를 받아 사용할 수 있도록 설정
    • Virtual Router가 설정되어 있지 않다면 DHCP Client 설정 불가

MGMT 포트의 IP 설정

  • MGMT 포트(ethernet1/1)의 Management Profile 설정
    • 접근 가능한 프로토콜 및 IP(ACL) 설정 가능

MGMT 포트의 Management Profile 설정
Management Profile 상세 설정

  • 인터페이스 설정 완료 후, Commit 실시
    • 팔로알토 방화벽은 Commit을 해야 설정이 적용됨

인터페이스 설정 Commit 실시

  • Commit이 완료되면 아래와 같이 LINK STATE가 활성화된 것을 볼 수 있음

Commit 후, 인터페이스 화면

  • Ethernet > "Add Subinterface" 클릭 > Layer3 Subinterface > Config
    • Tag 1(아무 숫자 가능), Virtual Router(Default), Security Zone(HealthCheck) 설정
  • Layer3 Subinterface > IPv4 > Type > DHCP Client 설정
  • Subinterface 설정은 VPC Endpoint(Gateway Load Balancer)별로 진입 가능한 인터페이스를 나누기 위해 사용되므로 방화벽에 접근하는 Endpoint가 1개라면 필요없을 것으로 보임
    • 테스트 및 실전에서 사용중인 팔로 알토 방화벽은 모두 Subinterface를 최소 1개는 만들어둔 상태
    • 아래 명령어를 통해 Subinterface 별 접근 가능한 Endpoint를 지정할 수 있음
admin@PA-VM> request plugins vm_series aws gwlb associate vpc-endpoint <Endpoint ID> interface <Subinterface Num>
admin@PA-VM > commit

Subinterface 설정 화면
Subinterface IPv4 설정 화면

  • Subinterface 설정 후, Commit 실시

Subinterface 설정 후 Commit

  • 팔로알토 방화벽의 GWLB 연동 기능 활성화
admin@PA-VM > request plugins vm_series aws gwlb inspect enable yes
admin@PA-VM > show plugins vm_series aws gwlb (확인 기능, 하단 그림 참조) 

팔로알토 방화벽의 GWLB 연동 기능 활성화

  • GWLB의 Health Check(이하 헬스 체크) 및 데이터 진입을 허용하기 위한 허용 정책 생성
  • 허용 정책 정보
    • 출발지 : GWLB ENI IP
    • 목적지 : 팔로알토 방화벽의 데이터 포트(eth0) IP
    • 포트 : TCP / 80, UDP / 6081

팔로알토 방화벽의 허용 정책

  • GWLB 및 대상그룹 생성
  • 대상그룹의 헬스 체크 정책을 통해 방화벽 헬스 체크 성공 확인

GWLB 생성
대상그룹 생성 및 팔로알토 방화벽 등록

 

댓글