Ubuntuの上でWreguard VPNサーバを準備する方法


このポストは、WreGuard VPNサーバを構成する方法を扱います.すべてのクライアント/デバイスは、最初にこのマシンに接続し、インターネットにルーティングします.
いくつかの研究の後、私はそれがそうであるので、Wreguardを使うことに決めましたFree and open-source software . を、私の主な理由は以下のように正直にするには:Linus Torvalds merged WireGuard into the Linux kernel .

0 .はじめに
WireGuardは最新のVPN(仮想プライベートネットワーク)技術最先端の暗号技術です.
これはクロスプラットフォームであり、Linux、Windows、Android、MacOSとIOSを含むほぼどこでも実行することができます.
それはピアツーピアVPNですクライアントサーバモデルを使用しません.
これは、トンネルとして機能する各ピアデバイス上のネットワークインターフェイスを作成することによって動作します.ピアは、SSHモデルのように公開鍵を交換し、検証することによって認証を行います.公開キーはトンネルで許可されたIPアドレスのリストでマップされます.VPNトラフィックはUDPでカプセル化されます.
それは高速で、構成するために簡単です(特にいくつかの他の選択肢に比べて)、軽量.
詳細については、公式サイトをチェックすることができます:WireGuard

インストール
まずサーバを更新し、wireguardをインストールします.
$ sudo apt update
$ sudo apt install wireguard
注意:
次のようにして、ppaでwireguardをインストールする必要があります.
のアドットリポジトリを追加する
これは時代遅れの方法であり、私たちが2007年に見たようにhttps://launchpad.net/%7Ewireguard:

This formerly was responsible for producing a PPA for WireGuard on Ubuntu. That functionality has now been folded into Ubuntu itself, so our old PPA has been removed. Simply run apt install wireguard on all Ubuntus ≥ 16.04



2 .設定

2.0 .キー
ワイヤガードには二つのコマンドラインツールがあります.wg and wg-quick これにより、wireguardの設定と管理ができます.
次のコマンドを実行して、公開鍵と秘密キーを生成します.
$ sudo mkdir -p /etc/wireguard/server
$ wg genkey | sudo tee /etc/wireguard/server/server.key | wg pubkey | sudo tee /etc/wireguard/server/server.key.pub
これは我々のキーの下に配置/etc/wireguard/server ディレクトリを作成します.いつものように、他の誰とでもあなたの秘密鍵を共有しないでください、さもなければ、あなたのVPNは危うくなります.
これらのファイルを表示することができますcat :
$ cat /etc/wireguard/server/server.key
$ cat /etc/wireguard/server/server.key.pub

2.1 .confファイル
設定ファイルの作成
$ sudoedit /etc/wireguard/wg0.conf
次の設定を追加します.
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
SaveConfig = true
  • 置換SERVER_PRIVATE_KEY あなたの秘密鍵を/etc/wireguard/server/server.key .
  • 両方とも取り替えてくださいeth0 パブリックネットワークインターフェイスの名前を一致させる.次のコマンドを実行して簡単にインターフェイスを見つけることができます.
  •   $ ip -o -4 route show to default | awk '{print $5}'
    

    2.2 chmod
    The wg0.conf and server.key ファイルは通常のユーザには読めません.
    用途chmod アクセス許可を設定するには600 :
    $ sudo chmod 600 /etc/wireguard/wg0.conf
    $ sudo chmod 600 /etc/wireguard/server/server.key
    

    スタートワイアーガード

    3.0 .ウォンアップ
    上記すべてを行うとwg0 設定ファイルで指定された属性を使用してインタフェースを作成します.
    $ sudo wg-quick up wg0
    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip -4 address add 10.0.0.1/24 dev wg0
    [#] ip link set mtu 1420 up dev wg0
    [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    3.1 .起動時に起動する
    すべてのシステムの再起動後、おそらくあなたのwireguardを開始したい.その実行を達成するために
    $ sudo systemctl enable wg-quick@wg0
    

    ファイアウォールとネットワーク

    4.1 .IPフォワーディング
    VPNが正しく動作するように、トラフィックの転送を許可する必要があります.
    私たちは/etc/sysctl.conf ファイルをコメントしますnet.ipv4.ip_forward=1 :
    $ sudoedit /etc/sysctl.conf
    
    ##############################################################
    # Functions previously found in netbase
    #
    
    # Uncomment the next two lines to enable Spoof protection (reverse-path filter)
    # Turn on Source Address Verification in all interfaces to
    # prevent some spoofing attacks
    #net.ipv4.conf.default.rp_filter=1
    #net.ipv4.conf.all.rp_filter=1
    
    # Uncomment the next line to enable TCP/IP SYN cookies
    # See http://lwn.net/Articles/277146/
    # Note: This may impact IPv6 TCP sessions too
    #net.ipv4.tcp_syncookies=1
    
    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    
    # Uncomment the next line to enable packet forwarding for IPv6
    #  Enabling this option disables Stateless Address Autoconfiguration
    #  based on Router Advertisements for this host
    #net.ipv6.conf.all.forwarding=1
    
    ファイルを保存し、変更を適用します.
    $ sudo sysctl -p
    

    4.1 .オープンポートサーバポート
    開けるListenPort 我々は、我々の中で定義しました/etc/wireguard/wg0.conf ファイル
    $ sudo ufw allow 51820/udp
    
    ファイアウォールを有効にする
    $ sudo ufw enable
    
    あなたはステータスをチェックして、すべてを確認することができます
    $ sudo ufw status verbose
    
    それです.あなたのwireguardサーバーが準備完了です!
    すべて完了!
    藤堂
  • [ X ]クライアントのポストを追加します.
  • [ X ] Ubuntuのデスクトップクライアントを追加する
  • [ X ] Androidクライアントを追加する
  • [追加]IPV6 はじめに