Pritunlは、小規模および大規模な組織向けのユーザー管理と水平スケーリングを備えたオープンソースのVPNおよびIPsecサーバーです。これにより、ユーザーはOpenVPNおよびWireguardプロトコルを使用することができます。使いやすいGUIインターフェイスが付属しており、ほとんどのデバイスとプラットフォームのクライアントをサポートします。クライアントとサーバー間のすべてのトラフィックは暗号化されます。 Pritunlは、信頼性が高くスケーラブルなデータベースであるMongoDBに基づいて構築されており、迅速にデプロイでき、レプリケーションのサポートが組み込まれているため、Pritunlクラスターのデプロイが簡単になります。
このチュートリアルでは、Rocky Linux8にPritunlVPNサーバーをインストールする方法について説明します。また、Linuxクライアントを使用してVPNに接続する方法についても説明します。
-
PritunlサーバーをホストするためにRockyLinux8を実行しているシステム。
-
sudo権限を持つroot以外のユーザー。
-
サーバーを指すドメイン名。
-
RockyLinux8をクライアントとして実行しているシステム。
-
すべてが更新されていることを確認してください。
$ sudo dnf update
-
前提条件をインストールします。
$ sudo dnf install nano
RockyLinuxはFirewalledFirewallを使用しています。ファイアウォールのステータスを確認してください。
$ sudo firewall-cmd --state running
これは、正常に稼働していることを示しています。
ファイアウォールはさまざまなゾーンで機能し、パブリックゾーンがデフォルトのゾーンであり、これを使用します。ファイアウォールでアクティブなすべてのサービスとポートを一覧表示します。
$ sudo firewall-cmd --permanent --list-services
次の出力が表示されます。
dhcpv6-client mdns ssh
HTTPおよびHTTPSポートを許可します。
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
ファイアウォールのステータスを再確認してください。
$ sudo firewall-cmd --permanent --list-all
同様の出力が表示されるはずです。
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
ファイアウォールをリロードして変更を有効にします。
$ sudo firewall-cmd --reload
PritunlはMongoDBデータベース上に構築されているため、最初にそれをインストールする必要があります。 Rocky LinuxにはMongoDBが付属していないため、MongoDBの公式リポジトリを使用する必要があります。
注: MongoDB 5.0は、新しいプロセッサでのみ動作します。サーバーが古いハードウェアで実行されている場合は、古いバージョンのMongoDBを選択するか、新しいサーバーに切り替える必要があります。
ファイル/etc/yum.repos.d/mongodb-org-5.0.repo
を作成して開きます 編集用。
$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo
次のコードを貼り付けます。
[mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
Ctrl + Xを押してファイルを保存します Yと入力します 終了したらプロンプトが表示されたら。
MongoDBをインストールします。
$ sudo dnf install mongodb-org
MongoDBサービスを有効にして開始します。
$ sudo systemctl enable mongod --now
ステップ3-Pritunlサーバーをインストールする
最初のステップは、Pritunlの公式リポジトリを作成することです。ファイル/etc/yum.repos.d/pritunl.repo
を作成して開きます 編集用。
$ sudo nano /etc/yum.repos.d/pritunl.repo
次のコードを貼り付けます。
[pritunl] name=Pritunl Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1
Ctrl + Xを押してファイルを保存します Yと入力します 終了したらプロンプトが表示されたら。
Pritunlが必要とするEpelリポジトリを最初にインストールします。
$ sudo dnf install epel-release
Pritunlに必要なGPGキーを追加およびインポートします。
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Pritunlをインストールします。
$ sudo dnf install pritunl
Pritunlのバージョンを確認してください。
$ pritunl version pritunl v1.30.2960.4
Pritunlサービスを有効にして開始します。
$ sudo systemctl enable pritunl --now
次のコマンドを実行して、サーバーで開くファイルの制限を増やします。これにより、高負荷の場合の接続の問題を防ぐことができます。別のサーバーにMongoDBをインストールした場合は、そのサーバーでこれらのコマンドを実行する必要があります。
$ sudo sh -c 'echo "* hard nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "* soft nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "root hard nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "root soft nofile 64000" >> /etc/security/limits.conf'
http://<serverIP>/
と入力すると、Pritunlを起動できます。 ブラウザで。現代のブラウザはすべてのサイトのHTTPSバージョンにアクセスしようとするため、ブラウザによってスローされるプライバシーエラーを回避する必要があります。
URLを最初に起動すると、次の画面が表示されます。
MongoDBURIを自動的に取得します。セットアップキーについては、次のコマンドを実行します。
$ sudo pritunl setup-key eacbd641982048fd9a60cdf09f7ebaa3
ウェブサイトで生成されたキーを入力し、保存をクリックします ボタン。データベースがアップグレードされ、ログイン画面が開きます。
次のコマンドを実行して、デフォルトのログイン情報を生成します。
$ sudo pritunl default-password [undefined][2021-11-08 22:34:55,255][INFO] Getting default administrator password Administrator default password: username: "pritunl" password: "krZQLlH9U7P1"
ログイン情報を入力してサインインします。次の設定画面が表示されます。
強力なパスワードを入力して、デフォルトのパスワードを置き換えます。 [ドメインを暗号化する]の下にドメインを入力します 分野。 Pritunlは、ドメインのSSL証明書を自動的に生成して設定します。
これで、https://pritunl.example.com
と入力して、ドメイン名を使用してサーバーを起動できます。 ブラウザで。
ステップ5-組織、サーバー、およびユーザーを追加する
次のステップは、VPNの組織を追加することです。 ユーザーをクリックします タブをクリックし、組織の追加をクリックします ボタン。
追加をクリックします ボタンをクリックして続行します。
次のステップは、ユーザーを追加することです。 2つのオプションがあります。ユーザーを1人ずつ追加することも、まとめて追加することもできます。今のところ、シングルユーザーを追加します。 ユーザーの追加をクリックします ボタン。
PINフィールドはオプションであり、2要素認証を使用する場合に使用されます。 PINは数字のみで構成されています。
組織とユーザーを設定したら、サーバーに移動します タブをクリックし、サーバーの追加をクリックします ボタン。
ポート :サーバーが使用する任意のポートを追加できます。指定したポートがセキュリティグループ内のすべてのインバウンドトラフィックに対して開いていることを確認してください。
DNS: GoogleDNSまたはOpenDNSのいずれかを追加できます。
仮想ネットワーク: このフィールドにプライベートIPを追加できますが、他のリソースがこれを使用しないようにしてください。クライアントには、この範囲のIPアドレスが割り当てられます。
仮想WGネットワーク: WireGuardクライアントに割り当てられるプライベートネットワークのWireGuardネットワークアドレス。仮想ネットワークと同じCIDRブロックが必要です。
WireGuardを有効にする: チェックすると、OpenVPNの代わりにWireGuardが使用されます。ただし、チュートリアルではOpenVPNを使用するため、チェックを外したままにします。
WGポート: このポートは、WireGuard接続に使用されます。 WireGuardオプションを有効にした場合にのみ使用されます。
Google認証システムを有効にする: 2段階認証プロセスを使用するには、このオプションを有効にします。サーバーでこのオプションが有効になっている場合、そのサーバーの下にあるすべてのクライアントは、毎回VPNに接続する前にOTPを確認する必要があります。
IPv6を有効にする :IPv6DNSサーバーを有効にします。クライアントにはプライベートIPv6アドレスが与えられます。
追加をクリックします ボタンを押して終了します。
組織の追加をクリックします 組織を新しく作成されたサーバーにリンクするためのボタン。
サーバーの起動をクリックします ボタンをクリックしてVPNを開始します。
VPNポートを介したクライアントからの接続を受け入れるには、ファイアウォールを介して接続を有効にする必要があります。
$ sudo firewall-cmd --permanent --add-port=18412/udp $ sudo firewall-cmd --reload
ステップ6-Pritunlクライアントをインストールする
サーバーが稼働しているので、クライアントをインストールしてVPNに接続します。 Pritunlは、コマンドラインとGUIクライアントの2種類のクライアントを提供します。
このチュートリアルでは、コマンドラインクライアントを使用します。システムにインストールできるクライアントは1種類のみです。
Pritunlクライアントに必要なEPELリポジトリをインストールします。
$ sudo dnf install epel-release
公式のPritunlリポジトリをRockyLinuxシステムに追加します。
$ sudo tee -a /etc/yum.repos.d/pritunl.repo << EOF [pritunl] name=Pritunl Stable Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1 EOF
GPGキーを追加してインポートします。
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
コマンドラインクライアントをインストールします。
$ sudo dnf install pritunl-client
ステップ7-クライアントからサーバーに接続する
Pritunlサーバーサイトの[ユーザー]タブから、クライアントに接続するための一時プロファイルリンクを取得します。
最後のエントリから一時URIリンクをコピーします。
クライアント端末で次のコマンドを入力して、プロファイルを追加します。
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
add
の後にコピーしたプロファイルリンクを必ず追加してください コマンドで。
追加されたプロファイルのリストを確認してください。
$ pritunl-client list +----------------------------------+-------------------------+--------------+----------------+----------------+ | ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS | +----------------------------------+-------------------------+--------------+----------------+----------------+ | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | - | - | +----------------------------------+-------------------------+--------------+----------------+----------------+
次のコマンドを実行して、プロファイルに接続します。コマンドで完全なプロファイルIDを使用する必要はありません。プロファイルIDの最初の3文字を使用して参照してください。
$ pritunl-client start wki --mode=ovpn --password=PINOTP
- OPVNモードを指定するには、フラグ
--mode=ovpn
を追加します コマンドで。 - Google認証システムオプションを有効にしている場合は、Google認証システムまたはAuthyクライアントを使用して構成する必要があります。
- ピンと2要素認証コードを指定するには、フラグ
--password=PINOTP
を使用します コマンドで。たとえば、ピンが54321で、OTPコードが456789の場合、フラグ--password=54321456789
を使用します。 上記のコマンドで。 PINのみを使用している場合は、フラグ--password=PIN
を使用します。 。
list
を実行します もう一度コマンドを実行して、接続が機能しているかどうかを確認します。
$ pritunl-client list
+----------------------------------+-------------------------+------------+----------------+----------------+
| ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS |
+----------------------------------+-------------------------+------------+----------------+----------------+
| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 secs | 178.62.233.196 | 192.168.238.2 |
+----------------------------------+-------------------------+------------+----------------+----------------+
PritunlVPNへの接続に成功しました。
Pritunlコマンドライン
Pritunlサーバーには、いくつかの基本的な操作を実行するために使用できるコマンドラインツールが付属しています。
Pritunlを使用してデータベースを修復し、破損したデータベースや一貫性のないデータベースを回復できるようにすることができます。
まず、Pritunlサーバーを停止します。
$ sudo systemctl stop pritunl
データベースを修復します。
$ sudo pritunl repair-database
Pritunlサービスを再起動します。
$ sudo systemctl start pritunl
repair-database
コマンドは、すべてのログをクリアし、すべてのユーザーの静的仮想IPアドレスをリセットし、すべてのサーバーを停止状態にします。
次のコマンドは、管理者のユーザー名とパスワードをpritunl
にリセットします。 。また、有効になっている場合は、管理者ユーザーのシングルサインオンと2段階認証の設定も削除されます。
$ sudo pritunl reset-password
Webコンソールポートを変更する
デフォルトでは、Pritunlはポート443で実行されます。変更する場合は、次のコマンドを使用してください。
$ sudo pritunl set app.server_port 8443
Pritunlは、Let's Encryptの検証のためにポート80でWebサーバーを実行し、HTTPリクエストをHTTPSにリダイレクトします。次のコマンドを使用して、リダイレクトをオフにできます。これにより、Let'sEncrypt証明書の使用も防止されます。
$ sudo pritunl set app.redirect_server false
これで、RockyLinux8サーバーでのPritunlVPNサーバーのセットアップと使用に関するチュートリアルは終了です。 Pritunlについて詳しく知りたい場合は、公式ドキュメントに従ってください。ご不明な点がございましたら、下のコメント欄に投稿してください。