웹 방화벽(WAF)과 일반 방화벽(FireWall) 그리고 인프라 보안
예전 기술지원 TF에서 WAF생성 및 설정과 방화벽 설정에 대해 정리
TF 프로젝트를 수행하면서, 웹 애플리케이션의 보안을 강화하기 위해 웹 방화벽(WAF)과 일반 방화벽을 생성 및 설정했다.
먼저, AWS CloudFront를 통해 접근하는 사용자를 필터링하기 위해 AWS WAF를 설정했다.
AWS Management Console에 로그인한 후, AWS WAF & Shield 서비스로 이동하여 새로운 웹 ACL(Web Access Control List)을 생성 후 적용했다.
이 ACL에는 SQL 인젝션과 XSS(크로스 사이트 스크립팅) 공격을 탐지하고 차단하는 규칙을 추가했다.(그외에 기본적으로 차단해야 하는 공격에 대한 정책도 추후에 추가 했다.) 그런 다음, 생성된 웹 ACL을 AWS CloudFront 배포에 연결하고, CloudFront 배포를 업데이트하여 변경 사항을 적용했다.
이를 통해 외부에서 웹 애플리케이션으로 들어오는 모든 요청이 AWS WAF를 통해 필터링되도록 구현 되었다.
한편, 내부에서 IDC를 통해 접근하는 사용자는 Nginx pod를 통해 접근하도록 설정했다. 먼저, Nginx를 설치하고 설정 파일을 구성했다. Nginx 설정 파일에서 접근 제어 목록(ACL)을 설정하여 특정 IP 주소나 포트 번호를 기반으로 트래픽을 필터링했다. 예를 들면, 내부 네트워크의 IP 주소 범위인 192.168.1.0/24
를 허용하고, 그 외 모든 접근을 차단하도록 설정했다. 설정 파일을 저장한 후, Nginx를 재시작하여 변경 사항을 적용했다. 여기까지는 nginx.config 파일을 이용한 보안 적용 내용 이었다.
또한, IDC 네트워크 경계에 배치되어 있는 하드웨어 방화벽에 정책은, IP 주소, 포트 번호, 프로토콜 등을 기반으로 트래픽을 필터링하는 규칙을 설정 하였다.
그리고 요즘 일반 방화벽에서는 왠만하면 IPS (Intrusion Prevention System)기능도 포함되어 있다. IPS는 네트워크 경계에서 트래픽을 분석하고 악성 트래픽을 차단하는데 사용된다. 예를들면 CloudFront와 WAF를 통해서 내부로 들어온 트래픽을 IPS는 분석하고 악성 트래픽을 차단한다. 마찬가지로 IPS가 기본으로 탑재된 방화벽이라면 일반 방화벽을 통과한 트래픽을 분석하고 악성 트래픽을 차단한다.
AWS에도 IPS기능을 하는 AWS Network Firewall이라는 서비스가 존재한다. 보통 WAF와 함께 구성하기도 한다.
아래 처럼 구성이 되지 않을까? 출처 : https://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/migration-perimeter-zone-apps-network-firewall/architecture.html
이와 같이, 웹 방화벽과 일반 방화벽을 구축하고 설정하여 네트워크와 웹 애플리케이션을 보호했다.
이런 구성을 통해 외부와 내부에서의 접근을 모두 안전하게 관리할 수 있다.
- 끝 -