취약환경 구성 및 테스팅을 위해 AWS를 배우게 되었고, 얼마 지나지 않아 IPS 탐지 관련 테스팅을 하게 되었다.
여기서 pfsense를 처음 보게 되었는데, 그 당시 클라우드를 만진지 얼마되지 않아서 인지 네트워크 지식이 모자라서인지 꽤나 구축에 애를 먹었던 기억이 난다.
pfsense
freebsd 기반의 오픈소스 타입의 방화벽/라우터, web-gui를 지원해 간단하게 구축할수 있다.
이번에 pfsense를 통해서 구축할 인프라는 다음과 같다.
VPC안에 public/private 서브넷을 구축하고 웹서버는 private 서브넷에 넣어 public 서브넷의 pfsense를 타고 접근하도록 하는 구성이다.
1. VPC 구성
인프라 구성은 VPC부터 시작한다.
VPC 생성에서 생성할 리소스를 VPC등으로 전환하면 한번에 가용영역/서브넷/라우팅테이블/인터넷 게이트웨이까지 설정 가능하다.
VPC : 192.168.0.0/16
public 서브넷 : 192.168.1.0/24
private 서브넷 : 192.168.2.0/24
2. 인스턴스 생성 (pfsense)
이제 public 서브넷에 들어갈 pfsense 인스턴스를 생성하는데, 과금에 대해서 유념해야한다.
pfsense는 wordpress와 같은 패키지 설치형이 아닌 이미지 설치형이라 기본적으로 AWS Instance 상으로 설치가 불가능하다.
이런 이미지 설치형 서비스는 AWS Marketplace에서 구독을 하고 이미지를 받아 사용해야한다. (즉, 소프트웨어 구독비가 존재)
현재 marketplace를 통해 구독한 pfsense는 30일간 free trial이라는 명목하에, 구독비가 과금되지 않는다 (pfsense 구독비만 면제, ec2에 대한 요금은 빌링됨)
pfsense를 t2.small로 1달간 사용했을때,
계속 사용하지 않기를 원하는 경우, pfsense이미지가 사용된 인스턴스를 종료하고 구독을 정지해야한다.
단순히 pfsense인스턴스만 종료하는 경우
구독이 된것을 확인하고 인스턴스를 시작
서브넷 > 위에서 생성한 public 서브넷
보안그룹 > pfsense를 통해서 내부 웹서버로 들어가므로 웹 포트(80/443)를 오픈, 내부 서버의 SSH 접근을 위해 하나를 더 오픈 (2222를 사용함)
3. pfsense 설정
pfsense 인스턴스를 구동 후, web-gui로 나머지 설정을 해보자
public ip로 접근하면 로그인 페이지가 나온다.
기본 사용자는 admin, 패스워드는 pfsense 부팅 당시 cli 상에 노출되는데, 인스턴스 > 모니터링 및 문제해결 > 시스템 로그 가져오기에서 패스워드를 볼 수 있다.
로그인 후 DNS 서버/타임존/패스워드 등 기본 설정을 해주는 초기 setup wizard까지 마쳐주자
다음은 이 pfsense와 내부 웹서버가 있는 private 서브넷의 연결을 해주는 작업이다.
현재 pfsense는 public ip, WAN 방향 인터페이스만 존재해 외부 인터넷과만 연결되어있는 상태이다.
pfsense가 private 서브넷을 바라보기 위해서 private 서브넷의 private ip를 가져야한다.
따라서, LAN 인터페이스를 생성해 pfsense와 연결해주어야 한다.
보안그룹 생성 > 인/아웃바운드에 모든 트래픽 허용 (이로써 pfsense - 내부 인스턴스 간에는 모든 트래픽이 허용)
네트워크 인터페이스 생성
서브넷 > 생성한 Private 서브넷 (pfsense가 private 서브넷을 바라보게 하기위한 작업이므로)
프라이빗 ip주소 > 자동생성 (private 서브넷 대역의 임의의 값을 지정해도 ok)
보안그룹 > 방금 생성한 LAN traffice 보안그룹
인터페이스를 연결하기 전에 네트워킹 > 소스/대상 확인 중지로 변경해주자
생성한 인터페이스를 pfsense 인스턴스에 연결
다시 web-gui로 넘어가서, pfsense에 LAN 인터페이스 등록을 위해 Interfaces > Interface Assignments
Available Network ports에 xn1으로 생성된것을 볼 수 있다. Add로 추가하면 LAN으로 인식된다
LAN 인터페이스 설정
- Enable interface
- IPv4 Configuration Type > DHCP
하단의 Save 후 Apply Changes 까지 눌러줘야 반영된다.
LAN 인터페이스가 잘 등록된것을 확인