WireGuard : サーバーの設定2020/10/29 |
シンプルで高速な 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 | +-----------+------------+ | eth0|10.0.0.30/24 | | | | Local Network | +------+-----+ | -------| Router#1 |---------------|----- +------+-----+ | | | Internet | Internet | | | +------+-----+ | -------| Router#2 |---------------|----- +------+-----+ | | Local Network | | | eth0|192.168.10.30/24 | +-----------+------------+ | | [ WireGuard Client ] |wg0 | | +--------+ | |172.16.100.5 (VPN IP) +------------------------+ |
[1] | WireGuard をインストールします。 |
root@dlp:~# apt -y install wireguard-tools
|
[2] | WireGuard の設定です。 |
root@dlp:~#
umask 077
# サーバー用プライベートキー作成 root@dlp:~# wg genkey | tee /etc/wireguard/server.key 2IcE8jDSDpHGOFBk5vEkmJ5yP7T9YHU+vr0mya+h5Ho= # サーバー用パブリックキー作成 root@dlp:~# cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub AIUd+0cxJVkbq4M+4cVUJhHu1Nxszlz3ccidVTbCh1k= # クライアント用プライベートキー作成 root@dlp:~# wg genkey | tee /etc/wireguard/client.key 8JI7j5Q3HWBtwMFwX6TCZf4nJXjS15S9jH8ktKyty2g= # クライアント用パブリックキー作成 root@dlp:~# cat /etc/wireguard/client.key | wg pubkey | tee /etc/wireguard/client.pub Sv35tTqVeKh+YjF9hLXQ6mpx4CH6q3Xj/xiN7R63930= # ネットワーク インターフェース 確認 root@dlp:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:ac:8f:06 brd ff:ff:ff:ff:ff:ff inet 10.0.0.30/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:feac:8f06/64 scope link valid_lft forever preferred_lft forever # 設定ファイル新規作成 # [wg0.conf] ⇒ [(VPN インターフェース名).conf] のルール内で任意の名称で OK root@dlp:~# vi /etc/wireguard/wg0.conf [Interface] # 生成したサーバー用プライベートキーを指定 PrivateKey = 2IcE8jDSDpHGOFBk5vEkmJ5yP7T9YHU+vr0mya+h5Ho= # VPN インターフェースに割り当てる IP アドレス Address = 172.16.100.1 # サーバーでリスンする UDP ポート ListenPort = 51820 # WireGuard 起動後/終了後に任意のコマンドを実行可能 # 以下はローカルネットワークへのルーティングルールを設定 # [wg0] ⇒ VPN インターフェース名 # [eth0] ⇒ イーサネット インターフェース名 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] # クライアント用パブリックキーを指定 PublicKey = Sv35tTqVeKh+YjF9hLXQ6mpx4CH6q3Xj/xiN7R63930= # 接続を許可するクライアントの VPN の IP アドレス # サブネット単位でも指定可 ⇒ [172.16.100.0/24] AllowedIPs = 172.16.100.5, 172.16.100.6
root@dlp:~#
vi /etc/sysctl.conf # 28行目 : コメント解除して IP フォワード有効化 net.ipv4.ip_forward=1
root@dlp:~#
root@dlp:~# sysctl -p net.ipv4.ip_forward = 1 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:ac:8f:06 brd ff:ff:ff:ff:ff:ff inet 10.0.0.29/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:feac:8f06/64 scope link valid_lft forever preferred_lft forever 3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 172.16.100.1/32 scope global wg0 valid_lft forever preferred_lft forever |
Sponsored Link |