3개의 서브넷(WAN(공용), LAN(개인), DMZ(개인))이 있는 소규모 VPC가 있습니다. 저는 WAN 서브넷에 중앙 방화벽을 설정하는 임무를 맡고 있습니다. 이 방화벽은 외부 세계로의 모든 트래픽과 하위 엔트 간 트래픽을 모두 모니터링합니다.
내 문제는 LAN과 DMZ 간의 트래픽을 모니터링하는 것입니다. 각 서브넷을 라우팅 테이블과 연결하여 모든 아웃바운드 트래픽을 방화벽으로 연결했는데 제대로 작동합니다. 안타깝게도 AWS에서는 서브넷 간 트래픽에 대한 경로를 추가할 수 없습니다. VM '내부'에 라우팅 규칙을 추가하면 문제가 부분적으로만 해결됩니다. LAN에는 이러한 종류의 구성을 허용하지 않는 어플라이언스가 포함되어 있기 때문입니다. 또한 장기적으로 더 많은 문제가 발생할 수 있다고 생각합니다. WAN, LAN 및 DMZ를 각각 서브넷 대신 VPC로 만드는 것이 해결책이 될 수 있다고 생각하지만 그것은 VPC의 끔찍한 오용으로 보입니다.
이 문제에 대한 표준 AWS 솔루션은 무엇입니까?
편집 1: 기존의 '3개 영역 + 중앙 방화벽' 네트워크를 설정하려고 합니다. 방화벽은 서브넷과 개별 인스턴스 간의 트래픽은 물론 외부로부터의 트래픽도 모니터링하고 보호해야 합니다. 여기에는 다음이 포함됩니다.
- 비정상적인 연결을 관찰하고 신고하세요. (즉, Wiki는 Hornetq 서버에 액세스할 업무가 없으며 그러한 연결은 Wiki VM이 손상되었음을 나타낼 수 있습니다.)
- 네트워크 트래픽 속도 제한. (즉, 데이터베이스 서버는 보고 이메일을 보낼 수 있지만 초당 수백 개의 이메일을 보내기 시작하면 경고를 받고 싶습니다)
- DDO를 탐지합니다.
- ... 더 많은 보안 관련 항목 ...
이 모든 것이 AWS 기본 방법으로 수행될 수 있는지 확신할 수 없으며 중앙 방화벽 개념이 나에게 더 자연스럽게 느껴집니다.
네트워크 보안 그룹과 ACL을 사용하면 서브넷을 적절하게 분리하고 인스턴스 간의 연결을 제어할 수 있습니다. 하지만 고급 작업(예: 속도 제한 등)을 수행할 가능성은 없습니다. 내 생각은 LAN/DMZ 서브넷 간의 트래픽을 완전히 차단하고 클래식 네트워크 구성을 사용하는 것입니다. 즉, 모든 트래픽을 방화벽을 통해 라우팅하고 어떤 일이 발생하는지 결정하도록 하는 것입니다. 안타깝게도 VPC의 라우팅 테이블에서는 VPC(또는 해당 서브넷) 내의 모든 트래픽을 중앙 방화벽으로 라우팅하는 것을 허용하지 않습니다. 따라서 문제는 어떻게 AWS를 활용하여 서브넷에서 방화벽으로 트래픽을 가져와 방화벽이 제 역할을 할 수 있느냐 하는 것입니다.
답변1
AWS에서 가능한지 잘 모르겠습니다. 일반적으로 수행되는 방식이 아닙니다.
나는 당신이 "중앙"이라는 개념을 포기해야 한다고 생각합니다. 그것이 당신을 방해하는 것입니다. 레이어를 생각해보세요. 아래에 매우 기본적인 다이어그램을 작성했는데, 꽤 거칠어서 죄송합니다.
몇 가지 다른 방법:
- 사용침입방지/탐지 시스템(IPS/IDS)
- 사용호스트 기반 시스템각 서버에 에이전트가 있고 중앙 모니터링이 가능합니다. 이 모니터링은 VPC가 아닌 인터넷상의 서비스일 수 있습니다.
답변2
AWS에는 Palo Alto 등과 유사한 고급 방화벽이 없습니다. 대신 인바운드 및 아웃바운드 트래픽을 제어할 수 있는 보안 그룹을 통해 기본 필터링을 구현했습니다. 여기서는 프로토콜, IP 등을 기반으로 필터링을 설정할 수 있습니다. 또한 서브넷 간의 데이터 흐름을 보다 세밀하게 제어하기 위해 보안 그룹 위에 계층화할 수 있는 네트워크 ACL을 생성할 수 있습니다.
Google: AWS 보안 그룹과 네트워크 ACL
데이터 흐름 조절, 패킷 검사 등을 허용하는 고급 방화벽 설정을 찾고 있는 것 같습니다. 이 경우 방화벽 서버를 설정해야 합니다. 최소한 세 개의 서브넷(WAN, LAN, DMZ)에 방화벽이 있어야 합니다. 다음은 귀하가 찾고 있는 내용에 대한 자세한 예를 제공합니다.
https://campus.barracuda.com/product/nextgenfirewallf/article/NGF70/AWSRouteTableMutliNIC/
그러나 여러 가용성 영역과 로드 밸런서를 사용하는 고가용성 솔루션을 설계하는 것이 좋습니다. 탄력적인 아키텍처를 제공하는 솔루션은 많이 있습니다.