Private Internet Access
Private Internet Access は定額制の VPN サービスです。
手動
NetworkManager アプレットのアプローチ
インストール
PIA から OpenVPN 設定ファイルをダウンロードします。ZIP ファイルをユーザーホームディレクトリまたは将来アクセスしやすい場所に解凍します。Linux バイナリやアプリで WireGuard を使用できる場合でも、PIA はまだ設定用の WireGuard ファイルを提供していないことに注意してください。つまり、NetworkManager アプローチを使用する場合、使用できるのは OpenVPN のみです。
NetworkManager を NetworkManager アプレットおよび OpenVPN プラグインと共にインストールして設定します。
設定
- デスクトップ環境から NetworkManager アプレットを右クリックし、「接続の編集」をクリックします。表示されるネットワーク接続ウィンドウの左下にあるプラス記号をクリックします。
- 接続タイプを選択する際、ドロップダウンメニューをクリックし、「保存された VPN 設定のインポート」に到達するまでスクロールします。そのオプションを選択し、「作成」をクリックします。
- 先ほど OpenVPN ファイルを解凍したディレクトリに移動し、そのフォルダからファイルの一つを開きます。一般的には、特に接続したい接続に関連するファイルを開くことになります。
- OpenVPN ファイルの一つを開いた後、表示されるウィンドウが「<接続タイプ>の編集」であるはずです。Private Internet Access から受け取ったユーザー名とパスワードを入力します。パスワードボックスには資格情報のユーザー権限を示すアイコンがあります。設定を希望するように変更します。
- 次に、「詳細設定」をクリックします。「LZO データ圧縮を使用する」横のドロップダウンメニューで「adaptive」を選択し、「仮想デバイスタイプの設定」横のメニューで「TUN」が選択されていることを確認します。
- 次に、セキュリティタブに移動し、暗号化方式として「AES-128-CBC」を、HMAC 認証として「SHA-1」を選択します。
- ウィンドウの左下にある OK ボタンをクリックして、この変更を保存します。
- 「IPv6 設定」タブに移動し、「メソッド」で「無視」を選択します。これは PIA が IPv6 アドレスをブロックしているためです。[2]
- 「<接続タイプ>の編集」ウィンドウの右下にある保存をクリックします。
使用方法
OpenVPN#OpenVPN の起動を参照してください。
VPN に正常に接続できたかどうかをテストするには、この記事 で推奨されている次の 4 つのツールを参照してください:
AUR アプローチ
公式インストールスクリプト
Private Internet Access は、VPN で使用するために NetworkManager を設定するインストールスクリプトを提供しています。スクリプトを こちら からダウンロードし、実行して設定を行ってください。
公式 Linux クライアント
Private Internet Access は、Arch をサポートする公式の Linux クライアントを提供しています。クライアントを このページ からダウンロードし、ファイルを解凍します(例: pia-v81-installer-linux.tar.gz
)。その後、インストールスクリプトを実行します(例: # ./pia-v81-installer-linux.sh
)。
パッケージ
- piavpn-bin — 公式インストーラーを自動化します
- || piavpn-binAUR
- Private Internet Access/AUR — NetworkManager、ConnMan、および OpenVPN のプロファイルをインストールします
インストール
private-internet-access-vpnAUR をインストールします。
このパッケージは、OpenVPN 設定ファイル をダウンロードし、それらを /etc/openvpn
に保存するツールを提供します。ただし、コマンドラインでの使用をサポートするために、ファイル名が更新されます。
パッケージの設定は /etc/private-internet-access
に保存されます。
インストール後
接続に問題があり、connman を使用している場合は、connman-vpn.service
を再起動してください。
使用方法
自動ログインの有効化
自動ログインを有効にすると、コマンドラインでパスワードを入力せずに VPN サービスに接続できるようになります(これは networkmanager を使用する場合に必要です)。設定するには、次の手順を実行します:
/etc/private-internet-access/login.conf
を作成します。- ファイルにユーザー名とパスワードを追加します。LINE 1 がユーザー名、LINE 2 がパスワードであることを確認してください。ファイルに他のテキストを追加しないでください。そうしないと機能しません(これは OpenVPN の制限です)。
/etc/private-internet-access/login.conf
USERNAME PASSWORD
- ファイルの権限を 0600 に変更し、所有者を root:root に設定します:
# chmod 0600 /etc/private-internet-access/login.conf # chown root:root /etc/private-internet-access/login.conf
これにより、非 root ユーザーからのファイルアクセスが保護されます。詳細はファイルのパーミッションと属性を参照してください。自動ログインを有効にする場合、これは必須です。
- root 権限で
pia -a
を実行します。
** networkmanager がインストールされている場合、networkmanager 用の設定ファイルが作成されます。これらを確認するには、networkmanager を再起動してください。 ** connman がインストールされている場合、connman 用の設定ファイルが作成されます。まだ実行されていない場合はconnman-vpn.service
を開始してください。プロファイルが自動的に読み込まれます。 ** いずれにしても、OpenVPN の.conf
ファイルは/etc/openvpn/client
に作成されます。
手動で VPN に接続する
# openvpn --config /etc/openvpn/client/{config_file_name}
{config_file_name}
は /etc/openvpn ディレクトリにリストされているか、pia -l
を実行して確認できます。
自動的に VPN に接続する
connman の場合
connman-vpn.service
を有効化します。- root 権限で
pia -a
を実行します(まだ実行していない場合)。
# pia -a
- すべての connman サービスのリストを取得し、VPN 設定の名前(例: Finland)を2列目で確認します。
connmanctl services
... * Finland_VPN vpn_fi_privateinternetaccess_com_privateinternetaccess_com ...
- 選択した VPN 設定に接続し、その設定に対する connman 設定ファイルを作成します:
# connmanctl connect vpn_fi_privateinternetaccess_com_privateinternetaccess_com
- 関連する設定ファイル(例:
/var/lib/connman/vpn_fi_privateinternetaccess_com_privateinternetaccess_com/settings
)を編集します。 AutoConnect=false
行をAutoConnect=true
に変更し、保存して終了し、再起動します。
openvpn の場合は、OpenVPN#systemd サービスの設定を参照してください。
高度なオプション
/etc/private-internet-access/pia.conf
を作成します。[pia]
セクションの設定:
オプション | オプションの値 | 説明 |
---|---|---|
openvpn_auto_login | True,False | デフォルト: True; OpenVPN 設定ファイルで自動ログインを有効にするかどうかを設定します。#Enabling auto-login を参照。 |
[configure]
セクションの設定:
オプション | オプションの値 | 説明 |
---|---|---|
apps | cm, nm | デフォルト: すべて; これは設定されるアプリケーションを設定します。アプリケーションはインストールされているすべてのアプリケーションを設定しますが、ユーザーが Conman のみの設定を必要とする場合は、これを 'cm' に設定することで、NetworkManager がインストールされていても、その設定のみが生成されます。OpenVPN の設定は常に生成されます。cm = Conman; nm = NetworkManager |
port | リストはこちらを参照: PIA のサポート - Which encryption/auth settings should I use for ports on your gateways? |
デフォルト: 1198 |
ヒントとテクニック
インターネットのキルスイッチ
以下の iptables ルールは tun
インターフェイス経由のネットワーク通信のみ許可します (VPN 接続を確立するときに使用する PIA の DNS サーバーへの接続とポート 1197 は例外的に許可します):
/etc/iptables/iptables.rules
:INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:10] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -i tun+ -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -d 209.222.18.222/32 -j ACCEPT -A OUTPUT -d 209.222.18.218/32 -j ACCEPT -A OUTPUT -p udp -m udp --dport 1197 -j ACCEPT -A OUTPUT -o tun+ -j ACCEPT -A OUTPUT -j REJECT --reject-with icmp-net-unreachable COMMIT
上記のように設定することで VPN から切断されたときに、ネットワーク通信が入ったり出たりすることがないと保証されます。
LAN 上のデバイスにもアクセスしたい場合、明示的に許可してください。例えば、192.0.0.0/24
のデバイスへのアクセスを許可するには、以下の2つのルールを (REJECT ルールの前に) 追加します:
-A INPUT -s 192.168.0.0/24 -j ACCEPT -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
さらに、上記のルールは ICMP プロトコルもブロックします。詳しくは こちらのスレッド を見てください。
トラブルシューティング
NetworkManager のアプレットを使用する
network-manager-applet を使用して接続するには、次の手順を実行します:
- システムトレイの NetworkManager アイコンを右クリックします
- 「ネットワーク接続の設定...」をクリックします
- 次に「追加」をクリックします
- 「VPN のインポート...」を選択します
- 使用したい設定ファイル(例:
/etc/openvpn/client/CA_Toronto.conf
)を参照して選択します - 「開く」をクリックします
Gateway:
から:1198
を削除します(存在する場合)。このボックスにはドメイン名のみが含まれるべきですUsername:
フィールドにはp1234567
のようなユーザー名を入力しますPassword:
フィールドには対応するパスワードを入力します- 次に「詳細...」をクリックします
- 「カスタムゲートウェイポート」を設定し、
1198
に設定します - 「セキュリティ」タブをクリックします
- 「暗号化方式(Cipher)」を
AES-128-CBC
に設定します - 「HMAC 認証」を
SHA-1
に設定します - 「OK」をクリックします
- もう一度「OK」をクリックします
DNS リーク
DNS リークに関して(python-pia/#13 を参照)、NetworkManager は /etc/resolv.conf
の設定方法により情報がリークします。以下のスクリプトは、@maximbaz によって投稿され、この問題を回避するために使用されます。リークが続く場合は、IPv6 の無効化をする必要があるかもしれません。
/etc/NetworkManager/dispatcher.d/pia-vpn
#!/bin/bash #/etc/NetworkManager/dispatcher.d/pia-vpn interface="$1" status=$2 case $status in vpn-up) if [[ $interface == "tun0" ]]; then chattr -i /etc/resolv.conf echo -e "nameserver 209.222.18.222\nnameserver 209.222.18.218" > /etc/resolv.conf chattr +i /etc/resolv.conf fi ;; vpn-down) if [[ $interface == "tun0" ]]; then chattr -i /etc/resolv.conf fi ;; esac
vopono
vopono は、一時的なネットワークネームスペースを使用して特定のアプリケーションを VPN 接続経由で実行するためのツールです。PrivateInternetAccess の自動設定生成をサポートしています。
デフォルトでキルスイッチのサポートが含まれており、ネットワークネームスペースからホストへのポート転送とプロキシサポートも備えているため、システムの他の部分に影響を与えることなく、VPN 経由でデーモンやサーバーを実行できます。
PIA マネージャーで OpenVPN に接続できない、または OpenVPN が機能しない
PIA マネージャーは内部で OpenVPN を使用しているため、OpenVPN の方法を直接使用しない場合でも、それが必要です。まず、インストールされているか確認してください。インストールスクリプトのいずれかを使用した場合は、これが自動的に行われているはずです。
もし #<Errno::ECONNREFUSED: Connection refused - connect(2) for "127.0.0.1" port 31749>
のようなエラーが発生している場合、TAP/TUN が現在実行されていない可能性があります。この場合、カーネルにその機能が含まれていないか、現在実行されていない可能性があります。カーネルにその機能がない場合は、対応するカーネルをインストールするか、新しくカーネルをコンパイルしてください。または、現在実行されていない場合は、以下のコマンドで開始する必要があります:
# modprobe tun