mcpField
C
configuring-network-segmentation-with-vlans

configuring-network-segmentation-with-vlans

github.com/mukul975セキュリティ35.2k124 回インストール8 週間前に更新
リポジトリ

configuring-network-segmentation-with-vlans について

VLAN によるネットワーク分割と VLAN 間制御を計画・設定するセキュリティスキルです。ネットワーク担当者向けに、スイッチの強化、ルーティング、DHCP、分離の検証を案内します。

主な機能

  1. 01VLAN セキュリティゾーンの設計
  2. 02802.1Q トランクの設定
  3. 03VLAN ホッピングに備えたスイッチ強化
  4. 04VLAN 間ルーティングと ACL の設定
  5. 05VLAN ごとの DHCP と DNS の設定
  6. 06ネットワーク分離の検証

活用シーン

  1. 01社内、サーバー、ゲスト、IoT ネットワークの分離
  2. 02PCI-DSS 対応に向けた決済システムの隔離
  3. 03セグメント間のラテラルムーブメントの抑制

インストール

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill configuring-network-segmentation-with-vlans

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
references/
api-reference.md
scripts/
agent.py

詳細

VLAN を使用したネットワークセグメンテーションの構成

使用する場面

  • エンタープライズネットワークを、相互に分離されたセキュリティゾーン(社内、サーバー、DMZ、ゲスト、IoT)に分割する場合
  • 機密データをネットワークから分離するよう義務付けるコンプライアンス要件(PCI-DSS、HIPAA、SOC 2)を満たす場合
  • ネットワークセグメント間のラテラルムーブメントを防ぎ、セキュリティインシデントの影響範囲を縮小する場合
  • 高リスクのデバイス(IoT、BYOD、レガシーシステム)を重要なインフラストラクチャから分離する場合
  • VLAN とファイアウォールルール、アクセス制御リストを組み合わせて、多層防御を実装する場合

レイヤー 3 フィルタリングを行わずに VLAN を唯一のセキュリティ制御として使用する場合、エアギャップが必要なネットワークを分離する場合、または VLAN ホッピング攻撃に対する適切なスイッチの強化を行わない場合は、VLAN を使用しないでください。

前提条件

  • 802.1Q VLAN トランキングに対応したマネージドスイッチ(Cisco Catalyst、HP Aruba、Juniper EX など)
  • VLAN 間ルーティングとアクセス制御を行うレイヤー 3 スイッチまたはファイアウォール
  • VLAN の割り当て、IP サブネット、トラフィックフローの要件を記載したネットワーク設計ドキュメント
  • 特権設定モードでスイッチに接続するためのコンソールまたは SSH アクセス
  • 802.1Q トランキング、STP、VLAN 間ルーティングの概念に関する理解

ワークフロー

ステップ 1:VLAN アーキテクチャを設計する
# Define VLANs based on security zones and function

VLAN Plan:
  VLAN 10  - CORPORATE    (10.10.10.0/24)  - Employee workstations
  VLAN 20  - SERVERS      (10.10.20.0/24)  - Internal servers
  VLAN 30  - DMZ          (10.10.30.0/24)  - Internet-facing servers
  VLAN 40  - GUEST        (10.10.40.0/24)  - Guest WiFi
  VLAN 50  - IOT          (10.10.50.0/24)  - IoT/OT devices
  VLAN 60  - VOIP         (10.10.60.0/24)  - VoIP phones
  VLAN 100 - MANAGEMENT   (10.10.100.0/24) - Switch/AP management
  VLAN 999 - QUARANTINE   (10.10.99.0/24)  - Isolated/compromised hosts
  VLAN 998 - NATIVE_UNUSED                  - Native VLAN (no traffic)

# Traffic flow matrix:
# CORPORATE -> SERVERS: Allowed (specific ports)
# CORPORATE -> DMZ: Allowed (HTTP/HTTPS only)
# CORPORATE -> GUEST: Denied
# CORPORATE -> IOT: Denied
# GUEST -> Any Internal: Denied
# IOT -> SERVERS: Allowed (specific ports to specific hosts only)
# DMZ -> SERVERS: Allowed (database ports only)
# MANAGEMENT -> All: Allowed (from management stations only)
ステップ 2:Cisco Catalyst スイッチで VLAN を構成する
! Enter configuration mode
enable
configure terminal

! Create VLANs
vlan 10
  name CORPORATE
  exit
vlan 20
  name SERVERS
  exit
vlan 30
  name DMZ
  exit
vlan 40
  name GUEST
  exit
vlan 50
  name IOT
  exit
vlan 60
  name VOIP
  exit
vlan 100
  name MANAGEMENT
  exit
vlan 998
  name NATIVE_UNUSED
  exit
vlan 999
  name QUARANTINE
  exit

! Configure access ports for workstations (VLAN 10)
interface range GigabitEthernet1/0/1-24
  switchport mode access
  switchport access vlan 10
  switchport nonegotiate
  spanning-tree portfast
  spanning-tree bpduguard enable
  no shutdown
  exit

! Configure access ports for servers (VLAN 20)
interface range GigabitEthernet1/0/25-36
  switchport mode access
  switchport access vlan 20
  switchport nonegotiate
  spanning-tree portfast
  spanning-tree bpduguard enable
  no shutdown
  exit

! Configure trunk ports to other switches
interface GigabitEthernet1/0/48
  switchport mode trunk
  switchport trunk encapsulation dot1q
  switchport trunk native vlan 998
  switchport trunk allowed vlan 10,20,30,40,50,60,100
  switchport nonegotiate
  no shutdown
  exit

! Configure trunk to firewall/router
interface GigabitEthernet1/0/47
  switchport mode trunk
  switchport trunk encapsulation dot1q
  switchport trunk native vlan 998
  switchport trunk allowed vlan 10,20,30,40,50,60,100
  switchport nonegotiate
  no shutdown
  exit

! Shutdown unused ports
interface range GigabitEthernet1/0/37-46
  shutdown
  switchport mode access
  switchport access vlan 999
  exit
ステップ 3:VLAN ホッピングに対するスイッチのセキュリティを強化する
! Disable DTP on all ports (prevents switch spoofing)
interface range GigabitEthernet1/0/1-46
  switchport nonegotiate
  exit

! Set native VLAN to unused VLAN on all trunks
interface range GigabitEthernet1/0/47-48
  switchport trunk native vlan 998
  exit

! Enable DHCP Snooping
ip dhcp snooping
ip dhcp snooping vlan 10,20,30,40,50,60
interface GigabitEthernet1/0/47
  ip dhcp snooping trust
  exit

! Enable Dynamic ARP Inspection
ip arp inspection vlan 10,20,30,40,50,60
interface GigabitEthernet1/0/47
  ip arp inspection trust
  exit

! Enable IP Source Guard (prevents IP spoofing)
interface range GigabitEthernet1/0/1-36
  ip verify source
  exit

! Enable Port Security
interface range GigabitEthernet1/0/1-24
  switchport port-security
  switchport port-security maximum 2
  switchport port-security violation restrict
  switchport port-security aging time 60
  exit

! Set VTP to transparent mode (prevents VTP attacks)
vtp mode transparent

! Enable BPDU Guard globally
spanning-tree portfast bpduguard default

! Enable Storm Control
interface range GigabitEthernet1/0/1-36
  storm-control broadcast level 10
  storm-control multicast level 10
  storm-control action shutdown
  exit
ステップ 4:ACL を使用して VLAN 間ルーティングを構成する
! On the Layer 3 switch or firewall, configure SVIs
interface Vlan10
  ip address 10.10.10.1 255.255.255.0
  no shutdown
  exit
interface Vlan20
  ip address 10.10.20.1 255.255.255.0
  no shutdown
  exit
interface Vlan30
  ip address 10.10.30.1 255.255.255.0
  no shutdown
  exit
interface Vlan40
  ip address 10.10.40.1 255.255.255.0
  no shutdown
  exit
interface Vlan50
  ip address 10.10.50.1 255.255.255.0
  no shutdown
  exit

! ACL: Corporate to Servers (allow specific services)
ip access-list extended CORP-TO-SERVERS
  permit tcp 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255 eq 80
  permit tcp 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255 eq 443
  permit tcp 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255 eq 445
  permit udp 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255 eq 53
  permit icmp 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255 echo
  deny ip any any log
  exit

! ACL: Guest to Internet only (deny all internal)
ip access-list extended GUEST-OUTBOUND
  deny ip 10.10.40.0 0.0.0.255 10.0.0.0 0.255.255.255
  deny ip 10.10.40.0 0.0.0.255 172.16.0.0 0.15.255.255
  deny ip 10.10.40.0 0.0.0.255 192.168.0.0 0.0.255.255
  permit tcp 10.10.40.0 0.0.0.255 any eq 80
  permit tcp 10.10.40.0 0.0.0.255 any eq 443
  permit udp 10.10.40.0 0.0.0.255 any eq 53
  deny ip any any log
  exit

! ACL: IoT limited access
ip access-list extended IOT-OUTBOUND
  permit tcp 10.10.50.0 0.0.0.255 host 10.10.20.10 eq 443
  permit tcp 10.10.50.0 0.0.0.255 any eq 443
  permit udp 10.10.50.0 0.0.0.255 host 10.10.20.1 eq 53
  deny ip 10.10.50.0 0.0.0.255 10.10.50.0 0.0.0.255 log
  deny ip any any log
  exit

! Apply ACLs to VLAN interfaces
interface Vlan10
  ip access-group CORP-TO-SERVERS out
  exit
interface Vlan40
  ip access-group GUEST-OUTBOUND in
  exit
interface Vlan50
  ip access-group IOT-OUTBOUND in
  exit
ステップ 5:VLAN ごとに DHCP と DNS を構成する
! DHCP pools for each VLAN
ip dhcp pool CORPORATE
  network 10.10.10.0 255.255.255.0
  default-router 10.10.10.1
  dns-server 10.10.20.10
  domain-name corp.example.com
  lease 1
  exit

ip dhcp pool GUEST
  network 10.10.40.0 255.255.255.0
  default-router 10.10.40.1
  dns-server 1.1.1.1 8.8.8.8
  lease 0 4
  exit

ip dhcp pool IOT
  network 10.10.50.0 255.255.255.0
  default-router 10.10.50.1
  dns-server 10.10.20.10
  lease 7
  exit

! Exclude gateway and server IPs from DHCP pools
ip dhcp excluded-address 10.10.10.1 10.10.10.10
ip dhcp excluded-address 10.10.40.1 10.10.40.10
ip dhcp excluded-address 10.10.50.1 10.10.50.10
ステップ 6:セグメンテーションを検証してテストする
# From a workstation on VLAN 10 (Corporate):
# Should succeed:
ping 10.10.20.10          # Server access
curl https://10.10.20.10  # HTTPS to server

# Should fail:
ping 10.10.40.100         # Guest VLAN - should be blocked
ping 10.10.50.100         # IoT VLAN - should be blocked

# From a device on VLAN 40 (Guest):
# Should succeed:
ping 8.8.8.8              # Internet access
curl https://www.google.com

# Should fail:
ping 10.10.10.1           # Corporate gateway - blocked
ping 10.10.20.10          # Server - blocked

# Verify switch configuration
show vlan brief
show interfaces trunk
show ip arp inspection statistics
show ip dhcp snooping binding
show port-security
show ip access-lists

# Run VLAN hopping tests (from authorized pentest)
# These should all fail if hardening is correct:
# 1. DTP negotiation - should fail (nonegotiate)
# 2. Double tagging - should fail (native VLAN 998)
# 3. ARP spoofing - should fail (DAI enabled)

主要な概念

用語定義
VLAN(仮想 LAN)物理的な場所にかかわらず、スイッチポートを相互に分離されたブロードキャストドメインにグループ化する、レイヤー 2 の論理ネットワーク分割
802.1Q トランキングイーサネットフレームに 4 バイトのヘッダーを追加し、トランクリンク上でフレームが属する VLAN を識別する VLAN タグ付けの IEEE 標準
VLAN 間ルーティングアクセス制御リストを備えたルーター、レイヤー 3 スイッチ、またはファイアウォールを使用して VLAN 間でトラフィックをレイヤー 3 転送すること
ネイティブ VLANトランクポートでタグなしフレームに割り当てられる VLAN。VLAN ホッピング攻撃を防ぐため、未使用の VLAN に設定する必要があります
DHCP スヌーピングDHCP メッセージを検証し、IP・MAC・ポートの対応関係を記録したバインディングテーブルを構築して、不正な DHCP サーバーを防止するスイッチ機能
ポートセキュリティポートごとの MAC アドレス数を制限し、違反時にシャットダウンや制限などの措置を取るスイッチ機能

ツールとシステム

  • Cisco Catalyst/Nexus:VLAN、トランキング、セキュリティ機能を包括的にサポートするエンタープライズ向けマネージドスイッチ
  • HP Aruba CX:REST API による管理機能と VLAN セグメンテーション機能を備えたエンタープライズ向けスイッチ
  • pfSense/OPNsense:ステートフルなアクセス制御による VLAN 間ルーティング向けのオープンソースファイアウォール
  • NetBox:VLAN の割り当て、IP アドレス設定、ネットワークトポロジを記録するためのオープンソース IPAM・DCIM ツール
  • Nmap:VLAN 境界を越えた到達可能性をテストして、セグメンテーションの有効性を検証するネットワークスキャナー

よくあるシナリオ

シナリオ:小売業向けの PCI-DSS 準拠ネットワークセグメンテーションの実装

コンテキスト:小売チェーンでは、PCI-DSS の要件を満たすため、決済カード処理システムを一般企業ネットワークから分離する必要があります。現在のフラットなネットワークでは、POS 端末、従業員のワークステーション、在庫サーバー、ゲスト WiFi が単一の VLAN 上にあります。この環境では Cisco Catalyst 9300 スイッチを使用しています。

アプローチ:

  1. VLAN アーキテクチャを設計します:POS 端末を VLAN 50(CDE)、企業ネットワークを VLAN 10、サーバーを VLAN 20、ゲストを VLAN 40 に配置します
  2. すべてのアクセスレイヤースイッチに VLAN を作成し、機能に応じてアクセスポートを設定します
  3. スイッチ間のトランクリンクを設定し、許可する VLAN を明示的に指定します(「all」トランクは使用しません)
  4. すべてのトランクでネイティブ VLAN を 998(未使用)に設定し、すべてのポートで DTP を無効にします
  5. レイヤー 3 スイッチで ACL を設定します:CDE VLAN からは決済処理業者の IP のポート 443 にのみ接続できるようにし、CDE との間のその他の VLAN 間トラフィックを禁止します
  6. すべてのアクセスポートで DHCP snooping、DAI、ポートセキュリティを有効にします
  7. 各 VLAN からペネトレーションテストを実施してセグメンテーションを検証し、CDE が完全に隔離されていることを確認します

落とし穴:

  • アクセスポートで DTP を有効にしたままにすると、VLAN ホッピングによって CDE に到達される可能性があります
  • VLAN 1 をネイティブ VLAN として使用すると、ダブルタグ攻撃が可能になります
  • トランクで許可する VLAN を制限しないと、CDE を含むすべての VLAN が重要でないスイッチにも転送されます
  • 特定の POS 端末 IP ではなく、「any」ソースから CDE サーバーへのアクセスを許可する ACL を作成する

出力形式

## Network Segmentation Implementation Report

**Network**: Retail Store #42
**Switch Platform**: Cisco Catalyst 9300
**VLANs Configured**: 8

### VLAN Summary

| VLAN ID | Name | Subnet | Ports | Purpose |
|---------|------|--------|-------|---------|
| 10 | CORPORATE | 10.10.10.0/24 | Gi1/0/1-24 | Employee workstations |
| 20 | SERVERS | 10.10.20.0/24 | Gi1/0/25-36 | Internal servers |
| 30 | DMZ | 10.10.30.0/24 | Gi2/0/1-4 | Internet-facing |
| 40 | GUEST | 10.10.40.0/24 | WiFi AP trunk | Guest WiFi |
| 50 | CDE | 10.10.50.0/24 | Gi2/0/5-12 | POS terminals |
| 100 | MGMT | 10.10.100.0/24 | Gi1/0/48 | Switch management |
| 998 | NATIVE | N/A | Trunks only | Unused native |
| 999 | QUARANTINE | 10.10.99.0/24 | Unused ports | Isolation |

### Security Hardening Status

| Control | Status |
|---------|--------|
| DTP Disabled (nonegotiate) | All ports |
| Native VLAN (998) | All trunks |
| DHCP Snooping | VLANs 10,20,40,50 |
| Dynamic ARP Inspection | VLANs 10,20,40,50 |
| Port Security | Access ports |
| BPDU Guard | Access ports |
| Unused Ports Shutdown | 10 ports in VLAN 999 |
| VTP Transparent Mode | Enabled |

コメント