0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Strongswan+久しぶりにGNS3(その46)

Posted at

StrongswanでIPsecを実現

GNS3(その46)はこじつけである。Strongswanを実現するのに、たまたまGNS3環境が実現しやすい+Wiresharkのキャプチャが取得しやすいといった背景。

環境

topology.png

左ルーター(Debian12.6-1)と右ルーター(Debian12.6-2)とで、StrongswanによるIPsecを確立させ、両端のPC1とPC2とが属するネットワークをIPsecの対象とする。IPアドレスは記載のとおり。

なお、上部にNATが見えるが、これはStrongswan(IPsec)実行には関連しない。DebianでのStrongswanインストール時にインターネット接続が必要だったため、利用したもの。

$ sudo apt install storongswan

ルーター(Debian)での設定

参考URL

/etc/sysctl.conf

net.ipv4.ip_forward=1

ルーターとして転送を有効化する。

/etc/ipsec.conf

Strongswanを使う上での最小設定を記載。

左ルーター(Debian12.6-1)

config setup
    charondebug="ike 2, knl 2, cfg 2"

conn r1-to-r2
    keyexchange=ikev2
    type=tunnel
    authby=secret
    auto=start
    left=172.16.1.1
    leftid=172.16.1.1
    leftsubnet=192.168.10.0/24
    right=172.16.1.2
    rightid=172.16.1.2
    rightsubnet=192.168.20.0/24
  • leftが自機、rightが対向機
  • IPアドレスやIPsec対象ネットワークを指定
  • leftid(172.16.1.1):後述するsecretsファイルで利用

右ルーター(Debian12.6-2)

config setup
    charondebug="ike 2, knl 2, cfg 2"

conn r2-to-r1
    keyexchange=ikev2
    type=tunnel
    authby=secret
    auto=start
    left=172.16.1.2
    leftid=172.16.1.2
    leftsubnet=192.168.20.0/24
    right=172.16.1.1
    rightid=172.16.1.1
    rightsubnet=192.168.10.0/24

左ルーター説明参照。

/etc/ipsec.secrets

こちらも最小設定である。

左ルーター

172.16.1.1 172.16.1.2 : PSK "password"

前述したconfファイルのleftid, rightidを指定し、事前共有鍵は”password”。

右ルーター

172.16.1.2 172.16.1.1 : PSK "password"

こちらも左ルーター説明参照。

検証

IPsec対象となるネットワーク間の通信として、PC1(192.168.10.1)からPC2(192.168.20.1)へのpingを実施。

PC1> ping 192.168.20.1

84 bytes from 192.168.20.1 icmp_seq=1 ttl=62 time=38.590 ms
84 bytes from 192.168.20.1 icmp_seq=2 ttl=62 time=7.295 ms
84 bytes from 192.168.20.1 icmp_seq=3 ttl=62 time=13.027 ms
84 bytes from 192.168.20.1 icmp_seq=4 ttl=62 time=5.841 ms
84 bytes from 192.168.20.1 icmp_seq=5 ttl=62 time=4.669 ms

この時のIPsecステータスは下記となる。

$ sudo ipsec status
Security Associations (1 up, 0 connecting):
    r1-to-r2[2]: ESTABLISHED 2 minutes ago, 172.16.1.1[172.16.1.1]...172.16.1.2[172.16.1.2]
    r1-to-r2{2}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c7718a78_i c249e70c_o
    r1-to-r2{2}:   192.168.10.0/24 === 192.168.20.0/24

他にも、”ipsec statusall”、”ip xfrm state”、”ip xfrm policy”などで、IPsec状況が把握できる。

ルーター間のWiresharkで取得したネットワークキャプチャデータも紹介。まずはIKE。

ike500のコピー.png

ike4500のコピー.png

UDPポート500とポート4500(NAT-Traversal)とが混在している。理由は不明。

ping(ICMP)はESP内にある。

ESPのコピー.png

先ほどの”ipsec status”で見えたSPIである”c7718a78”と”c249e70c”とが確認できる。

なお、左ルーターのルーティングテーブル(下記)には、対向側のローカルネットワーク(192.168.2.0/24)の情報は存在しない。(右ルーターでも同様。)

$ ip route
172.16.1.0/24 dev ens4 proto kernel scope link src 172.16.1.1 
192.168.10.0/24 dev ens5 proto kernel scope link src 192.168.10.254

IPsecの枠組みでルーティングしているということであろうか。

おまけ

GNS3には、各種OSに対応したApplianceというものが存在。

今回ルーターとして利用したDebianもここから導入。

debianByqemu.png

x86_64プラットフォームであり、qemuで実行しているようだ。

$ uname -m
x86_64

EOF

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?