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?

Wireguard(その2)&久しぶりにGNS3(その41)

Posted at

NAT環境下でWireguardを確認

その1」の続き。WireguardはUDPパケットである。なので、NAT環境下でも問題なく動作するはず。その確認。

環境

下記のようなもの。

TopologyNAT12.png

中央にNAT(ルーター)があり、上がNAT内側、下がNAT外側である。上下のRouter1およびRouter2でWireguardを確立させ、末端のPC1とPC2との通信を暗号化(トンネル化)する。

設定

Router1およびRouter2でのルーティング設定

/etc/sysctl.conf
net.ipv4.ip_forward=1

NATの設定(GNS3)

関連する部分のみ記載。

hostname NAT

interface FastEthernet1/0
 ip address 172.16.1.1 255.255.255.0
 ip nat inside

interface FastEthernet1/1
 ip address 172.16.2.1 255.255.255.0
 ip nat outside

!ip route 192.168.10.0 255.255.255.0 172.16.1.2
!ip route 192.168.20.0 255.255.255.0 172.16.2.2

ip nat inside source list 10 interface FastEthernet1/1 overload
!
access-list 10 permit any
  • インターフェースにIPアドレスアサイン
  • NAT内側および外側の設定
  • NAT対象ネットワークの指定

なお、上記でコメントとなっているスタティックルート設定(ip route)はNATルーターから末端ネットワーへのルートである。よって、Wireguard時には不要であるが、Wireguard適用前の通信時に利用した。

Router1およびRouter2のネットワークインターフェース

Router2

こちらは常に固定。

/etc/network/interface
auto ens4
iface ens4 inet static
	address 172.16.2.2
	netmask 255.255.255.0

auto ens5
iface ens5 inet static
	address 192.168.20.1
	netmask 255.255.255.0

NAT外側となるため、対向ルーターであるRouter1側のネットワーク指定は不要。

Router 1

PC側のインターフェースは常に固定。

/etc/network/interface
auto ens5
iface ens5 inet static
	address 192.168.10.1
	netmask 255.255.255.0
Wireguard未使用

後ほど、パケットを比較するため、Wireguard適用前のインターフェースを記載。

/etc/network/interface
auto ens4
iface ens4 inet static
	address 172.16.1.2
	netmask 255.255.255.0
	post-up route add -net 172.16.2.0/24 gw 172.16.1.1
	post-up route add -net 192.168.20.0/24 gw 172.16.1.1
Wireguard使用
/etc/network/interface
auto ens4
iface ens4 inet static
	address 172.16.1.2
	netmask 255.255.255.0
	post-up route add -net 172.16.2.0/24 gw 172.16.1.1
#	post-up route add -net 192.168.20.0/24 gw 172.16.1.1

Wireguardでトンネル化されるため、対向ルーターであるRouter2のLAN側のネットワークへのルート指定は不要となる。

Wireguard

鍵作成

詳細は、「その1」参照。

Router1
$ wg genkey | sudo tee /etc/wireguard/wg1.secret | wg pubkey | sudo tee /etc/wireguard/wg1.public
Router2
$ wg genkey | sudo tee /etc/wireguard/wg2.secret | wg pubkey | sudo tee /etc/wireguard/wg2.public

設定ファイル

こちらも、詳細は「その1」参照。

Router1
debian@Router1:~$ sudo cat /etc/wireguard/wg1.conf
[Interface]
PrivateKey = 2Cd38b+7RDpOG7MjDNaWQ1Hi9n7/pgqohxtcQDsbZ1M=
Address = 10.1.1.1/30
ListenPort = 41000

[Peer]
PublicKey = uPvlAwRi5m1XJ7sZMnyOfDTqUKWI5IPYQEXK+pK6k1Q=
AllowedIPs = 10.1.1.2/32,192.168.20.0/24
Endpoint = 172.16.2.2:41000
  • PrivateKey:自分の秘密鍵
  • PublicKey:相手の公開鍵
Router2
debian@Router2:~$ sudo cat /etc/wireguard/wg2.conf
[Interface]
PrivateKey = WIKC6bsd3qobFlfrSOehZG1BAlzQ8E8HxSGTuKximHU=
Address = 10.1.1.2/30
ListenPort = 41000

[Peer]
PublicKey = RtUPcHXImU/IP+BZdlOO74E4kYgqoRsBDNozPWvIJko=
AllowedIPs = 10.1.1.1/32,192.168.10.0/24
#Endpoint = 172.16.1.2:41000

起動

Router1

debian@Router1:~$ sudo wg-quick up wg1
[#] ip link add wg1 type wireguard
[ 1370.539781] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[ 1370.546313] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[#] wg setconf wg1 /dev/fd/63
[#] ip -4 address add 10.1.1.1/30 dev wg1
[#] ip link set mtu 1420 up dev wg1
[#] ip -4 route add 192.168.20.0/24 dev wg1

Router2

debian@Router2:~$ sudo wg-quick up wg2
[#] ip link add wg2 type wireguard
[  155.372788] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[  155.374400] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[#] wg setconf wg2 /dev/fd/63
[#] ip -4 address add 10.1.1.2/30 dev wg2
[#] ip link set mtu 1420 up dev wg2
[#] ip -4 route add 192.168.10.0/24 dev wg2

検証

NAT内側にある末端のPC1からNAT外側の末端PC2へのpingの実行。

PC1> ping 192.168.20.2

84 bytes from 192.168.20.2 icmp_seq=1 ttl=62 time=61.306 ms
84 bytes from 192.168.20.2 icmp_seq=2 ttl=62 time=26.725 ms
84 bytes from 192.168.20.2 icmp_seq=3 ttl=62 time=28.452 ms
84 bytes from 192.168.20.2 icmp_seq=4 ttl=62 time=29.290 ms
84 bytes from 192.168.20.2 icmp_seq=5 ttl=62 time=32.599 ms

Wireguard設定前

NAT-Router2

NAT-R2_nonWのコピー.png

Wireguard設定前は、プロトコルICMPとNAT外側のIPアドレスおよび末端PC2のIPアドレスが見える。

Router2-PC2

R2-PC2_nonWのコピー.png

こちらも同様。

Wireguard使用時

NAT-Router2

NAT-R2_Wのコピー.png

Wireguardパケットが見えるとともに、NAT外側のIPアドレスおよびRouter2のIPアドレスが見える。

Router2-PC2

R2-PC2_Wのコピー.png

ここは暗号化されていないため、ICMPおよび末端PCのIPアドレスが見える。

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?