paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

nwdiagで自宅ネットワーク構成図を自動アップデート

久しぶりに記事書きます。
先月は積んでいたゲームをしたらハマってしまいずーっとプレイしてました。
プレイ日記を以前構築したwordpressに細々と書いていますが、少なくてもアクセスがあると嬉しいですね。
でもこっちのブログのほうがアクセス数は多いですw


先月末か今月頭か忘れましたが、本屋でこの本を見つけてジャケ買いしてしまいました。

ハッキング・ラボの作り方

セキュリティの勉強したかったのと、教科書的な仮想環境の作り方を見たかったというわけです。

内容はKaliLinuxを使って脆弱性サーバを攻撃してみようというものです。
仮想環境はVirtualBOXを使います。

自作サーバをまだ買えていないので、とりあえずはサブ用で買ったノートPC内に環境を作ってみました。

仮想環境はVMware Workstationで作ろうと考えていましたが、
無料版だと仮想ネットワークの構築が柔軟にできなさそうなのでVirtual Boxのほうがいいかもしれませんね。

Workstation Pro版買ってもいいんですが、結構お値段するんですよね。
ここにお金をかけるべきか迷うところです。

仮想環境構築

本に倣って構築しています。
詳細は本に書いてあるので割愛します。

Hyper visorはVirtual Box 6.0.4 r128413 (Qt5.6.2) です。

Kali Linuxは2NICでNATモードとHost Only Adapterを使います。

  • NATモード
    • Internet用
  • Host Only Adapter
    • ローカルLAN用

ローカルLANにはWindows7,10やmetasploitableサーバなんかを置いてKaliからハッキングしていくという流れです。 今後サーバを増やす時もローカルLAN内に増やしていくことになります。

構成図

本に構成図は書いてあるんですが、環境は自分で管理するべきですよね。
ハッキングラボの構成図を作ろうと思いますが、家で図面を作るのも大変で嫌ですよね。

なので以前作ったnwdiagの構成図がありますのでこれをアップデートしようと思います。
nwdiagでNW構成図を自動生成 - paloma blog

以前の環境はこちら。
Linuxだと背景が市松になるのでWindowsでアウトプットし直してます。

  • ソース
nwdiag {

  Internet [shape=cloud]
  Internet -- RT
  
  network HomeNW {
      address = "192.168.0.0/24"

      RT [address = "192.168.0.1"];
      Windows10 [address = "192.168.0.23"];
      Ubuntu18.04 [address = "192.168.0.10"];
      TVRecodeSV [address = "192.168.0.13"];
      RaspberryNAS [address = "192.168.0.19"]
  }
}
  • 構成図

f:id:paloma69:20190321203849p:plain

うーん、シンプルw

ネットワーク設計

自宅のセグメント用途はこんな感じです。

  • 192.168.0.0/24
    • デスクトップ用ネットワーク
  • 10.0.0.0/24
    • 検証マシン用ネットワーク
  • Virtual BOX NATネットワーク
    • Virtual Boxの挙動が不明なのでIPアドレス設計ができませんが、 このセグメント体も存在します

セグメントが少ないですが、自宅環境としてはこんなもんでしょう。

また、metasploitableとwordpressは未構築ですが、とりあえず設計ということで。

diagファイルアップデート

  • ソース
nwdiag {

  Internet [shape=cloud]
  Internet -- RT
  
  network HomeNW {
      address = "192.168.0.0/24"

      RT [address = "192.168.0.1"];
      Windows10 [address = "192.168.0.23"];
      Ubuntu18.04 [address = "192.168.0.10"];
      TVRecodeSV [address = "192.168.0.13"];
      RaspberryNAS [address = "192.168.0.19"];
      Win10Note [address = "192.168.0.12"]
  }

  network NATNW {
      Win10Note ;
      kali ;
      
  }

  network VirtualboxNW {
      address = "10.0.0.0/24"

      Win10Note [address = "10.0.0.1"];
      DHCPSV [address = "10.0.0.100"];
      kali [address = "10.0.0.2"];
      metasploitable [address = "10.0.0.3"];
      wordpress [address = "10.0.0.4"];
  }

}

nwdiagは自動描画できますが、インプットファイルは作成しなければいけません。
(結局自動じゃないけど許してね。ファイルの自動生成まではまだ作りこめません)

アウトプット

実行環境はこちら

  • OS
PS C:\Users\masashi\python\nwdiag> Get-WmiObject Win32_OperatingSystem


SystemDirectory : C:\WINDOWS\system32
Organization    :
BuildNumber     : 17763
RegisteredUser  : user
SerialNumber    : 00330-80000-00000-AA775
Version         : 10.0.17763



PS C:\Users\masashi\python\nwdiag> $psversiontable

Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

PS C:\Users\masashi\python\nwdiag> python --version
Python 3.7.2
PS C:\Users\masashi\python\nwdiag> python -m pip list | findstr nwdiag
You are using pip version 18.1, however version 19.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
nwdiag              1.0.4

アウトプットはコマンド一発!
ファイル名を指定しなければdiagファイルの名前が付きます。

> nwdiag .\home.diag

上記を実行するとhome.pngという画像ファイルが出力されます。

今回のアップデートでこんな感じになりました。

f:id:paloma69:20190321204255p:plain

ノードは少ないですがグッとネットワーク構成図っぽくなりましたね。

今後やりたいこと

  1. diagファイルをGithubに上げて管理する
  2. Kaliを使ってセキュリティの勉強をする
  3. 自宅環境にサーバ(物理マシン)を導入する

仮想環境内にpfsense等の仮想ルータを環境内に入れたいのと、
サーバを買ってGuestの引っ越しをしたいです。
資金はあるんですが、安くはない買い物なのでなかなか踏ん切りがつきません…。