WireGuard : クライアントの設定 (FreeBSD)2024/09/20 |
シンプルで高速な VPN サーバー、 WireGuard のインストールと設定です。 当例では以下のような環境で WireGuard クライアントを設定します。 インターネットを経由するため、事前に、自身の環境で、WireGuard サーバー側のローカルネットワークとインターネットの境界ルーターに、IP マスカレードの設定が必要です。 下例の場合、WireGuard クライアントからインターネットを経由して WireGuard サーバーのグローバル IP アドレス宛てに来るパケットを、[Router#1] 上で、WireGuard サーバーの IP アドレス (10.0.0.30) の、WireGuard 設定ファイルで指定した待ち受けポート (UDP) に転送するよう設定します。 +------------------------+ | [ WireGuard Server ] |172.16.100.1 (VPN IP) | dlp.srv.world +--------+ | |wg0 | +-----------+------------+ | vtnet0|10.0.0.30/24 | | | | Local Network | +------+-----+ | -------| Router#1 |---------------|----- +------+-----+ | | | Internet | Internet | | | +------+-----+ | -------| Router#2 |---------------|----- +------+-----+ | | Local Network | | | vtnet0|192.168.10.30/24 | +-----------+------------+ | | [ WireGuard Client ] |wg0 | | +--------+ | |172.16.100.5 (VPN IP) +------------------------+ |
[1] |
事前に、サーバー側で生成した [クライアント用プライベートキー] と [サーバー用パブリックキー] を、設定するクライアントに転送、または、内容を通知しておきます。 |
[2] | WireGuard をインストールします。 |
root@client:~ # pkg install -y wireguard-tools
|
[3] | WireGuard の設定です。 |
root@client:~ #
umask 077
# 設定ファイル新規作成 # [wg0.conf] ⇒ [(VPN インターフェース名).conf] のルール内で任意の名称で OK root@client:~ # vi /usr/local/etc/wireguard/wg0.conf [Interface] # サーバー側で生成したクライアント用プライベートキーを指定 PrivateKey = eMJa2BQliS8mNFZiYrebWaCFlda9cNC9JPEvWOb3G2A= # VPN インターフェースに割り当てる IP アドレス Address = 172.16.100.5/24 [Peer] # サーバー側で生成したサーバー用パブリックキーを指定 PublicKey = AazFOtPUm8ZM7rfqMhOYdF4UFKXENOkSB7r0LMxZNnA= # 接続を許可する IP アドレス または ネットワーク範囲 # 下例は、WireGuard サーバーの VPN IP アドレスと、実際のローカルネットワークを許可 AllowedIPs = 172.16.100.1, 10.0.0.0/24 # サーバーのグローバル IP アドレス:ポート # (下例は実際はプライベート用の IP アドレスだが、自身の環境に置き換え) EndPoint = 172.29.10.100:51820 sysrc wireguard_interfaces="wg0" wireguard_interfaces: -> wg0 root@client:~ # service wireguard enable wireguard enabled in /etc/rc.conf root@client:~ # service wireguard start [#] ifconfig wg create name wg0 [#] wg setconf wg0 /dev/stdin [#] ifconfig wg0 inet 172.16.100.5/24 alias [#] ifconfig wg0 mtu 1420 [#] ifconfig wg0 up [#] route -q -n add -inet 172.16.100.1/32 -interface wg0 [#] route -q -n add -inet 10.0.0.0/24 -interface wg0 [+] Backgrounding route monitorroot@client:~ # ifconfig vtnet0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500 options=4c07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,TXCSUM_IPV6> ether 52:54:00:7c:de:11 inet 192.168.0.30 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054:ff:fe7c:de11%vtnet0 prefixlen 64 scopeid 0x1 media: Ethernet autoselect (10Gbase-T <full-duplex>) status: active nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL> lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 groups: lo nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> wg0: flags=10080c1<UP,RUNNING,NOARP,MULTICAST,LOWER_UP> metric 0 mtu 1420 options=80000<LINKSTATE> inet 172.16.100.5 netmask 0xffffff00 groups: wg nd6 options=109<PERFORMNUD,IFDISABLED,NO_DAD> # 接続状態確認 root@client:~ # wg show interface: wg0 public key: lFQASdqSmQhPXuEtTO8/xBVrbgpXSVZQhP9mQAbyNUw= private key: (hidden) listening port: 23438 peer: AazFOtPUm8ZM7rfqMhOYdF4UFKXENOkSB7r0LMxZNnA= endpoint: 172.29.10.100:51820 allowed ips: 10.0.0.0/24, 172.16.100.1/32 |
[4] | VPN 接続が確立できたら、クライアントからサーバー側のローカルネットワークにアクセスできるか確認しておくとよいでしょう。 |
root@client:~ # ping -c 3 10.0.0.30 PING 10.0.0.30 (10.0.0.30): 56 data bytes 64 bytes from 10.0.0.30: icmp_seq=0 ttl=64 time=3.302 ms 64 bytes from 10.0.0.30: icmp_seq=1 ttl=64 time=1.205 ms 64 bytes from 10.0.0.30: icmp_seq=2 ttl=64 time=1.264 ms --- 10.0.0.30 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 1.205/1.924/3.302/0.975 msroot@client:~ # ssh -o StrictHostKeyChecking=no ubuntu@10.0.0.203 hostname Warning: Permanently added '10.0.0.203' (ED25519) to the list of known hosts. ubuntu@10.0.0.203's password: ubuntu |
Sponsored Link |