ビーコンの創出

なんか作ったり報告したり。

業務ネットワーク構築を疑似体験してきた(IPAワークショップ)

2018年12月26日にセキュリティキャンプ参加生向けのIPAワークショップがあったので行ってきました。

講師:金子 正人さん(IPAセキュリティ・キャンプグループ)

SEIL/x86で業務ネットワーク構築を疑似体験しながらIPsecの通信の仕組みを理解していきます。

SEIL/x86 とは

f:id:souring:20181226180515p:plain

x86アーキテクチャベースの高機能ソフトウェアルータです。私は正直よくわかりません。

なぜSEIL?かと言うと学生なら無償(アカデミックライセンス)で利用できるからです。

ネットワーク構築の勉強するとき中古のルータ買うなどが一般だったらしいです。

色々な機能が実装できます。

ネットワーク構成

今回は以下のような構成のネットワークを作ります。 私は受講者1です。

f:id:souring:20181226180205p:plain
ネットワーク構成図

物理構成

机の上に用意されたサーバーとPCを、構成図の通りにLANケーブルで配線します。

f:id:souring:20181226185730j:plain
配線構造

f:id:souring:20181226185740j:plain
リピータハブ

SEIL/x86の基本設定

挿したら使える家庭用ネットワーク機器と違って業務用ネットワーク機器は設定をする必要があります。

設定用のPCとネットワーク機器を「シリアルコンソールケーブル」を使ってシリアルポートに接続します。

Macならばドライバをインストールしたのち、screen /dev/tty.usbserial 38400で接続します。

WindowsはTera Termを使っていました。

以下、SEILテクニカルマニュアル のコマンドリファレンスを参照しながら設定をしていきます。

show configshow status のコマンドを使うと設定を確認できます。

ホスト名の設定

机に配られたポカリから命名しました。

# hostname "POCARISWEAT"

ログインパスワードの設定

# password admin algorithm blowfish

インターフェースの設定

LANポートとIPアドレスを対応づけます。 受講者1なので以下のようになります。

# interface lan0 address 10.0.1.1/28
# interface lan1 address 192.168.1.1/24

これで受講者3のWANへ疎通できます。

f:id:souring:20181226191248p:plain
受講者3のWANへ疎通確認

スタティックルートの設定

続いて、LANへ疎通させます。

# route add 192.168.2.0/24 10.0.1.2
# route add 192.168.3.0/24 10.0.1.3

f:id:souring:20181226192005p:plain
受講者3のLANへ疎通確認

パケットキャプチャで通信内容確認

WiresharkでWANを流れるパケットをキャプチャしてみます。

これはIPsecを使う前なので通信内容が丸見えです。

f:id:souring:20181227014410p:plain
WANを流れるパケットの様子(IPsecなし)

IPsec

さあ、ここからが本番です。

IPsecで通信を暗号化して盗聴や改ざんに強い通信にしましょう。

まず、一旦設定をリセットします。

load-from stdin で最小限のコンフィグをロードして、save-to flashrom で内臓フラッシュメモリ(startup-config)に保存します。

IPsecとは

VPNで利用される主な技術のひとつです。プロトコルと言うよりもフレームワークのようなものであり、通信の枠組みを規定しています。 改ざん検知や暗号化ができます。

IPsec通信全体の流れ

1.IKE-SA

鍵情報を安全に運ぶためのトンネルを作るフェーズです。 以下の5つのパラメータをあらかじめ決めて通信相手と同じ設定にします。

  • 暗号化アルゴリズム
  • 認証アルゴリズム
  • SA のライフタイム
  • ピアの認証方式
  • Diffie-Hellman鍵交換のパラメータ情報

2.IPsec-SA

IPsecでの暗号化通信を行うトンネルを作るフェーズです。 以下の5つのパラメータをあらかじめ決めて通信相手と同じ設定にします。

  • セキュリティプロトコル
  • 暗号化アルゴリズム
  • 認証アルゴリズム
  • SA のライフタイム
  • IPsec の通信モード

3.実際のIPsec通信(暗号化通信)

IPsecの設定

ルーティングベースIPsec(IPsecインタフェース)の設定手順 を見ながらIPsecを設定しました。

入力したコマンドは以下の通りです。

IPsecインタフェースを設定
# interface ipsec0 tunnel 10.0.1.1 10.0.1.2
# interface ipsec0 unnumbered
IPsecインタフェース向けの経路を設定
# route add 192.168.2.0/24 ipsec0
IKEプロポーザル・IPsec-SAプロポーザルの設定

ここで、あらかじめ決めた5つのパラメータを設定します。

# ike proposal add IKEP02 encryption aes hash sha1 authentication preshared-key dh-group modp1024 lifetime-of-time 12h
# ike preshared-key add "10.0.1.2" "pocarisweat"
# ipsec security-association proposal add SAP02 pfs-group modp1024 authentication-algorithm hmac-sha1 encryption-algorithm aes lifetime-of-time 6h
IKEピアの設定
# ike peer add PEER02 address 10.0.1.2 exchange-mode main proposals IKEP02 my-identifier address peers-identifier address initial-contact enable tunnel-interface enable
# ike auto-initiation enable
IPsec-SAを設定する
# ipsec security-association add SA02 tunnel-interface ipsec0 ike SAP02 esp enable
疎通確認

これでping 192.168.2.1が通るはずです。

うまくいかなかったらshow status ikeshow status ipsecで設定を確認します。

パケットキャプチャで通信内容確認

再び、WiresharkでWANを流れるパケットをキャプチャしてみます。

ESPとはIPsecに使われるプロトコルであり、暗号化されていて中身はわかりません

f:id:souring:20181227014456p:plain
WANを流れるパケットの様子(IPsecあり)

感想

ネットワーク構築はハードルが高く感じていたので、今回のWSのようにやり方を懇切丁寧に教えてもらえたのはありがたいです。

公衆Wi-Fi用のVPN構築したいと思っていたので、学んだことを活かせそう?