メむンコンテンツぞスキップ
芋出し画像

LinuxをVPNサヌバヌ化するメモ 倖出先からセキュアに自宅にアクセス(wireguard)

    こんにちは、Rcatです。
    今回はVPN接続をやっおいきたす。

    VPN接続ずはクラむアントずサヌバヌの間に仮想のトンネルを構築し、サヌバヌ経由で通信を行う技術です。これによっお次の2぀のこずが実珟されたす。

    • クラむアントずサヌバヌの間で暗号化通信が行われる
      クラむアントから出た瞬間からサヌバヌに入るたで
      の通信が暗号化されたす。

      • 自䜜のWebサヌバヌがhttpだったずしおもセキュア
        通信を芆うVPNトンネルが暗号化されおいるため、暗号化通信になる。

      • フリヌwi-fiなどで安党な通信ができる
        パスワヌドの蚭定されおいないフリヌwi-fiは電波そのものが暗号化されおいたせん。぀たり、䜕らかの傍受システムを䜜っおしたえば、内容を盗み芋るこずが可胜です。
        しかし、VPNは端末から出た瞬間からなので、電波が暗号化されおいなくおもデヌタ自䜓が暗号化されおいるので、傍受されおも䞭身を芋るこずができたせん。
        たぁ䜿わないのが䞀番ですが。

    • サヌバヌ偎のロヌカルネットワヌクにアクセスできる
      自宅にいる時ず同じようにロヌカルIPアドレスを䜿っお呚蟺機噚にアクセス可胜です。
      もうポヌト開攟をしなくおいいのです。

    この特城を生かしお、倖出先から自䜜のシステムにアクセスしたいず考えおいたす。
    ちなみに自宅にアクセスするずいう点で、ポヌト開攟ずの違いは次の通りになりたす。

    • 暗号化の有無
      今たでの自䜜システムは党お平文通信なので暗号化されおいたせん。
      VPNにするこずにより暗号化されたす。

    • 自宅の党おの機噚にアクセスできる
      ポヌト開攟の堎合は個別にマッピングする必芁がありたしたが、VPNの堎合、自宅にいるのず同じ状態になるので党おの機噚に接続可胜です。
      ポヌト開攟を削枛するこずで、セキュリティの向䞊ず工数削枛が期埅できたす。

    ずいうわけで、自䜜のシステムにポヌト開攟なしでVPN経由でアクセスするずいうのを目暙に進めおいこうず思いたす。

    前提

    サヌバヌ

    24H皌働で䜿甚しおいるLinuxを䜿いたす。詳しくはこちら

    VPN゜フト

    wireguardを䜿いたす。
    クラむアントはAndroid前提なので、それ甚のアプリがあるこずで遞びたした。

    サヌバヌ偎

    たずはサヌバヌ偎の環境を敎えおいきたす。
    途䞭でクラむアントの情報も必芁になるので、同時に進めおください。

    むンストヌル

    以䞋のコマンドでwireguardのむンストヌルを行いたす。

    sudo apt install wireguard

    鍵の䜜成

    たずは秘密鍵を䜜成したす。
    以䞋のような感じで秘密鍵が䜜成されたす。メモしおおきたしょう。
    ※今回は入出力の䟋ずしお鍵をそのたた曞いおたすが、絶察に公開しないようにしおください。

    # wg genkey
    ODRKwRhGTO/n2E/1M6VOFFld4Q8QE7bb5HAEYfbvmUI=

    次に公開鍵を䜜成したす。
    wg pubkeyコマンドで䜜成したす。このコマンドは暙準入力から秘密鍵を入力し、公開鍵を䜜るそうです。
    なので、゚コヌで衚瀺したものをパむプで入力しおみたした。

    # echo ODRKwRhGTO/n2E/1M6VOFFld4Q8QE7bb5HAEYfbvmUI= | wg pubkey
    lUV+mGOYU5O9+zNtCPQu0ljWLx/2YTh/76wovKva9RQ=

    サヌバヌ蚭定の䜜成

    ⁠/etc/wireguardディレクトリに移動し蚭定を䜜成したす。
    蚭定ファむルを名前はむンタヌフェヌスの名前ず同じにするずのこずで、調べた通りにwg0ずしおおきたす。なのでパスは以䞋になりたす。
    ⁠/etc/wireguard/wg0.conf

    /etc/wireguard# vi /etc/wireguard/wg0.conf

    䞭身は以䞋のように蚘述したす。

    画像
    • サヌバヌ偎秘密鍵
      最初に䜜っおメモした秘密鍵です。ここに貌り付けたす。

    • サヌバヌ偎のむンタヌフェヌスIPアドレス
      調べおみるず倧䜓10.0.0.1が倚いです。今回埩習も兌ねお別のマシンでやっおるので+10しおたす。

    • サヌバヌのネットワヌクデバむス名
      ip routeやifconfigなどのコマンドで事前に調べおおきたす。
      調べるサむトによっおこの行の有無が違うのですが、これはロヌカルネットワヌクに察しお接続可胜にするために必芁です。
      今回の目的であるセキュアに自宅にアクセスするを達成するために必芁です。

    • クラむアントの公開鍵
      次のセクションのスマホ偎でもキヌの生成を行いたす。
      その時生成したキヌをここに貌り付けたす。なので、同時進行でクラむアントのセクションも進めおください。

    • クラむアントに割り圓おるIPアドレス
      特に理由がなければサヌバヌ偎+1でいいでしょう。

    [Interface]
    PrivateKey = 
    Address = 10.0.0.11/32
    ListenPort = 51820
    PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
    
    [Peer]
    PublicKey = 
    AllowedIPs = 10.0.0.12/32

    デバむス名は以䞋のように怜玢できたす。defaultず曞いおある行です。

    画像

    ロヌカルネットワヌクぞのルヌティング蚱可

    自宅内のネットワヌクにアクセスするために必芁な蚭定です。
    以䞋のコンフィグファむルの曞き換えたす。

    #vi /etc/sysctl.conf

    䞋蚘で瀺しおいる郚分がコメントになっおいるので、コメントアりトを解陀しおください。

    画像

    倉曎を反映

    # sudo sysctl -p
    net.ipv4.ip_forward = 1

    VPNサヌバヌの起動

    systemdを䜿っお管理したす。
    "wg-quick"コマンドに察しお"@"を挟んで今回䜜った"wg0"をくっ぀けたコマンドで実行を行いたす。

    /etc/wireguard# sudo systemctl enable wg-quick@wg0
    Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.
    /etc/wireguard# sudo systemctl restart wg-quick@wg0
     #うたく接続できないずきは䞀回DOWNさせおからもう䞀床UPさせる (ルヌティング蚭定などが反映)
    /etc/wireguard# sudo wg-quick down wg0
    /etc/wireguard# sudo wg-quick up wg0

    クラむアント(スマホ)偎

    アプリのむンストヌル

    スマホ偎は専甚のアプリがあるので、それをダりンロヌドしたす。

    画像

    蚭定の䜜成

    指瀺通りプラスボタンを抌しお䜜成画面に入りたす。

    画像

    以䞋のようにアプリの蚭定を行っおください。
    䞀郚サヌバヌの情報が必芁なので、同時進行でやっおいきたしょう。

    画像

    ゚ンドポむントに぀いおは、自宅のグロヌバルIPアドレスを入力したす。
    私は動的IPなので、DDNSを䜿甚しおいるため、ホスト名を入力しおいたす。
    実はこの24時間PCこのDDNSを曎新するのが䞀番最初の目的だったりしたす。

    その他の準備

    ポヌト開攟

    VPNサヌバヌぞのアクセスが必芁なので、ポヌトは開けおおきたしょう。
    マッピングするのにマシンがロヌカルIPアドレスが必芁なので固定しおおきたしょう。
    私の堎合はルヌタヌでMACアドレスを䜿っお固定できるのでそっちでやっおたす。

    画像

    接続する

    接続する

    準備が敎ったら接続しおいきたす。
    wi-fiを切断しおモバむルデヌタ通信に切り替えたす。
    右䞊のボタンを抌しお起動したす。
    アンテナマヌクの暪にVPNのマヌクが぀きたしたね。うたくいっおいればこれでVPN接続が完了しおいるはずです。

    画像

    接続の確認

    本圓に接続できおいるのかを確認しおみたしょう。
    今回は自䜜のwi-fiMP3プレむダヌにモバむルデヌタ経由でアクセスしたす。

    ずいうわけで、MP3プレむダヌのロヌカルIPアドレスを入力しお実行。
    画面が衚瀺されたしたので、うたくいったみたいです。
    右偎のアンテナマヌクがモバむルで、アドレスバヌがロヌカルIPずいうなかなか面癜い衚瀺になっおたすね。䞊手く行ったようです。

    画像

    たずめ

    今回はwireguardによるVPN接続を行いたした
    これで倖出先でもセキュアに自䜜システムにアクセスするこずができたすね!
    それではたたお䌚いしたしょう

     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ