みなさま、こんにちは。GMOインターネット株式会社の斉藤です。
前回の記事ではmoshというベンチなOSSツールと、VPSのポート制限のお話しが登場しました。このポート制限は、ConoHaのネットワーク機能に備わっているパケットフィルタを使って実現しています。今回はそれらを簡単に操作できるツールconoha-netをご紹介したいと思います。
目次
ConoHaのパケットフィルタ機能
ConoHaには基盤側にパケットフィルタが備わっており、TCPポートやソースIPアドレスによるフィルタリングが行えます。仮想サーバーが接続されている仮想スイッチでフィルタリングされるので、OSやVPSの設定に依存しないのも特徴です。
なので簡易的なファイアーウォールのように使えますし、フィルタリングルールを「セキュリティグループ」という形でまとめて、複数サーバーにまとめて適用したりもできるので台数が増えたときの管理も楽です。
ただ、設定するにはConoHaのAPIを叩く必要があります。
以下の記事が参考になります。
これからわかるとおり、複数のAPIを叩く必要があります。これは仕組みとして以下の3構造になっています。
- 仮想サーバーは複数のポート(=仮想NIC)を持つ
 - ポートには複数のセキュリティグループを割り当てられる
 - セキュリティグループには複数のセキュリティグループルールを割り当てられる
 
最初にお話ししたとおりConoHaのパケットフィルタは非常に柔軟な設定が可能です。ただ仮想サーバーや仮想ポートなどのレイヤーが多く、単純な設定をするにも多くのAPIを叩く必要があったりと少し煩雑な面もあります。
これらの手間を解決するためにconoha-netと言うツールを開発しました。開発はだいぶ前なのですが、私も業務で使いますし十分枯れていて使いやすいツールだと思います。
conoha-net
conoha-netはセキュリティグループをコマンドラインから操作するツールです。インストール方法や使い方などはGitHubに書いてあります。
hironobu-s/conoha-net: A security group management tool for ConoHa
https://github.com/hironobu-s/conoha-net
はじめに、以下を実行してみましょう。
list-group -agncs-ipv4-sshのように末尾にが付いたものが見えます。
-all, -ssh, -web
これらは実はコントロールパネルから設定できる「許可ポート」のことなんです。現状でコントロールパネルから設定可能なセキュリティグループが一覧で出ている状態なんですね。
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                          ALLJSON出力もできるので、スクリプトやプロビジョニングツールからも扱いやすいです。
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-netを使うと、セキュリティグループの設定をより簡単に行えるはずです。良かったら使ってみて下さい。
それはまた次回お目にかかりましょう。
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
- 
                  技術情報(516)
 - 
                  イベント(193)
 - 
                  カルチャー(50)
 - 
                  デザイン(47)
 
TAG
- "eVTOL"
 - "Japan Drone"
 - "ロボティクス"
 - "空飛ぶクルマ"
 - 5G
 - Adam byGMO
 - AGI
 - AI
 - AI人財
 - APT攻撃
 - AWX
 - BIT VALLEY
 - Blade
 - blockchain
 - Canva
 - ChatGPT
 - ChatGPT Team
 - Claude Team
 - cloudflare
 - cloudnative
 - CloudStack
 - CM
 - CNDO
 - CNDT
 - CODEGYM Academy
 - ConoHa
 - ConoHa、Dify
 - CS
 - CSS
 - CTF
 - DC
 - design
 - Designship
 - Desiner
 - DeveloperExper
 - DeveloperExpert
 - DevRel
 - DevSecOpsThon
 - DiceCTF
 - Dify
 - DNS
 - Docker
 - DTF
 - Expert
 - Felo
 - GitLab
 - GMO AIR
 - GMO AIロボティクス大会議&表彰式
 - GMO DESIGN AWARD
 - GMO Developers Day
 - GMO Developers Night
 - GMO Developers ブログ
 - GMO Flatt Security
 - GMO GPUクラウド
 - GMO Hacking Night
 - GMO kitaQ
 - GMO SONIC
 - GMOアドパートナーズ
 - GMOアドマーケティング
 - GMOイエラエ
 - GMOインターネット
 - GMOインターネットグループ
 - GMOクラウド]
 - GMOグローバルサイン
 - GMOサイバーセキュリティbyイエラエ
 - GMOサイバーセキュリティ大会議
 - GMOサイバーセキュリティ大会議&表彰式
 - GMOソリューションパートナー
 - GMOデジキッズ
 - GMOブランドセキュリティ
 - GMOペイメントゲートウェイ
 - GMOペパボ
 - GMOメディア
 - GMOリサーチ
 - GMO大会議
 - Go
 - GPU
 - GPUクラウド
 - GTB
 - Hardning
 - Harvester
 - HCI
 - iOS
 - IoT
 - ISUCON
 - JapanDrone
 - Java
 - JJUG
 - K8s
 - Kaigi on Rails
 - Kids VALLEY
 - KidsVALLEY
 - LLM
 - MCP
 - MetaMask
 - MySQL
 - NFT
 - NVIDIA
 - NW構成図
 - NW設定
 - Ollama
 - OpenStack
 - Perl
 - perplexity
 - PHP
 - PHPcon
 - PHPerKaigi
 - PHPカンファレンス
 - QUIC
 - Rancher
 - RPA
 - Ruby
 - Selenium
 - Slack
 - Slack活用
 - Spectrum Tokyo Meetup
 - splunk
 - SRE
 - SSL
 - Terraform
 - TLS
 - TypeScript
 - UI/UX
 - vibe
 - VLAN
 - VS Code
 - Webアプリケーション
 - WEBディレクター
 - XSS
 - アドベントカレンダー
 - イベントレポート
 - インターンシップ
 - インハウス
 - オブジェクト指向
 - オンボーディング
 - お名前.com
 - カルチャー
 - クリエイター
 - クリエイティブ
 - コーディング
 - コンテナ
 - サイバーセキュリティ
 - システム研修
 - スクラム
 - スペシャリスト
 - セキュリティ
 - ソフトウェアテスト
 - チームビルディング
 - デザイン
 - ドローン
 - ネットのセキュリティもGMO
 - ネットワーク
 - ビジネス職
 - ヒューマノイド
 - ヒューマノイドロボット
 - プログラミング教育
 - ブロックチェーン
 - ベイズ統計学
 - マルチプレイ
 - ミドルウェア
 - モバイル
 - ゆめみらいワーク
 - リモートワーク
 - レンタルサーバー
 - ロボット
 - 京大ミートアップ
 - 人材派遣
 - 出展レポート
 - 動画
 - 協賛レポート
 - 基礎
 - 多拠点開発
 - 大学授業
 - 宮崎オフィス
 - 展示会
 - 応用
 - 技育プロジェクト
 - 技術広報
 - 採用
 - 採用サイトリニューアル
 - 採用活動
 - 新卒
 - 新卒研修
 - 日本科学未来館
 - 映像
 - 映像クリエイター
 - 暗号
 - 業務効率化
 - 業務時間削減
 - 機械学習
 - 決済
 - 物理暗号
 - 生成AI
 - 視覚暗号
 - 開発生産性
 - 開発生産性向上
 - 階層ベイズ
 - 高機能暗号
 
PICKUP
- 
                  
                    
                                        東京・福島・福岡の専門学校3校でConoHa AI Canvasを用いた講義を実施しました
技術情報
 - 
                  
                    
                                        【協賛レポート・前編】Designship 2025|参加者と“共につくる”デザインのかたち──私たちの挑戦を振り返る
デザイン
 - 
                  
                    
                                        NFSのパフォーマンストラブルに対応した話
技術情報
 - 
                  
                    
                                        Microsoft Entra アプリケーション プロキシ × Windows 統合認証環境での NTLM 廃止影響と対策
技術情報
 - 
                  
                    
                                        GMOインターネットグループ合同テクノロジーインターンシップ2025 体験記~ML/Webコース編①~
カルチャー
 - 
                  
                    
                                        ChatGPTとConoHa AI Canvasで検証:生成AIが変えるクリエイティブ制作
技術情報