VPNを使用して自宅にアクセスする理由
クイックリンク
- VPNを使用して自宅にアクセスする理由
- Piをセットアップする
- Raspbianをインストールする
- OpenVPNをセットアップする
- 証明する機関
- キーを作る
- サーバー構成
- サーバーを起動する
- クライアント設定
- クライアント構成
- ポート転送
- クライアントに接続する
- おわりに
ホームネットワークにリモートでアクセスしたい理由はたくさんありますが、VPNサーバーを使用するのが最善の方法です。 一部のルーターでは、実際にルーター内でVPNサーバーを直接セットアップできますが、多くの場合、自分でVPNサーバーをセットアップする必要があります。
Raspberry Piはこれを達成するための素晴らしい方法です。 実行に多くのエネルギーを必要とせず、VPNサーバーを実行するのに十分な電力があります。 ルーターの横に設定して、基本的に忘れることができます。
ホームネットワークにリモートでアクセスできる場合、どこからでもファイルにアクセスできます。 自宅のコンピューターをリモートで実行できます。 道路から自宅のVPN接続を使用することもできます。 このような設定により、携帯電話、タブレット、またはラップトップはどこからでも自宅にいるかのように動作します。
Piをセットアップする
VPNのセットアップを開始する前に、Raspberry Piをセットアップする必要があります。 ケースと適切なサイズのメモリカードでPiをセットアップするのが最善です。16GBで十分です。 可能であれば、イーサネットケーブルでPiをルーターに接続します。 ネットワークの遅延を最小限に抑えます。
Raspbianをインストールする
Piで使用するのに最適なオペレーティングシステムはRaspbianです。 これは、Raspberry Pi財団によって出されたデフォルトの選択であり、利用可能な最も安全で安定したLinuxバージョンの1つであるDebianに基づいています。
Rasbianダウンロードページにアクセスして、最新バージョンを入手してください 。 ここでは「Lite」バージョンを使用できます。これは、実際にはグラフィカルデスクトップが必要ないためです。
ダウンロード中に、お使いのオペレーティングシステム用の最新バージョンのEtcherを入手してください。 ダウンロードが完了したら、Raspbianイメージを抽出します。 次に、エッチャーを開きます。 抽出した場所からRaspbianイメージを選択します。 SDカードを選択します(最初に挿入します)。 最後に、画像をカードに書き込みます。
完了したら、SDカードをコンピューターに残します。 ファイルマネージャーを開き、カードを参照します。 いくつかの異なるパーティションが表示されます。 「ブート」パーティションを探します。 「kernel.img」ファイルが含まれているものです。 「ブート」パーティションに空のテキストファイルを作成し、ファイル拡張子なしで「ssh」と呼びます。
最終的にPiを接続できます。 最後に接続してください。 画面、キーボード、またはマウスは必要ありません。 ネットワーク経由でRaspberry Piにリモートアクセスします。
Piをセットアップするのに数分かかります。 次に、Webブラウザーを開き、ルーターの管理画面に移動します。 Raspberry Piを見つけて、そのIPアドレスを書き留めます。
Windows、Linux、Macのいずれを使用している場合でも、OpenSSHを開きます。 SSHでRaspberry Piに接続します。
$ ssh
明らかに、Piの実際のIPアドレスを使用します。 ユーザー名は常に piで、パスワードはraspberryです。
OpenVPNをセットアップする
OpenVPNは、サーバーとしてセットアップするのは簡単ではありません。 良いニュースは、一度だけ行う必要があることです。 したがって、掘り下げる前に、Raspbianが完全に最新であることを確認してください。
$ sudo apt update $ sudo apt upgrade
更新が完了したら、OpenVPNと必要な証明書ユーティリティをインストールできます。
$ sudo apt openvpn easy-rsaをインストールします
証明する機関
デバイスがサーバーに接続しようとするときにデバイスを認証するには、認証局を設定して、siginingキーを作成する必要があります。 これらのキーにより、デバイスのみがホームネットワークに接続できるようになります。
まず、証明書用のディレクトリを作成します。 そのディレクトリに移動します。
$ 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をより快適にインストールできる場合は、お気軽にインストールしてください。
最初にKEY_SIZE変数を見つけます。 デフォルトでは2048に設定されています。 4096に変更します。
KEY_SIZE = 4096をエクスポート
対処する必要があるメインブロックは、認証局に関する情報を確立します。 この情報が正確であれば役立ちますが、覚えられるものなら何でも構いません。
export KEY_COUNTRY = "US" export KEY_PROVINCE = "CA" export KEY_CITY = "SanFrancisco" export KEY_ORG = "Fort-Funston" export KEY_EMAIL = "" export KEY_OU = "MyOrganizationalUnit" export KEY_NAME = "HomeVPN"
すべて揃ったら、保存して終了します。
以前にインストールしたEasy-RSAパッケージには、必要なすべての設定に役立つ多くのスクリプトが含まれています。 実行するだけです。 「vars」ファイルをソースとして追加することから始めます。 これで、設定したすべての変数がロードされます。
$ sudo source ./vars
次に、キーをクリーンアップします。 持っていないので、キーが削除されることを伝えるメッセージについて心配する必要はありません。
$ sudo ./clean-install
最後に、認証局を構築します。 デフォルトはすでに設定されているため、提示されたデフォルトをそのまま使用できます。 強力なパスワードを設定し、パスワードに続く最後の2つの質問に「はい」と答えてください。
キーを作る
あなたは鍵に署名できるように認証局をセットアップするためにすべてのそのようなトラブルを経験しました。 今、いくつかを作る時間です。 サーバーのキーを作成することから始めます。
$ sudo ./build-key-server server
次に、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を開きます。 最初に見つける必要があるのは、ca、cert、およびkeyファイルです。 作成したファイルの実際の場所に一致するように設定する必要があります。これらはすべて/ etc / openvpn / certs / keysにあります。
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key#このファイルは秘密にしておく必要があります
dh設定を見つけて、作成したDiffie-Hellman .pemに一致するように変更します。
dh dh4096.pem
HMACキーのパスも設定します。
tls-auth /etc/openvpn/certs/keys/ta.key 0
暗号を見つけて、以下の例と一致することを確認してください。
暗号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」に変更します。
ユーザーopenvpnグループnogroup
最後に、これらの最後の2行はデフォルト構成ではありません。 ファイルの最後に追加する必要があります。
認証ダイジェストを設定して、ユーザー認証に強力な暗号化を指定します。
#認証ダイジェスト認証SHA512
次に、OpenVPNが使用できるシッパーをより強力なものに制限します。 これにより、弱い暗号に対する攻撃の可能性を制限できます。
#制限暗号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
両方が実行されていることを確認します
$ sudo systemctl status openvpn * .service
すべてが正常に見える場合は、起動時に有効にします。
$ sudo systemctl enable openvpn $ sudo systemctl enable
クライアント設定
これでサーバーがセットアップされ実行されました。 次に、クライアント構成をセットアップする必要があります。 これは、デバイスをサーバーに接続するために使用する構成です。 certsフォルダーに戻り、クライアントキーを作成する準備をします。 各クライアントに個別のキーを構築するか、すべてのクライアントに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#皮肉なことにIPはVPN
サーバーで行ったように、作成したものを反映するように証明書を変更します。
ca ca.crt cert client.crt key client.key
ユーザーオプションを見つけて、コメントを外します。 クライアントを誰としても実行しても構いません。
ユーザーnobodyグループnogroup
HMACのtls-authオプションのコメントを外します。
tls-auth ta.key 1
次に、暗号オプションを探し、サーバーと一致することを確認します。
暗号AES-256-CBC
次に、ファイルの最後に認証ダイジェストと暗号制限を追加します。
#認証ダイジェスト認証SHA512#暗号制限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
すべてが適切に表示されたら、ファイルを保存して終了します。 tarを使用して構成と証明書をパックし、クライアントに送信できるようにします。
$ 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に接続できます。
