DjangoフレームワークでOpenVPNユーザーを管理するためのWebサイトを開発しています。しかし、OpenVPNからアクティブユーザーを抽出する方法はありますか?サーバーはUbuntu 12.04を実行しています。
あなたがあなたを示すために見ることができるステータスログがあるはずです、私のものは、例えば:
cat /etc/openvpn/openvpn-status.log
編集:
代わりに、フラグ--management IP port [pw-file]
を追加するか、同じディレクティブをserver.conf
に追加します。次に例を示します。
management localhost 7505
これにより、そのポートにTelnetで接続し、実行するコマンドのリストを提供できます。
telnet localhost 7505
help
完了するには @ sekrett 回答:
killall -USR2 openvpn ; tail -f /var/log/syslog
それは走り続けるでしょう、それは「通常の」殺害ではなく、単にいくつかの統計を印刷するリクエストです。
表示される統計は非常に読みやすいです。出力例:
Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016
Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016
私も同じ必要性を得て、最も簡単な解決策は、前述のtelnetを使用して管理インターフェイスに接続することでした(追加する必要があるのは:management localhost 6666、サーバー構成ファイル内)。
あなたができるクライアントの正確な数を得るには:
次に、多くのログを取得します。
10.9.10.11,test-docker,52.58.48.98:56859,Wed May 4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May 4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May 4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
私の場合、クライアントの数が非常に多いため、ログファイルを使用することは明らかに実用的ではありません。
私の会社のOpenVPNサーバーを管理しています。アクティブな接続を確認する方法は次のとおりです。
/etc/openvpn/server.confに追加
management 127.0.0.1 5555
openvpnサーバーを再起動します
systemctl restart [email protected]
openVPNモニターを追加Pythonパッケージ-これはGunicorn Webサーバー経由で実行され、アクティブな接続を表示します。
mkdir /opt/openvpn-monitor
仮想環境を作成します(必須ではありませんが、pyパッケージを使用することをお勧めします)
cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate
必要なパッケージをインストールする
pip install openvpn-monitor gunicorn
監視設定ファイルを追加する
vi /opt/openvpn-monitor/openvpn-monitor.conf
[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S
[VPN1]
Host=localhost
port=
name=Your VPN Server Name
show_disconnect=False
アクティブな接続を表示するWebサーバーを起動します。
gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon
モニターを停止するには
pkill gunicorn
アクティブな接続を確認するには、VPNサーバーのパブリックIPに移動します
http://<ip of openvpn server>
必ずポート80に適切なファイアウォールを設定し、信頼できる受信IPのみをホワイトリストに登録してください
Usr2シグナルをopenvpnプロセスに送信して、統計情報をsyslogに書き込むこともできます。これは安全です。以前に管理インターフェースを有効にしていなかった場合に再起動する必要はありません。
次のコマンドでsacliを使用するだけです。接続されているVPNクライアントが一覧表示されます。
/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}
すべてのIPを表示するには、このオプションを使用します。 ./sacli VPNStatus