윈도우 VM에 실행한 웹서버에 접속이 안될 경우 (GCP 방화벽 설정)

2021. 6. 13. 10:58Cloud

GCP에서 Windows VM을 만들었고 해당 VM에 특정 서비스를 띄워서 서비스를 하고 싶은 경우가 있다. 가령 BI툴인 Tableau Server 를 띄워서 사내 직원들에게 서비스하고 싶은 경우이다. 대부분의 GCP유저들은 대체로 이런 방법으로 VM을 만들고 서비스를 띄울 것이다.

  1. Windows VM 만들기: GCP에서는 매우 간단하게 VM을 만들 수 있다. 보통 서버에서 웹서비스를 띄울 생각이라면 http 트래픽과 https 트래픽 허용하는 것도 설정해주고 , VM을 만들면서 VPC Network 설정도 해줄 것이다.
    COMPUTE -> Compute Engine -> VM Instances  -> CREATE INSTANCE 
    VM을 생성할 때 화면이다. 서버에서 웹서비스 (HTTP,HTTPS)를 할 생각이라면, 기본적으로 Firewall 부분의 'Allow HTTP traffic', 'Allow HTTPS traffic' 을 체크해준다. 대부분 사람들은 귀찮아서 Networking 탭을 들여다보지 않지만 여기에서 본인이 원하는 VPC Network 로 세팅이 되어있는지 확인한 후 넘어가자. 대충 넘어갔다간 나중에 VM Stop 시킨다음에 다시 VPC Network를 바꾸어줘야 해서 매우 귀찮다.
  2. VPC Network의 Firewall 설정: 웹서비스에 접근하기 위해 필요한 Port를 개방해주는 부분이다. Ingress 나 Engress 설정을 손봐준다.
    NETWORKING -> VPC Network -> Firewall
    VPC Network 의 Firewall 설정메뉴. 필자의 클라우드에서 운영되는 서비스 보안상 Firewall 리스트를 공개하지 못한 점 양해 부탁드린다.
     

  3. Windows VM에 서비스 설치: Apache, Nginx, Tableau Server 등 웹서버를 VM에 설치한다.
  4. 접속 테스트: 웹브라우저로 http://<Win VM의 Static IP>:<Port> 로 접속이 가능한지 확인한다. 아마 잘 안될 가능성이 높다. 

 

Solution

 

이는 Windows VM 의 자체 방화벽이 설정되어 있기 때문이다. 따라서 VPC Network의 방화벽을 잘 뚫어주어도 VM의 방화벽에서 접속을 제한하기 때문에 결국 서비스로 접속이 불가능한거다. 즉, Windows VM의 방화벽을 해제해주면 된다. 해제하는 방법은 다음과 같다.

 

Windows VM 접속 > Windows Security > Firewall & network protection

 

여기에서 각 네트워크에 대한 Firewall 을 Off 시켜주면 된다. 케이스에 따라 다른데, Public network에 대한 Firewall 만 꺼줘도 웹서비스는 가능한 경우가 많다.

 

Public network > Windows Defender Firewall 를 Off 로

 

 

마치며

저렇게 멋대로 VM의 방화벽을 꺼줘도 되냐고? 내 생각에는 큰 문제 없다고 본다. GCP의 VPC Network 방화벽과 같이 대부분의 클라우드 사업자들은 VM의 상위단위의 방화벽 기능을 제공한다. 이 상위 방화벽을 거쳐서 VM의 방화벽을 들어오기 때문에 상위 방화벽 자체에서 Firewall Rule을 잘 관리하면 된다. 반대로 방화벽 정책을 각 VM에서 관리하게 된다면 VM이 많아질 경우 일일히 VM에 들어가서 방화벽 정책을 관리해줘야 하기 때문에 엄청난 관리 코스트가 발생하게 된다. 다만 보안문제는 매우 중요하기 때문에 VPC Network 방화벽 Rule을 신중하게 결정하고 또 면밀히 테스트하는 것이 매우 중요하겠다.