GNU/Linux >> Linux の 問題 >  >> Rocky Linux

RockyLinux8でPritunlVPNサーバーをセットアップする方法

Pritunlは、小規模および大規模な組織向けのユーザー管理と水平スケーリングを備えたオープンソースのVPNおよびIPsecサーバーです。これにより、ユーザーはOpenVPNおよびWireguardプロトコルを使用することができます。使いやすいGUIインターフェイスが付属しており、ほとんどのデバイスとプラットフォームのクライアントをサポートします。クライアントとサーバー間のすべてのトラフィックは暗号化されます。 Pritunlは、信頼性が高くスケーラブルなデータベースであるMongoDBに基づいて構築されており、迅速にデプロイでき、レプリケーションのサポートが組み込まれているため、Pritunlクラスターのデプロイが簡単になります。

このチュートリアルでは、Rocky Linux8にPritunlVPNサーバーをインストールする方法について説明します。また、Linuxクライアントを使用してVPNに接続する方法についても説明します。

前提条件
  1. PritunlサーバーをホストするためにRockyLinux8を実行しているシステム。

  2. sudo権限を持つroot以外のユーザー。

  3. サーバーを指すドメイン名。

  4. RockyLinux8をクライアントとして実行しているシステム。

  5. すべてが更新されていることを確認してください。

    $ sudo dnf update
    
  6. 前提条件をインストールします。

    $ sudo dnf install nano
    
ステップ1-ファイアウォールを構成する

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
ステップ2-MongoDBをインストールする

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'
ステップ4-Pritunlにアクセスして構成する

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について詳しく知りたい場合は、公式ドキュメントに従ってください。ご不明な点がございましたら、下のコメント欄に投稿してください。


Rocky Linux
  1. Rocky Linux /CentOS8サーバーでSFTPサーバーをセットアップする方法

  2. ArchLinuxでSFTPサーバーをセットアップする方法

  3. Rocky / AlmaLinux8でNFSサーバーとクライアントをセットアップする方法

  1. LinuxPCにVPNサーバーをセットアップする

  2. Debian9でOpenVPNサーバーをセットアップする方法

  3. RockyLinux8でNFSマウントを設定する方法

  1. RockyLinuxにRedisサーバーをインストールする方法

  2. RockyLinux8にMattermostサーバーをインストールする方法

  3. RockyLinuxで静的IPアドレスを設定する方法