メイン マック Raspberry Pi を VPN にして、どこからでもネットワークにアクセス

Raspberry Pi を VPN にして、どこからでもネットワークにアクセス



VPN を使用して自宅にアクセスする理由

ホーム ネットワークにリモート アクセスしたい理由はたくさんありますが、そのための最善の方法は VPN サーバーを使用することです。一部のルーターでは、ルーター内に VPN サーバーを直接設定できますが、多くの場合、自分で設定する必要があります。

Raspberry Pi は、これを実現するための優れた方法です。それらは実行に多くのエネルギーを必要とせず、VPN サーバーを実行するのに十分な電力を備えています。ルーターの隣に 1 つ設置すれば、基本的にそのことは忘れてしまいます。

ホーム ネットワークにリモート アクセスできる場合は、どこからでもファイルにアクセスできます。自宅のコンピューターをリモートで実行できます。外出先から自宅の VPN 接続を使用することもできます。このようなセットアップにより、携帯電話、タブレット、またはラップトップは、どこにいても自宅にいるかのように動作します。

パイを設定する

VPN のセットアップを開始する前に、Raspberry Pi をセットアップする必要があります。ケースと適切なサイズのメモリ カードを使用して Pi をセットアップするのが最善です。16GB で十分です。可能であれば、Pi をイーサネット ケーブルでルーターに接続します。ネットワークの遅延を最小限に抑えます。

Raspbian をインストールする

Pi で使用するのに最適なオペレーティング システムは Raspbian です。これは、Raspberry Pi 財団によって提示されたデフォルトの選択肢であり、最も安全で安定した Linux バージョンの 1 つである Debian に基づいています。

に行く Rasbian ダウンロードページ 、最新バージョンを入手してください。実際にはグラフィカル デスクトップは必要ないため、ここでは Lite バージョンを使用できます。

ダウンロード中に、最新バージョンを入手してください エッチャー お使いのオペレーティング システムの場合。ダウンロードが完了したら、Raspbian イメージを抽出します。次に、Etcher を開きます。抽出した場所から Raspbian イメージを選択します。 SD カードを選択します (最初に挿入します)。最後に画像をカードに書き込みます。

インスタグラムライブのコメント非表示にできますか?

完了したら、SD カードをコンピューターに入れたままにします。ファイル マネージャーを開き、カードを参照します。いくつかの異なるパーティションが表示されます。ブート パーティションを探します。 kernel.img ファイルが含まれているものです。ブート パーティションに空のテキスト ファイルを作成し、ファイル拡張子なしで ssh と呼びます。

ようやく Pi を接続できます。必ず最後に接続してください。画面、キーボード、またはマウスは必要ありません。ネットワーク経由で Raspberry Pi にリモート アクセスします。

Pi のセットアップに数分かかります。次に、Web ブラウザーを開き、ルーターの管理画面に移動します。 Raspberry Pi を見つけて、その IP アドレスをメモします。

Windows、Linux、または Mac のいずれを使用している場合でも、OpenSSH を開きます。 SSH で Raspberry Pi に接続します。

$ ssh [email protected] 

明らかに、Pi の実際の IP アドレスを使用します。ユーザー名は常に 円周率、パスワードはラズベリー.

OpenVPN のセットアップ

OpenVPN は、サーバーとしてセットアップするのが簡単ではありません。良いニュースは、一度だけ行う必要があることです。したがって、掘り下げる前に、Raspbian が完全に最新であることを確認してください。

$ sudo apt update $ sudo apt upgrade

更新が完了したら、必要な OpenVPN と証明書ユーティリティをインストールできます。

$ sudo apt install openvpn easy-rsa

証明する機関

デバイスがサーバーに接続しようとするときにデバイスを認証するには、認証局を設定して、署名キーを作成する必要があります。これらのキーにより、デバイスのみがホーム ネットワークに接続できるようになります。

まず、証明書用のディレクトリを作成します。そのディレクトリに移動します。

$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs

OpenSSL 構成ファイルを探してください。次に、最新のものをopenssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

同じ certs フォルダーに vars というファイルがあります。そのファイルをテキストエディタで開きます。 Nano がデフォルトですが、Vim の方が使いやすい場合は、気軽に Vim をインストールしてください。

Vars ファイルの編集

を見つけるKEY_SIZE最初に変数。に設定されています2048年デフォルトで。に変更4096.

export KEY_SIZE=4096

処理する必要があるメイン ブロックは、認証局に関する情報を確立します。この情報が正確であると役に立ちますが、覚えることができるものは何でも構いません。

export KEY_COUNTRY='US' export KEY_PROVINCE='CA' export KEY_CITY='SanFrancisco' export KEY_ORG='Fort-Funston' export KEY_EMAIL=' [email protected] ' export KEY_OU='MyOrganizationalUnit' export KEY_NAME='HomeVPN'

すべてが揃ったら、保存して終了します。

以前にインストールした Easy-RSA パッケージには、必要なものをすべてセットアップするのに役立つ多くのスクリプトが含まれています。それらを実行するだけです。まず、vars ファイルをソースとして追加します。これで、設定したすべての変数が読み込まれます。

$ sudo source ./vars

次に、キーをクリーンアップします。あなたは持っていないので、キーが削除されるというメッセージが表示されても心配いりません。

$ sudo ./clean-install

認証局の作成

最後に、認証局を構築します。デフォルトはすでに設定されているため、表示されるデフォルトをそのまま受け入れることができます。強力なパスワードを設定し、パスワードの後に​​続く最後の 2 つの質問に「はい」と答えるのを忘れないでください。

$ sudo ./build-ca

いくつかの鍵を作る

サーバー キーを作成する

鍵に署名できるように認証局を設定するのに苦労しました。では、いくつか作ってみましょう。サーバーのキーを作成することから始めます。

$ sudo ./build-key-server server

Diffie-Hellman を構築する

次に、Diffie-Hellman PEM を構築します。これは、OpenVPN がサーバーへのクライアント接続を保護するために使用するものです。

$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem

これから必要になる最後のキーは、HMAC キーと呼ばれます。 OpenVPN はこのキーを使用して、クライアントとサーバー間で交換される個々の情報パケットに署名します。これは、接続に対する特定の種類の攻撃を防ぐのに役立ちます。

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

サーバー構成

あなたは鍵を持っています。 OpenVPN のセットアップの次の部分は、サーバー構成自体です。ありがたいことに、ここで行う必要があることはそれほど多くありません。 Debian は、開始するために使用できる基本設定を提供します。したがって、その構成ファイルを取得することから始めます。

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

テキストエディタをもう一度使用して開きます/etc/openvpn/server.conf.最初に見つける必要があるのは、それ証明書、そしてキーファイル。作成したファイルの実際の場所と一致するように設定する必要があります。これらはすべて/etc/openvpn/certs/keys.

OpenVPN サーバー構成キー

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret

を見つけるつまり設定し、Diffie-Hellman に一致するように変更します.pemあなたが作成したもの。

dh dh4096.pem

HMAC キーのパスも設定します。

tls-auth /etc/openvpn/certs/keys/ta.key 0

を見つける暗号以下の例と一致していることを確認してください。

cipher AES-256-CBC

次のいくつかのオプションがありますが、それらはコメントアウトされています;.各オプションの前にあるセミコロンを削除して、それらを有効にします。

push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'

を探しますユーザーそしてグループオプション。それらのコメントを外して、ユーザーopenvpn へ。

user openvpn group nogroup

最後に、これらの最後の 2 行はデフォルト設定にはありません。ファイルの最後にそれらを追加する必要があります。

OpenVPN サーバー構成認証

認証ダイジェストを設定して、ユーザー認証のより強力な暗号化を指定します。

# Authentication Digest auth SHA512

次に、OpenVPN が使用できる ciper をより強力なものに制限します。これは、脆弱な暗号に対する攻撃の可能性を制限するのに役立ちます。

# Limit Ciphers tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA

設定は以上です。ファイルを保存して終了します。

サーバーを起動

サーバーを起動する前に、それを作成する必要がありますopenvpn指定したユーザー。

$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn

OpenVPN を実行するための特別なユーザーであり、それ以外のことは行いません。

では、サーバーを起動します。

$ sudo systemctl start openvpn $ sudo systemctl start [email protected] 

両方が実行されていることを確認します

$ sudo systemctl status openvpn*.service

すべてが正常に見える場合は、起動時にそれらを有効にします。

$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected] 

クライアントのセットアップ

これでサーバーがセットアップされ、実行されました。次に、クライアント構成をセットアップする必要があります。これは、デバイスをサーバーに接続するために使用する構成です。に戻る特定のフォルダーを作成し、クライアント キーを作成する準備をします。クライアントごとに個別のキーを作成するか、すべてのクライアント用に 1 つのキーを作成するかを選択できます。自宅で使用する場合は、1 つのキーで問題ないはずです。

$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client

プロセスはサーバーのプロセスとほぼ同じなので、同じ手順に従います。

クライアント構成

クライアントの構成は、サーバーの構成と非常に似ています。ここでも、構成のベースとなる事前作成済みのテンプレートがあります。サーバーに合わせて変更するだけです。

に変更クライアントディレクトリ。次に、サンプル構成を解凍します。

$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

を開きますclient.ovpnファイルをテキスト エディタで作成します。次に、リモートオプション。 VPN をまだ使用していないと仮定して、Google で「What is my IP」を検索します。表示されるアドレスを取得し、リモートそれへの IP アドレス。ポート番号はそのままにします。

remote 107.150.28.83 1194 #That IP ironically is a VPN

OpenVPN クライアント構成キー

サーバーで行ったように、作成した証明書を反映するように証明書を変更します。

ca ca.crt cert client.crt key client.key

ユーザー オプションを見つけて、コメントを外します。クライアントを次のように実行することは問題ありません誰も.

user nobody group nogroup

のコメントを外すtls-authHMACのオプション。

tls-auth ta.key 1

OpenVPN クライアント暗号

次に、暗号オプションを選択し、それがサーバーと一致することを確認してください。

cipher AES-256-CBC

次に、ファイルの最後に認証ダイジェストと暗号制限を追加するだけです。

# Authentication Digest auth SHA512 # Cipher Restrictions tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA

すべてが正しく見えたら、ファイルを保存して終了します。使用するタール構成と証明書をパックして、クライアントに送信できるようにします。

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

選択した方法で、そのパッケージをクライアントに転送します。 SFTP、FTP、および USB ドライブはすべて優れたオプションです。

ポート転送

ポート転送

これを機能させるには、ルーターを構成して、着信 VPN トラフィックを Pi に転送する必要があります。すでに VPN を使用している場合は、同じポートに接続していないことを確認する必要があります。その場合は、クライアントとサーバーの構成でポートを変更してください。

ブラウザーに IP アドレスを入力して、ルーターの Web インターフェイスに接続します。

すべてのルーターは異なります。それでも、それらはすべて、何らかの形でこの機能を備えている必要があります。ルーターで見つけてください。

設定は基本的にどのルーターでも同じです。開始ポートと終了ポートを入力します。それらは互いに同じであり、構成で設定したものである必要があります。次に、IP アドレスを Raspberry Pi の IP に設定します。変更を保存します。

クライアントに接続

クライアントはそれぞれ異なるため、普遍的なソリューションはありません。 Windows を使用している場合は、 Windows OpenVPN クライアント .

Android では、tarball を開き、キーを携帯電話に転送できます。次に、OpenVPN アプリをインストールします。アプリを開き、構成ファイルの情報をプラグインします。次に、キーを選択します。

Linux では、サーバーの場合と同じように OpenVPN をインストールする必要があります。

$ sudo apt install openvpn

次に、に変更します/etc/openvpn、送信した tarball を解凍します。

$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz

クライアント ファイルの名前を変更します。

$ sudo mv client.ovpn client.conf

クライアントはまだ起動しないでください。それは失敗します。最初にルーターでポート転送を有効にする必要があります。

おわりに

これで、動作するセットアップができたはずです。クライアントはルーターを介して Pi に直接接続します。そこから、すべてのデバイスが VPN に接続されている限り、仮想ネットワークを介して共有および接続できます。制限がないため、すべてのコンピューターをいつでも Pi VPN に接続できます。

興味深い記事

エディターズチョイス

OBS Studio を使用した Twitch ストリーミングの初心者ガイド
OBS Studio を使用した Twitch ストリーミングの初心者ガイド
わかりやすいガイドに従って、OBS Studio を使用した Twitch ストリーミングをわずか 30 分で開始できます。アラートや画像などをストリームに追加する方法を学びます。
Windows10でデスクトップアイコンを小さくする方法
Windows10でデスクトップアイコンを小さくする方法
Windowsの最も優れた点の1つは、Windowsをほぼ無限にカスタマイズして、思いどおりの外観と感触を実現できることです。デフォルト設定はかなり良いですが、常に改善の余地があります。だから、どうやって
Amazon Fire StickでHBOを解約する方法
Amazon Fire StickでHBOを解約する方法
ほとんどの人は、HBO が The Sopranos、The Wire、Game of Thrones など、数多くの素晴らしいオリジナルの番組を持つ素晴らしいチャンネルであり、リストは続きます。どれも評価の高いドラマなので、
Mac OSXプレビューでPDFドキュメントからページを抽出する方法
Mac OSXプレビューでPDFドキュメントからページを抽出する方法
OS Xのプレビューアプリは、ページの再配置や削除、メタデータの変更など、PDFドキュメントの基本的な変更を実行できる強力なツールです。あまり知られていない可能性のある機能の1つは、既存のPDFドキュメントから1つ以上のページを抽出する機能です。それを行うための2つの方法を学ぶために読んでください。
黒曜石ジャーナル テンプレート
黒曜石ジャーナル テンプレート
メモ作成アプリの Obsidian は、ゼロから始めなくても日記を構造化する優れた方法となるテンプレートを利用しています。完璧な黒曜石日記テンプレートを見つけるのが難しい場合は、ここが最適です。
マックス: 内容と視聴方法
マックス: 内容と視聴方法
オリジナル番組に加えて、HBO とワーナーメディアの両方のコンテンツを提供するストリーミング サービス、Max について学びましょう。
Windows10で仮想デスクトップを削除する
Windows10で仮想デスクトップを削除する
Windows10で仮想デスクトップを削除する方法Windows10には、タスクビューと呼ばれる便利な機能が付属しています。これにより、ユーザーは仮想デスクトップを使用できるようになります。