VPNのためのLinuxキルスイッチを設定する方法

A Linux killswitch is a must for any serious Linux VPN user. It guards your data against leaking to the internet by preventing anyone from accessing your data even if disconnected from the VPN. It also ensures that all information remains confidential regardless of what happens in between.

サイバー犯罪者にとって、キルスイッチは悪夢です。これは彼らと標的との間に立ちはだかる重要な障壁です。コンピュータや携帯電話がフリーズしたり、電源が切れたり、コードを誤って切断したりして、VPNへの接続がたとえ一瞬でも切れた場合、キルスイッチが有効になっている限り、そのデータには誰もアクセスできません。

前提条件

この手順を実行するためには、次のものが必要です:

  • VPNプロバイダに接続するための設定ファイル。この記事ではVPNプロバイダとしてNordVPNを使用しています。
  • A Ubuntu device with the OpenVPN client. The examples will use Ubuntu 20.04 and OpenVPN 2.5.3.

Uncomplicated Firewall (UFW)のインストール

このチュートリアルでは、Linuxのキルスイッチはファイアウォールの設定に依存しています。まず、デバイスにUncomplicated Firewall (UFW)をインストールし、ファイアウォールをキルスイッチとして機能させるように設定します。

始める前に、Linuxディストリビューションが最新であることを確認してください。そうしないと、UFWファイアウォールが予期した通りに動作しない場合があります。たとえば、UFWが起動時に設定を読み込まないか、追加/削除された規則が読み込まれない場合があります。

1. sudo apt install ufw -yを実行してファイアウォールをインストールします。

ほとんどのUbuntuディストリビューションにはデフォルトでUFWファイアウォールがインストールされているため、すでにUFWがインストールされている場合があります。

2. sudo systemctl start ufwでUFWサービスを起動します。

3. UFWのインストールが成功したかどうかを確認します。 sudo systemctl status ufwコマンドを実行し、成功した場合、出力には下記のようにactive (exited)が緑色で表示されます。

Verifying that UFW is installed and running

4. sudo ufw enableコマンドでUFWを起動します。 Yを押し、Enterを押して、操作を続行しますか? (y|n)?

Enabling UFW on Ubuntu

リモートアクセスプロトコルの許可

ファイアウォールがインストールされたので、VPNで使用するプロトコルをUFWで許可する必要があります。

まず、クライアントにロックアウトされないようにするために、SSH経由でログインする必要があるかもしれません。OpenVPN接続で何か問題が発生した場合にSSH経由でログインできない場合は、物理的にデバイスにアクセスして元に戻る必要があります。

1. sudo ufw allow sshコマンドを使用してSSH接続を許可します。 UFWファイアウォールは/etc/servicesファイルのポートとプロトコルを読み取り、ポートを開きます。コマンドの出力は以下のとおりです。

Allowing SSH Connections on Ubuntu

OpenVPN経由で接続する際に、ユーザーにSSHキーを使った認証を要求することを強くお勧めします。この手順により、ブルートフォース攻撃や不正な接続から保護されます。

2. 次に、VNCプロトコルを許可するためのルールを追加する必要があります。該当するポートのトラフィックを許可するために、ルールを追加します。

VNCプロトコルについては、オプションです。VNCはSSHと同様のリモートアクセスを可能にします。VNCはグラフィカルコンソールを提供しますが、SSHはテキストコンソールのみを許可します。VNCトラフィックをsudo ufw allow 5901:5910/tcpコマンドで許可します。

これらのコマンドは、以下のような出力を生成します。

Allowing remote access protocols on Ubuntu with UFW

3. ルールが追加されたら、正しく適用されていることを確認してください。 sudo ufw show addedコマンドを使用すると、追加されたすべてのルールがリストされます(以下の例を参照)。

Checking UFW existing rules

VPNキルスイッチの設定

このセクションでは、UFWファイアウォールを使用して実際のキルスイッチを設定する方法について説明します。次の2つのコマンドを実行して開始します。

  • sudo ufw default deny outgoing
  • sudo ufw default deny incoming

ufw default denyコマンドは、SSH接続と前のセクションで設定したリモートプロトコルを除いて、マシンとの間のすべての出力/入力トラフィックをブロックします。以下のスクリーンショットにコマンドの結果が表示されます。

Blocking traffic with UFW

次に、UFWルールセットに例外を追加して、マシンがVPNサーバーに接続できるようにします。 VPNサーバーの設定ファイルが必要です。このチュートリアルでは、OpenVPNファイルの名前はata.ovpnで、NordVPNのサイトからダウンロードされます。

OpenVPNの設定ファイル名は異なる場合があります。このチュートリアルでは「ata」という命名規則を使用していますが、適切と思われる名前を自由に付けてください。

次に、コマンドsudo head /etc/ata.ovpnata.opvnのOpenVPN設定ファイルを確認します。出力には、接続するVPNサーバーのポートプロトコル、およびIPアドレスなどの情報が含まれます。以下に、例としてNordVPNの情報を示します。

正しいUFWコマンドを作成するには、設定ファイルから出力されるポートプロトコル、および公開IPアドレスの情報に注意してください。

Opening an OpenVPN config file, the above example is for NordVPN.

次に、次のようにufw allow outコマンドを作成します:sudo ufw allow out to 69.28.83.134 port 1194 proto udp。ここで使用されているIPアドレスとポートは、remoteで始まる設定行から取得し、プロトコルはprotoで始まる行から取得します。

この例では、VPNプロバイダーとしてNordVPNを使用しています。NordVPNでは、1194のUDPポートを開放する必要があります。たとえば、Express VPNを使用する場合、1195のUDPポートを開放する必要があります。各VPNプロバイダーは固有のUDPポートを持つ場合があります。

OpenVPNのファイアウォール例外の作成

もちろん、適切な利用性のためには、ファイアウォールを介してOpenVPNを許可する必要があります。これまで、一部のポートを除いて、すべての着信および送信トラフィックをブロックしてきました。

まず、OpenVPNクライアントが使用するネットワークインターフェース名を見つける必要があります。以下に示すように、ifconfigコマンドを実行して構成済みのネットワークインターフェース名を一覧表示します。

Listing network interface names on Ubuntu.

結果のリストには、tun0という名前のネットワークインターフェースがあることに注意してください。このtun0インターフェースは、すべての着信および送信トラフィックがルーティングされるVPNインターフェースであり、許可するインターフェースです。これは、起動時に追加される仮想インターフェースであり、物理的な接続ではないことを意味します。このインターフェースがOpenVPNのデフォルトです。

ifconfigを使用して見つけたVPNトンネルインターフェースに対してファイアウォールの例外を追加し、すべてのトラフィックを強制的にルーティングする必要があります。そうしないと、インターネットにアクセスできなくなり、キルスイッチが機能しなくなります。以下のコマンドを実行して、tun0インターフェース上のOpenVPNトラフィックの例外を追加してください。

sudo ufw allow out on tun0 from any to any
Allowing outgoing traffic on the tun0 interface.

ゲームをプレイしながらボイスチャットアプリケーションにアクセスするなど、一部のアプリケーションはVPN経由の着信接続を必要とします。着信接続を許可するには、次のコマンドを実行してください。

sudo ufw allow in on tun0 from any to any
Allowing ingoing traffic to tun0 interface

OpenVPNクライアントの設定

最後のセクションでは、以前に作成した設定を使用してOpenVPNクライアントをサービスとして実行するように設定します。

ata.opvnファイルをata.confに名前を変更します(ファイル名は異なる場合があります)。OpenVPNクライアントをバックグラウンドのシステムサービスとして実行するために、ファイル名は*.conf拡張子で命名する必要があります。さらに、ファイルを/etc/openvpnディレクトリに移動します。

sudo mv /root/ata.ovpn /etc/openvpn/ata.confというコマンドで設定ファイルを移動します。

Moving and renaming the OpenVPN configuration file.

次に、ディレクトリを/etc/openvpnに変更し、ファイルがそこにあることを確認します。

cd /etc/openvpn
ls
Showing files in the /etc/openvpn directory

設定ファイルが/etc/openvpnディレクトリにある状態で、systemctlコマンドを使用してOpenVPNクライアントサービスを起動します。サービスを起動するには、以下のコマンドを実行します:sudo systemctl start [email protected]

OpenVPNクライアント名の「ata」部分は、使用される設定ファイルの名前に由来します。ファイル名に応じて異なる場合があります。

Starting the OpenVPN service.

OpenVPNサービスが実行中かどうかを確認するには、以下のようにsystemctl statusコマンドを使用します。

sudo systemctl status [email protected]

下記のように、OpenVPNサービスのactive (running)の緑色のステータスが表示されます。

Checking the OpenVPN service status.

最後に、デバイスをVPNサービスに自動的に接続するように設定する必要があります。VPNに自動的に接続することで、マシンを再起動しても常にOpenVPNが実行されるようになります。

sudo systemctl enable [email protected]コマンドを実行し、これ以降、OpenVPNサービスが開始されると自動的にデバイスがVPNに接続されます。

Enable the OpenVPN service.

結論

この記事では、VPN接続のためのLinuxキルスイッチを設定するために必要なすべての手順を紹介しました。キルスイッチは、接続が予期せず切断された場合にコンピューターとのネットワーク接続を切断し、データの漏洩を防ぎ、オンラインで安全に保つ役割を果たします。

Source:
https://adamtheautomator.com/linux-killswitch/