mcpField
L
linux-networking

linux-networking

github.com/alphaonedevクラウド・DevOps53 回インストール
リポジトリ

linux-networking について

Linux のネットワーク管理向けスキルで、IP、DNS、ファイアウォール、VPN、インスタンス間ルーティングを設定します。適用前の検証と適用後の診断を重視します。

主な機能

  1. 01Netplan による IP 設定
  2. 02UFW と Nftables の管理
  3. 03DNS 解決の設定
  4. 04Wireguard または Tailscale VPN の設定
  5. 05インスタンス間ルーティングの設定

活用シーン

  1. 01Ubuntu または Debian サーバーのネットワーク設定
  2. 02SSH 接続を保ちながらサーバーポートを制限
  3. 03インスタンス間の VPN 接続
  4. 04コンテナ環境での DNS 問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill linux-networking

インストール後、Claude Code で/linux-networkingを入力して読み込まれたか確認します。

詳細

linux-networking

目的

このスキルでは、Netplan による IP 設定、UFW または Nftables によるファイアウォール管理、DNS の設定、Wireguard または Tailscale の VPN 設定、System76 などのシステムにおけるインスタンス間ルーティングなど、Linux のネットワーク関連タスクに対応します。

使用する場面

Ubuntu/Debian システムでのサーバー設定、ファイアウォールによるアプリケーションの保護、VPN による安全なリモートアクセスの確立、コンテナ化された環境での DNS の問題解決、データセンターやエッジデバイスにあるネットワーク接続されたインスタンス間のルーティング最適化に使用します。

主な機能

  • Netplan の YAML ファイルを使って静的/動的 IP アドレスを設定します(例:インターフェースを DHCP または静的 IP に設定)。
  • 簡単なルール(例:ポートの許可/拒否)には UFW、高度なパケットフィルタリングにはテーブルやチェーンを使う Nftables でファイアウォールを管理します。
  • systemd-resolved などのツールや /etc/resolv.conf の編集によって DNS 名前解決を処理します。
  • VPN を設定します。wg-quick を使ったピアツーピアトンネルには Wireguard、キー認証による自動メッシュネットワークには Tailscale を使用します。
  • System76 ハードウェアで、OSPF や静的ルートを設定して複数デバイス間の通信を可能にするなど、インスタンス間ルーティングを実装します。

使用パターン

root 権限が必要なコマンドは、常に sudo を付けて実行してください。スクリプトでは、NetworkManager や systemd-networkd などのサービスが有効かどうかを確認してください。機密データには環境変数を使います。たとえば、Tailscale の操作前に export TAILSCALE_API_KEY=$SERVICE_API_KEY を実行します。AI の応答では、タスクを順序立てたコマンドとして構成してください。最初に設定ファイルを検証し、次に変更を適用し、最後に診断ツールで確認します。自動化では、エラー確認を含む bash スクリプトでコマンドを実行します。たとえば、失敗時に終了するよう set -e を使用します。

主なコマンド/API

  • Netplan の設定:/etc/netplan/01-netcfg.yaml を編集して、network: version: 2 renderer: networkd ethernets: eno1: dhcp4: true のような内容を設定し、sudo netplan apply を実行します。
  • UFW ファイアウォール:sudo ufw enable で有効にし、sudo ufw allow 22/tcp のようなルールを追加して、sudo ufw status verbose で状態を確認します。
  • Nftables ファイアウォール:/etc/nftables.conf からルールを読み込みます(例:table ip filter { chain input { type filter hook input priority 0; policy accept; } })。その後、sudo nft -f /etc/nftables.conf で適用します。
  • DNS 管理:/etc/resolv.conf を編集して(例:nameserver 8.8.8.8 を追加)、または systemd-resolve --set-dns=8.8.8.8 eth0 を使用します。
  • Wireguard VPN:wg genkey | tee privatekey | wg pubkey > publickey でキーを生成し、[Interface] PrivateKey = Address = 10.0.0.1/24 を含むように /etc/wireguard/wg0.conf を設定して、sudo wg-quick up wg0 で起動します。
  • Tailscale VPN:tailscale up --authkey $TAILSCALE_API_KEY で認証し、Tailscale API を使ってピアを管理します(例:GET https://api.tailscale.com/api/v2/devices)。
  • インスタンス間ルーティング:sudo ip route add 192.168.1.0/24 via 10.0.0.1 で静的ルートを追加するか、quagga を使って System76 で OSPF を設定し、vtysh で router ospf などのコマンドを実行します。

統合に関する注意

Netplan コマンドの実行には ansible.builtin.shell などのモジュールを、ファイアウォールルールには community.general.ufw を使って、Ansible などのオーケストレーションツールと統合できます。Tailscale では、環境変数(例:$TAILSCALE_API_KEY)で API キーを渡し、デバイス管理に HTTP API を使用します。Wireguard は、sudo systemctl enable wg-quick@wg0 でサービスを有効にすることで systemd と統合できます。Netplan で NetworkManager との互換性を確保するには、NetworkManager を無効にします(例:sudo systemctl stop NetworkManager)。DNS については、/etc/resolv.conf をマウントして、コンテナ内で systemd-resolved に接続します。変更を適用する前に、nmcli や ip a などのツールで必ず設定を検証してください。

エラー処理

コマンドの先頭に sudo を付けて、権限エラーがないか確認します。netplan apply が「Invalid YAML」で失敗する場合は、yamllint /etc/netplan/01-netcfg.yaml でファイルを検証します。UFW/Nftables の場合は、sudo ufw status または sudo nft list ruleset を使ってルールをデバッグします。よくある問題としてポートの競合があります。ss -tuln で確認して解決してください。VPN のエラー:Wireguard の起動に失敗する場合は、wg show でキーを確認し、journalctl -u wg-quick@wg0 でログを確認します。Tailscale では、$TAILSCALE_API_KEY を再エクスポートして再試行し、認証エラーに対処します。ルーティングの問題:ip route show を使って診断します。ルートが伝播しない場合は、sudo systemctl restart networking でネットワークを再起動します。スクリプトでは、必ず >> error.log 2>&1 を使って出力を記録してください。

具体的な使用例

  1. Ubuntu で基本的なファイアウォールを設定する:まず、sudo ufw enable で UFW を有効にします。次に、sudo ufw allow 22 で SSH を許可します。sudo ufw status で確認します。これにより、リモートアクセスを許可しながらサーバーを保護できます。
  2. Wireguard VPN トンネルを設定する:/etc/wireguard/wg0.conf に [Interface] Address = 10.0.0.1/24 PrivateKey = <generated_key> を含む設定ファイルを作成します。sudo wg-quick up wg0 で起動します。ping 10.0.0.2 で接続をテストします。これにより、インスタンス間に安全なリンクが確立されます。

グラフの関係

  • クラスター linux に関連
  • タグ経由の接続:networking(直接リンク)、linux(親クラスター)、firewall(サブスキル)、vpn(依存関係)、tailscale(特定のツール)
  • 出力エッジ:より広範な保護のため linux-security と統合し、ネットワークマウントされたボリュームのため linux-storage にリンク
  • 入力エッジ:基本的な OS コマンドを linux-basics に依存し、自動化ワークフローのため devops-tools から参照されます

コメント