テクノロジーの時代には、仮想プライベートネットワーク(VPN)を持つことが必須です。VPNは個人用途だけでなく、特にビジネスや企業にとってますます重要になっています。そして、まだどのVPNソリューションを選ぶか迷っているのであれば、OpenConnect VPNを考慮してみてはいかがでしょうか?
OpenConnect VPNは、エンタープライズグレードのパフォーマンスと機能を備えた無料のVPNソリューションです。このチュートリアルでは、OpenConnect VPNサーバー(ocserv)の設定と接続方法を学びます。
続けて読んで、邪悪な存在をネットワークから遠ざけましょう!
前提条件
このチュートリアルでは、ハンズオンデモンストレーションが含まれています。進行するためには、以下の準備が必要です:
- A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
- 管理ユーザーまたはsudo/root権限を持つノンルートユーザー。
- A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
- A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.
OpenConnect VPNサーバーのインストール
OpenConnect VPNサーバーは、Linux向けのオープンソースのSSLベースのVPNサーバーで、Debian、Ubuntu、RHEL/CentOS、FedoraなどのほとんどのLinuxディストリビューションで利用できます。
OpenConnect VPNサーバーは、デスクトップ/コンピュータからモバイル(AndroidおよびiOS)まで、ほとんどのクライアントをサポートしています。同様に、OpenConnect VPNサーバーは、Radius、OpenID、Kerberos、スマートカードなど、複数の認証バックエンドもサポートしています。
しかし、これらの機能を活用する前に、まずOpenConnect VPNサーバーをインストールする必要があります。
1. サーバーにSSHして、次のapt updateコマンドを実行して、パッケージインデックスを更新してリフレッシュします。このコマンドにより、最新のパッケージ情報が取得されます。

2. 次に、次のapt install
コマンドを実行してocserv
パッケージをインストールします。
インストールが完了すると、新しいsystemdサービスであるocserv
が起動し、

3. 今、ocserv
サービスが実行されていることを確認するために、次のsystemctl
コマンドを実行します。
出力からわかるように、ocserv
サービスの状態が有効で実行されています。

SSL/TLS証明書の生成
OpenConnect VPNサーバーがインストールされたら、次のステップは、OpenConnect VPNサーバーに安全に接続できるようにすることです。方法は?最初のステップは、CertbotとLetsEncryptを使用してSSL/TLS証明書を生成することです。
しかし、証明書を生成する前に、Let’s Encrypt に登録するためのメールアドレスがあること、およびドメイン名がDebianサーバーのIPアドレスに向けられていることを確認してください。
SSL/TLS証明書を生成するには:
1. 以下のコマンドを実行して、Linuxサーバーにcertbot
をインストールします。

2. 次に、以下のcertbot
コマンドを実行して、SSL/TLS証明書を生成します。メールアドレス([email protected]
)とドメイン名(vpn.atadomain.io
)を適切に変更してください。

3. 最後に、次のコマンドを実行して、生成されたSSL/TLS証明書がドメインディレクトリに存在することを確認します。
成功した場合、以下に示すように公開(fullchain.pem)とプライベート(privkey.pem)キーが表示されます。

OpenConnect VPNサーバーの構成
SSL/TSL証明書があっても、OpenConnect VPNサーバーの構成を変更しない限り、そこに置かれたままです。デフォルトのOpenConnect VPNサーバーの構成(/etc/ocserv/ocserv.conf)を次のように変更します:
- デフォルトの認証方法を変更します。
- OpenConnect VPNサーバーでUDPを無効にします。
- デフォルトのSSL/TLS証明書を変更します。
- クライアントのためのドメイン名と内部ネットワークまたはIPアドレスを設定します。
OpenConnect VPNサーバーを構成するには、以下の手順に従ってください:
1. まず、以下のcp
コマンドを実行して、デフォルトのOpenConnect VPNサーバー設定(ocserv.conf
)を/etc/ocserv
ディレクトリにocserv.conf.orig
としてバックアップします。
2. 次に、お好みのエディタを使用してOpenConnect VPNサーバー設定(/etc/ocserv/ocserv.conf)を開きます。
3. auth
パラメータの値を以下に示すようにplain[passwd=/etc/ocserv/ocpasswd]
に変更します。これにより、デフォルトのPluggable Authentication Modules(PAM)認証がパスワードファイルに置き換えられます。
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

4. 今、udp-port
パラメータの前に#
を置いて、デフォルトのUDP接続を無効にします。
OpenConnect VPNをTCPのみのモードで使用するため、カーネルパラメータを介して速度を向上させることができます。
tcp-port = 443
#udp-port = 443

5. server-cert
パラメータの証明書ファイルのパスを公開鍵に、server-key
パラメータのプライベートキーに置き換えます。
server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem

6. try-mtu-discovery
パラメータの値をtrue
に変更してMTU探索を有効にします。これにより、OpenConnect VPNサーバーのスピードとパフォーマンスが向上します。
try-mtu-discovery = true

7. 次に、OpenConnect VPNサーバーのドメイン名をdefault-domain
パラメータに入力し、ipv4-network
パラメータでデフォルトの内部IPアドレスを変更します。
この例では、VPNクライアントは内部ネットワーク10.11.0.0/24
を使用します。
default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0

8. デフォルトのroute
パラメータをコメントアウトし、各行の先頭に#
文字を追加してデフォルトのルートゲートウェイを無効にします。編集が完了したら、ファイルを保存してエディターを終了します。
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

9. 以下のコマンドを実行して、ocserv
サービスを再起動し、変更を適用し、システム上のすべての開いているポート(ss
)をリストします。
OpenConnect VPNサーバーが実行されている場合、以下のようにポート443がLISTEN状態であり、ocservサービスによって使用されていることが表示されます。

OpenConnect VPNサーバーにユーザーを追加する
OpenConnect VPNサーバーが設定されているので、それに接続する方法が必要です。どのようにして?OpenConnect VPNサーバーにVPNユーザーを作成して追加することで。
OpenConnect VPNサーバーにユーザーを追加するには、次の手順でVPNユーザーを作成し、パスワードファイルを生成します:
次のocpasswd
ユーティリティを使用して、新しいユーザーを作成します。プロンプトが表示されたら、ユーザーのための新しいパスワードを入力し、繰り返します。このチュートリアルでは、ユーザー名にatauser
を選択しましたが、独自のものを指定することもできます。
ユーザーが作成されると、パスワードファイル(/etc/ocserv/ocpasswd
)も作成されます。

次に、次のcat
コマンドを実行して、パスワードファイルの詳細を確認します(/etc/ocserv/ocpasswd
)。

重要なポートを開くためのUFWファイアウォールルールを追加します
Debianシステムでは、デフォルトのファイアウォールはIPTablesですが、これを設定するにはネットワーキングの理解が必要です。なぜプロセスを簡素化しないのでしょうか? このチュートリアルでは、デフォルトのファイアウォールとしてUFWをインストールして設定します。
1. 以下のコマンドを実行して、UFWをインストール
し、すべてのプロンプトを自動的に受け入れます-y

2. UFWがインストールされたら、次のufw
コマンドを実行して、OpenConnect VPNサーバーが正しく動作するために必要な重要なポートを開きます。
プロンプトが表示されたら、操作を続行するにはYを入力してEnterキーを押してください。以下に示すように。

3. 最後に、次のコマンドを実行してUFWのステータスを確認し、UFWが実行されていることを確認します。
以下の出力には、アクティブなUFWステータスと追加されたすべてのファイアウォールルールが表示されます。

ポートフォワーディングの有効化
VPNサーバーが実行されている場合、外部からのトラフィックをサーバーに向ける必要があります。これは、カーネルパラメータを介してDebianサーバーでポートフォワーディングを許可することによって行います。
ポートフォワーディングを有効にするには、次の手順に従ってください。
ターミナルに出力を生成しないが、/etc/sysctl.d/60-ocserv.conf
という新しいファイルを作成する次のコマンドを実行します。このファイルには、システムでポートフォワーディングを有効にするためのカーネルパラメータが含まれています。
次に、以下のsysctl
コマンドを実行して新しいカーネルパラメータを適用し、ポートフォワーディングを有効にします。

UFWを使用したNATの設定
ポートフォワーディングを有効にすることは、最初の数ステップのうちの1つに過ぎません。今回は、OpenConnect VPNサーバーを介してVPNクライアントがインターネットまたは特定のネットワークに接続できるようにする必要があります。その方法は?UFWを介したNATの設定によって行います。
To set up NAT with UFW for the OpenConnect VPN Server:
1. システム上のインターフェースのリストを確認するには、次のコマンドを実行します。
この例では、eth1 インターフェースがVPNクライアント用のNATゲートウェイになります。

2. 次に、好みのエディタを使用してUFW構成(/etc/ufw/before.rules)を開き、*filter
オプションの前に次の行を追加します。これらの構成はVPNユーザー(出力インターフェースを指定)または内部ネットワークを eth1
インターフェースにNATします。
サブネット(10.11.0.0/24
)とインターフェース(eth1
)をVPNクライアントのネットワークに合わせて変更してください。
# OpenConnect VPNサーバーのためのNAT
# クライアントネットワーク 10.11.0.0/24
# インターフェース eth1 へ
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT

3. ufw-before-forward
オプションのok icmp code for FORWARD
セクションの下に次の行を追加し、ファイルを保存してエディタを終了します。
これらの構成はVPNクライアントネットワークの転送(ソースおよび宛先)を有効にします。
# VPNクライアントネットワークの転送を許可
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT

4. 保存したら、次のコマンドを実行してUFWルールを再読み込みし、UFWサービスを再起動します。これにより、NAT構成がシステムに適用されます。
5. 最後に、次の iptables
コマンドを実行してUFW上のNATの状態を確認します。
成功すると、以下のような出力が得られます。

OpenConnect VPNサーバーにOpenConnect-GUI経由で接続
指示に従うと、完全に機能するOpenConnect VPNサーバーが実行されているはずです。しかし、すべての苦労の後、真実の瞬間が来ました。
OpenConnect VPNサーバーは実行されているかもしれませんが、確認するための唯一の最良の方法があります—OpenConnect VPNサーバーに接続します。
OpenConnect VPNサーバーに接続するには、OpenConnect-GUIアプリケーションをインストールする必要があります:
1. 好きなWebブラウザーを開いて、OpenConnect-GUI GitHubページにアクセスします。
2. 次に、Windows用のOpenConnect VPNアプリケーションをダウンロードしてインストールします。

3. OpenConnect-GUI VPNクライアントを開き、ファイルメニュー → プロファイル → 新しいプロファイル(高度な設定)(またはCtrl+Shift+Nを押します)。小さなウィンドウが表示され、新しいプロファイルの詳細を入力できます(ステップ4)。

4. これで、以下のVPNプロファイル情報を入力します:
- 名前 – 接続名を指定します(例:testvpn)。
- ゲートウェイ – OpenConnect VPNサーバーのドメイン名を指定します(例:https://vpn.atadomain.io)。
- ユーザー名 – OpenConnect VPNサーバーに追加されたユーザー(atauser)。
入力が完了したら、情報を保存してVPNプロファイルを作成します。

5. 次に、新しく作成したVPNプロファイル(testvpn)をサーバーとして設定し、接続をクリックしてOpenConnect VPNサーバーに接続します。

6. プロンプトが表示されたら、VPNユーザーのパスワードを入力し、OKをクリックします。

7. 接続が確立されると、南京錠の色が下のように緑に変わります。

8. 最後に、VPN情報タブをクリックして詳細な接続状態を確認します。VPNサーバーから取得した内部IPアドレス、DNSサーバー、および使用しているTLSバージョンが表示されるはずです。

結論
このチュートリアルを通じて、OpenConnect VPNサーバーを設定する方法を学びました。同時に、SSL/TSL証明書を使用し、ファイアウォールルールを追加してOpenConnect VPNサーバーへの安全な接続を確立する方法も学びました。
この新しい知識を活かして、OpenConnect VPNサーバーをRadiusやOpenIDなど、複数の認証バックエンドと統合してみるのはいかがでしょうか?または、クライアント認証のセキュリティレイヤーとして二要素認証を追加することも考えてみてください。