IP 포워딩 활성화

라우터나 네트워크 장비로 사용하지 않는 VM에서는 IP 포워딩을 끄고 필요한 예외만 관리하세요.

설명

can_ip_forward를 켜면 VM이 자신의 주소와 일치하지 않는 목적지의 패킷을 수신하거나 출발지 주소가 다른 패킷을 전송할 수 있습니다. 라우터·NAT 장비에는 필요할 수 있지만 일반 애플리케이션 VM에는 불필요한 기능입니다. 이 설정만으로 운영체제의 라우팅이 활성화되는 것은 아니며 게스트 설정, 경로와 방화벽도 함께 작용합니다.

잠재적 영향

  • 포워딩 기능과 실제 전달 경로가 구성된 VM이 침해되면 다른 네트워크로 트래픽을 중계하는 데 악용될 수 있습니다.
  • 잘못된 경로나 필터링은 의도하지 않은 네트워크 접근과 통신 장애를 유발할 수 있습니다.

해결 방법

  1. VM이 라우터나 보안 장비로 동작해야 하는지 확인하고, 필요하지 않으면 can_ip_forward를 끄세요.
  2. 필요한 예외에는 운영체제의 포워딩, 경로와 방화벽을 함께 제한하고 허용된 통신만 시험하세요.
  3. google.cloud 1.14.0의 gcp_compute_instance는 기존 VM의 이 속성을 갱신하지 않습니다. 기존 VM은 지원되는 Compute Engine 변경 절차를 사용하고 실제 설정과 연결을 확인하세요.

예시

새 VM의 포워딩 설정을 비교하는 발췌입니다. 실제 프로젝트·네트워크·주소·인증 정보와 부팅 디스크를 준비하고 시작 스크립트의 저장 위치와 내용을 확인하세요.

변경 전

yaml
- name: create a instance
  google.cloud.gcp_compute_instance:
    name: test-object
    machine_type: n1-standard-1
    metadata:
      startup-script-url: gs://graphite-playground/bootstrap.sh
      cost-center: "12345"
    labels:
      environment: production
    network_interfaces:
      - network: "{{ network }}"
        access_configs:
          - name: External NAT
            nat_ip: "{{ address }}"
            type: ONE_TO_ONE_NAT
    zone: us-central1-a
    project: "{{ project_id }}"
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present
    can_ip_forward: yes

IP 포워딩을 허용합니다. 실제 패킷 전달에는 게스트 운영체제와 경로 설정도 필요합니다.

변경 후

yaml
- name: create a instance
  google.cloud.gcp_compute_instance:
    name: test-object
    machine_type: n1-standard-1
    metadata:
      startup-script-url: gs://graphite-playground/bootstrap.sh
      cost-center: "12345"
    labels:
      environment: production
    network_interfaces:
      - network: "{{ network }}"
        access_configs:
          - name: External NAT
            nat_ip: "{{ address }}"
            type: ONE_TO_ONE_NAT
    zone: us-central1-a
    project: "{{ project_id }}"
    auth_kind: serviceaccount
    service_account_file: /tmp/auth.pem
    state: present
    can_ip_forward: no

새 VM의 IP 포워딩을 끕니다. 이 예시는 외부 IP를 제거하거나 애플리케이션 수준의 프록시 동작을 차단하지 않으므로 해당 통제는 별도로 점검하세요.

참조