強い白鳥の問題

強い白鳥の問題

StrongSwanを使用してUbuntuとIKEv2プロトコルを使用するVPNサーバーがあります。

bashuser.shスクリプトを使用してクライアントを作成しましたが、次の問題が発生しました。

クライアント数が1,000人を超えると、サーバーに接続されず、サーバーは上記のコマンドを使用してアカウントを正しく作成します。

同時に、ファイルの内容は次のとおりですuser.sh

#!/bin/bash
#copyright all right reserved by hjyy
YOUR_VPN_USERNAME=''
YOUR_PASSWORD=''
YOUR_USER_ID=''
[ -n "$VPN_USERNAME" ] && VPN_USER="$YOUR_VPN_USERNAME"
[ -n "$PASSWORD" ] && VPN_PASSWORD="$YOUR_PASSWORD"
[ -n "$USER" ] && USER_ID="$YOUR_USER_ID"
if [ -z "$VPN_EMAIL" ] && [ -z "$VPN_USER" ] && [ -z "$VPN_PASSWORD" ];    then
  echo "VPN credentials not set by VPN_USER. Generating random  password..."
  echo
  VPN_USER="$(LC_CTYPE=C tr -dc 'a-z2-9' < /dev/urandom | head -c 5)"
  VPN_PASSWORD="$(LC_CTYPE=C tr -dc '2-9' < /dev/urandom | head -c 5)"
  USER_ID="$(LC_CTYPE=C tr -dc '1-9' < /dev/urandom | head -c 8)"

fi

if [ -z "$VPN_USER" ] || [ -z "$VPN_PASSWORD" ]; then
  exiterr "All VPN credentials must be specified. Edit the script and re-enter them."
fi
echo "Adding VPN_USER setup in progress... Please be patient."  
echo
cd /etc/ || exiterr "Cannot enter /etc/strongswan/."
sudo sh -c "echo ' : RSA ike.ovpadd.com.key
$VPN_USER  : EAP \"$VPN_PASSWORD\"' >>  /var/lib/strongswan/$VPN_USER.secrets.inc"
sudo sh -c "echo 'include /var/lib/strongswan/$VPN_USER.secrets.inc' >>      /etc/ipsec.secrets"
chmod -Rf 775 include /var/lib/strongswan/$VPN_USER.secrets.inc
echo "Copyright all right reserved by securedv.net"
echo "username is: $VPN_USER and password is :$VPN_PASSWORD"
echo "please run this code for delete user after <time> : bash d.sh     /var/lib/strongswan/$VPN_USER.secrets.inc <time> "
sudo service strongswan restart
exit 0)

スクリプトにエラーがありますか?

説明したように、上記のコマンドを使用してアカウントを作成することは問題ありませんが、数が増えると誰もサーバーに接続できなくなり、問題を解決するために最後のバックアップを使用する必要があります。になります。ユーザーを作成しました。

問題の原因を提案してもらえますか?

ベストアンサー1

StrongSwanが接続されていないことについて説明した動作に基づいています。新しいユーザーまたは、大きすぎてユーザーが単に接続できない場合、ipsec.secrets問題はスクリプトのバグではないと確信できます。

ファイル/バッファ/メモリ制限に達したようです。実際の問題は、ユーザーベースが現在の設定より大きくなったことです。たとえば、設定は小規模なユーザーベースには理想的ですが、それほど多くのユーザーには適していないようです。

一時的な回避策として、ユーザーのリストを複数のVPNサーバーに分割することを検討できます。

しかし、中長期的には、RADIUS、LDAP、MySQL、Active Directoryなどの中央認証サーバーを設定するよりは ipsec.secretsそしてStrongSwanが認証できる新しいインフラストラクチャを構築します。

ドキュメントはまだSQLプラグインを実験的なものとして分類しています。 PAMプラグインがありますが、お勧めできません。

FreeRadiusはバックエンドLDAP設定とも通信し、正しく設定されている場合は、より多くのプロトコル(PAP、MSCHAPv2、EAP-PAPなど)を理解できます。そしてEAP-MSCHAPv2)。 RADIUSプロトコルを使用すると、会計データを中央ポイントに集中させることができる追加の利点も提供されます。正しい設定(たとえば、オプションの構成であるMySQLのFreeRadiusダンプアカウント)を使用すると、VPNを使用しているユーザーのリストを非常に簡単に取得できます。

したがって、より複雑な場合でも、同じサイズのサービスを提供し、StrongSwanにFreeRADIUSと会話させる自由半径ユーザーとパスワードを使用してLDAPバックエンドと通信します。

公式文書によると:

RADIUSを使用した認証(FreeRadiusを例に挙げます)

EAP-Radius eap-radiusプラグインはEAPメソッドを直接実装しませんが、クライアントとのEAPセッションをRADIUSバックエンドサーバーにリダイレクトします。ゲートウェイでは、EAP パケットが IKE メッセージから抽出され、RADIUS プロトコルにカプセル化され、その逆も同様です。ゲートウェイ自体は、クライアントとRADIUSバックエンド間のEAPセッションをある程度透過的に処理するため、特定のEAPメソッドの特別なサポートは必要ありません。

RADIUSサーバーこのプラグインはすべてのRADIUSサーバーで動作する必要があり、Windows Server 2008 R2に含まれているFreeRADIUSおよびNPSサーバーを使用して正常にテストしました。

MSKを提供するEAP方式の場合、RADIUSサーバーはMPPE送信/受信キーにこのキーを含める必要があります。残念ながら、2.1.10より前のFreeRADIUSは、EAP-MSCHAPv2で使用した場合、これらの特性を含んでいません。

代替を使用することもできますpsf、Webグラフィックインターフェイスを備えたFreeBSDベースのオープンソースファイアウォールですが、まだスケーラブルでメンテナンス可能なバックエンドを設定するのに問題があります。

また、FreeRadius + Active Directoryを介して認証する何千人ものユーザーのために複数のpfSense IPsec VPNを管理しているという例も追加します。 Windows 7〜10、MacOS、iOS、Linux、およびAndroid用のネイティブVPNクライアントを使用します。

また、WHMCSとの統合について:免責事項 - よくわかりません。世界保健管理システム。しかし、私の考えでは、これはVPNソリューションの請求にのみ当てはまります。統合 RADIUS 構成に MySQL を使用した後でも WHMCS と使用/請求を統合するには、一部のソフトウェアを開発する必要があると考えられます。そうでなければ、さまざまなプラットフォームから顧客使用ログを抽出するのは難しい作業がはるかに複雑になります。

おすすめ記事