WireGuard : サーバーの設定2025/12/11 |
|
シンプルで高速な 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 |
+-----------+------------+ |
enp1s0|10.0.0.30/24 |
| |
| Local Network |
+------+-----+ |
-------| Router#1 |---------------|-----
+------+-----+ |
| |
Internet | Internet |
| |
+------+-----+ |
-------| Router#2 |---------------|-----
+------+-----+ |
| Local Network |
| |
enp1s0|192.168.0.30/24 |
+-----------+------------+ |
| [ WireGuard Client ] |wg0 |
| +--------+
| |172.16.100.5 (VPN IP)
+------------------------+
|
| [1] | WireGuard をインストールします。 |
|
dlp:~ #
dlp:~ # zypper -n install wireguard-tools iptables systemctl reload firewalld
|
| [2] | WireGuard の設定です。 Firewalld でルーティングルールを設定するため、Firewalld 稼働中が前提です。 |
|
dlp:~ #
umask 077
# サーバー用プライベートキー作成 dlp:~ # wg genkey | tee /etc/wireguard/server.key OGKm6iy993vcaITIuD5X15Us+SYcglAzmEqC9sCX/20= # サーバー用パブリックキー作成 dlp:~ # cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub zh2ZquHICkxY9JoIbZu2g6ZdoWGPmNwnKaDA/7f7ei8= # クライアント用プライベートキー作成 dlp:~ # wg genkey | tee /etc/wireguard/client.key 4Gf82Q6XTfny6LMOrgVr5gSSvnBVdddnbv7kWB85lnA= # クライアント用パブリックキー作成 dlp:~ # cat /etc/wireguard/client.key | wg pubkey | tee /etc/wireguard/client.pub HXW6rwRc7It2vhPzynyCRMF4MbRPEl0aLGpU8A01dC0= # ネットワーク インターフェース 確認 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 noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:99:e9:68 brd ff:ff:ff:ff:ff:ff
altname enx52540099e968
inet 10.0.0.30/24 brd 10.0.0.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::6bd:fb0b:bfca:158d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# アクティブゾーン 確認 dlp:~ # firewall-cmd --get-active-zone docker interfaces: docker0 public (default) interfaces: enp1s0 # 設定ファイル新規作成 # [wg0.conf] ⇒ [(VPN インターフェース名).conf] のルール内で任意の名称で OK dlp:~ # vi /etc/wireguard/wg0.conf [Interface] # 生成したサーバー用プライベートキーを指定 PrivateKey = OGKm6iy993vcaITIuD5X15Us+SYcglAzmEqC9sCX/20= # VPN インターフェースに割り当てる IP アドレス Address = 172.16.100.1 # サーバーでリスンする UDP ポート ListenPort = 51820 # WireGuard 起動後/終了後に任意のコマンドを実行可能 # 以下はローカルネットワークへのルーティングルールを設定 # [--zone=***] ⇒ アクティブゾーン名 # [wg0] ⇒ VPN インターフェース名 # [enp1s0] ⇒ イーサネット インターフェース名 PostUp = firewall-cmd --zone=public --add-masquerade; firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o enp1s0 -j ACCEPT; firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o enp1s0 -j MASQUERADE; firewall-cmd --add-port=51820/udp PostDown = firewall-cmd --zone=public --remove-masquerade; firewall-cmd --direct --remove-rule ipv4 filter FORWARD 0 -i wg0 -o enp1s0 -j ACCEPT; firewall-cmd --direct --remove-rule ipv4 nat POSTROUTING 0 -o enp1s0 -j MASQUERADE; firewall-cmd --remove-port=51820/udp [Peer] # クライアント用パブリックキーを指定 PublicKey = HXW6rwRc7It2vhPzynyCRMF4MbRPEl0aLGpU8A01dC0= # 接続を許可するクライアントの VPN の IP アドレス # サブネット単位でも指定可 ⇒ [172.16.100.0/24] AllowedIPs = 172.16.100.5, 172.16.100.6 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 noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:99:e9:68 brd ff:ff:ff:ff:ff:ff
altname enx52540099e968
inet 10.0.0.30/24 brd 10.0.0.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::6bd:fb0b:bfca:158d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: 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 |
|
|