ConoHa에서 보안 그룹 설정

7148 단어 코노하
ConoHa 에는 기반측에 패킷 필터가 갖추어져 있어 TCP 포트나 소스 IP 주소에 의한 필터링을 실시할 수 있습니다. 가상 서버가 연결된 가상 스위치로 필터링되므로 OS 설정에 의존하지 않는 간편한 방화벽처럼 사용할 수 있으며 필터링 규칙을 "보안 그룹"이라는 형태로 정리하여 여러 서버에 정리 적용할 수도 있으므로 대수가 늘어났을 때의 관리도 편합니다.

다만, 설정하려면 ConoHa의 API 을 두드릴 필요가 있으며, 자세한 것은 아래의 엔트리 등으로 해설되어 있습니다.

ConoHa API로 보안 그룹 설정
htps : // bg. l r. Infu / 2015 / 11 / 이하 - Api-Sekuri ty-g 로우 p

ConoHa API를 두드리고 인프라에서 Firewall 설정 - ConoHa에서 KUSANAGI Part 4
htp // // m포 v. 하테나 bぉg. 코m/엔트리/2016/05/30/210105

즉 구조로서
  • 가상 서버에는 여러 포트 (= 가상 NIC)가 있습니다.
  • 포트에는 여러 보안 그룹이 할당됩니다.
  • 보안 그룹에는 여러 보안 그룹 규칙이 할당됩니다.

    라는 3층 구조가 됩니다. 이것을 API로 설정하는 것은 꽤 어렵습니다 ...

    라는 이유로 API를 매번 두드린다고 할 수 없기 때문에, 잡잡한 툴을 만들었습니다. 라고 해도, 원래 자신용이었던 것을 재검토했을 뿐입니다만.

    conoha-net



    conoha-net은 보안 그룹을 명령줄에서 조작하는 도구입니다. 설치 방법이나 사용법은 github에 쓰여 있습니다.

    hironobu-s/conoha-net: A security group management tool for ConoHa
    htps : // 기주 b. 코 m / 히로 노부 s /이 하네 t

    약간의 해설을 하면, list-group-a를 실행하면 디폴트로 준비되어 있는 룰이 나옵니다만, 이 컨트롤 패널로부터 설정할 수 있는 「허가 포트」입니다.
    hiro@personal$ conoha-net list-group -a                                                                            UUID                                     SecurityGroup     Direction     EtherType     Proto     IP Range     Port
    01c8f7d2-9a61-4158-bec9-882d9ea82c4e     gncs-ipv4-ssh     egress        IPv4          ALL                    ALL
    a80a3376-5fff-41f1-b4de-6f975968e5a7     gncs-ipv4-ssh     egress        IPv6          ALL                    ALL
    ee75d97a-fe30-4974-944d-850da19356d9     gncs-ipv4-ssh     ingress       IPv4          tcp                    22 - 22
    0c905231-5ac8-4627-89d0-c8bb96b185f7     gncs-ipv6-all     egress        IPv6          ALL                    ALL
    15962089-aaae-498f-86a9-7df572ce01fb     gncs-ipv6-all     ingress       IPv6          ALL                    ALL
    f375fc43-bfab-48cc-a66d-418b6d709a60     gncs-ipv6-all     egress        IPv4          ALL                    ALL
    1d1b7066-7da5-4694-9e8b-445b01d7df64     gncs-ipv4-all     ingress       IPv4          ALL                    ALL
    771f3074-4fe8-4051-804e-6f5f7f4860b1     gncs-ipv4-all     egress        IPv6          ALL                    ALL
    b8d81897-4229-4ddf-8325-11a7d0b42efd     gncs-ipv4-all     egress        IPv4          ALL                    ALL
    448761e1-4943-453e-9edb-51d4bf81364c     default           egress        IPv4          ALL                    ALL
    4f505718-d378-4f24-991a-02d20b8285e4     default           ingress       IPv6          ALL                    ALL
    66619594-8dea-4fc6-8815-5db7ef623930     default           ingress       IPv4          ALL                    ALL
    b950e586-53d5-4944-bdbd-fbba045c2d3d     default           egress        IPv6          ALL                    ALL
    12d97dca-94a2-4b99-938e-ff8be875d8a9     gncs-ipv4-web     ingress       IPv4          tcp                    20 - 20
    286a0a55-2c25-4810-9274-021d474126f6     gncs-ipv4-web     ingress       IPv4          tcp                    443 - 443
    85421073-7b49-41bf-9da1-d6e48b0f6c88     gncs-ipv4-web     egress        IPv4          ALL                    ALL
    ab501cfa-e67a-4255-9291-382400a45b2b     gncs-ipv4-web     ingress       IPv4          tcp                    21 - 21
    b73d7eca-06b9-4252-ae9c-adad891dbb88     gncs-ipv4-web     egress        IPv6          ALL                    ALL
    daf58069-fd85-4281-a86e-3a8d23fd389b     gncs-ipv4-web     ingress       IPv4          tcp                    80 - 80
    05bb817c-5179-4156-99ec-f088ff5c5d8e     my-group          egress        IPv6          ALL                    ALL
    5ecc4a23-0b92-4394-bca6-2466f08ef45e     my-group          egress        IPv4          ALL                    ALL
    

    ↓제어판



    제어판에서는 특정 포트(22, 80, 443 등) 밖에 설정할 수 없습니다만, conoha-net을 사용하면 자유롭게 설정할 수 있고, 소스 IP 주소의 지정도 할 수 있게 됩니다. 예를 들면, SSH에의 접속을 133.130.0.0/16으로부터만으로 하고 싶은 경우는 이런 느낌입니다.
    hiro@personal$ conoha-net create-rule -d ingress -e IPv4 -p 22 -P tcp -i 133.130.0.0/16  my-group
    5697eb75-3517-44a9-bc40-d532a4aedd89
    hiro@personal$ conoha-net list-group                                                                               UUID                                     SecurityGroup     Direction     EtherType     Proto     IP Range           Port
    05bb817c-5179-4156-99ec-f088ff5c5d8e     my-group          egress        IPv6          ALL                          ALL
    5697eb75-3517-44a9-bc40-d532a4aedd89     my-group          ingress       IPv4          tcp       133.130.0.0/16     22 - 22
    5ecc4a23-0b92-4394-bca6-2466f08ef45e     my-group          egress        IPv4          ALL                          ALL
    

    JSON 출력도 가능하므로 스크립트나 프로비저닝 툴에서도 취급하기 쉽습니다.
    hiro@personal$ conoha-net -o json list-group  | jq .                                                               [
      {
        "direction": "egress",
        "ether-type": "IPv6",
        "ip-range": "",
        "port": "ALL",
        "proto": "ALL",
        "security-group": "my-group",
        "uuid": "05bb817c-5179-4156-99ec-f088ff5c5d8e"
      },
      {
        "direction": "ingress",
        "ether-type": "IPv4",
        "ip-range": "133.130.0.0/16",
        "port": {
          "max": 22,
          "min": 22
        },
        "proto": "tcp",
        "security-group": "my-group",
        "uuid": "5697eb75-3517-44a9-bc40-d532a4aedd89"
      },
      {
        "direction": "egress",
        "ether-type": "IPv4",
        "ip-range": "",
        "port": "ALL",
        "proto": "ALL",
        "security-group": "my-group",
        "uuid": "5ecc4a23-0b92-4394-bca6-2466f08ef45e"
      }
    ]
    

    ConoHa 사용자 여러분은 좋으면 사용해 보세요.
  • 좋은 웹페이지 즐겨찾기