GNU/Linux >> Linux の 問題 >  >> Panels >> OpenVPN

openvpn-monitorツールを使用してOpenVPN接続を監視する方法

このチュートリアルでは、openvpn-monitorツールを使用してOpenVPN接続を監視する方法を学習します。このチュートリアルでは、OpenVPNCommunityEditionを使用して確立されたOpenVPN接続の監視に焦点を当てています。 OpenVPN CEは、SSL / TLSを利用するカスタムセキュリティプロトコルを使用して、インターネット上で安全なVPN接続を作成するためのデファクトスタンダードを提供します。

アクティブなOpenVPN接続を監視するために使用できるツールをインターネットで探しているときに、OpenVPN管理インターフェイスを利用してOpenVPNサーバーのステータスを表示するhtmlレポートを生成するopenvpn-monitorというPythonベースのツールに出くわしました。接続。

openvpn-monitorツールを使用してOpenVPN接続を監視する方法

前提条件

先に進む前に、セットアップが必要なことがいくつかあります。

OpenVPNサーバーのインストールと構成

もちろん、OpenVPNサーバーを実行せずにOpenVPNサーバー接続を監視したい場合もあります。以下のリンクに従って、CentOS/UbuntuシステムにOpenVPNサーバーをインストールしてセットアップします。

CentOS8にOpenVPNサーバーをインストールしてセットアップする

Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

管理インターフェイスを有効にする

openvpn-monitor ツールでは、OpenVPN管理インターフェースが有効になっている必要があります。 OpenVPN管理インターフェースにより、OpenVPNを外部プログラムからTCPまたはUNIXドメインソケットを介して管理上制御することができます。 OpenVPN管理サーバーは、Unixソケットまたは指定されたTCPポートで有効にできます。 Unixソケットを使用することをお勧めしますが、openvpn-monitorツールはOpenVPN管理インターフェイスのTCP接続を使用します。したがって、OpenVPN管理インターフェイスIPを127.0.0.1(localhost)に設定して、ローカルクライアントへの管理サーバーのアクセスを制限することを強くお勧めします。

OpenVPN管理インターフェースTCP接続は、OpenVPNサーバー構成ファイルを編集し、management IP port

vim /etc/openvpn/server/server.conf
...
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512
# Enable OpenVPN Management Interface on localhost using TCP port 17562
management 127.0.0.1 17562

行;

management 127.0.0.1 17562

OpenVPN管理インターフェースのIPアドレスを127.0.0.1(localhost)およびTCPポート17562に設定します。openvpn-monitorは、OpenVPN管理インターフェースがTCPポート5555でリッスンしていることを想定しています。これは後で変更します。

割り当てられたポートがシステム上の他のプログラムによって使用されていないことを確認してください;

lsof -i :17562

ポートを使用しているアプリケーションがない場合は、OpenVPNサーバーサービスを再起動します;

systemctl restart [email protected]

ポートが開いていることを確認します;

lsof -i :17562
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
openvpn 44178 root    3u  IPv4 189028      0t0  TCP localhost:17562 (LISTEN)

OpenVPNサーバーサービスが実行されていることを確認します;

systemctl status [email protected]
[email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-16 16:15:46 UTC; 1h 15min ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 44178 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 2282)
     Memory: 1.9M
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─44178 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

Aug 16 16:15:46 ubuntu20.kifarunix-demo.com systemd[1]: Starting OpenVPN service for server...
Aug 16 16:15:46 ubuntu20.kifarunix-demo.com systemd[1]: Started OpenVPN service for server.

openvpn-monitorツールのインストールとセットアップ

プログラムのGithubリポジトリで概説されているように、openvpn-monitorツールをインストールするさまざまな方法があります。このチュートリアルでは、Apacheを使用してopenvpn-monitorOpenVPN接続をサーバーします。

openvpn-monitor用のApacheをインストールする

Apacheと必要なパッケージの依存関係をインストールします;

apt install git apache2 libapache2-mod-wsgi python3-geoip2 python3-ipaddr python3-humanize python3-bottle python3-semantic-version geoip-database geoipupdate

openvpn-monitorプログラムをダウンロード

次に、openvpn-monitorGithubリポジトリをデフォルトのウェブサーバーのルートディレクトリに複製します。この設定では、/var/www/html/openvpn-monitor ディレクトリ。

git clone https://github.com/furlongm/openvpn-monitor.git /var/www/html/openvpn-monitor
ls /var/www/html/openvpn-monitor/
AUTHORS COPYING images MANIFEST.in openvpn-monitor.conf.example openvpn-monitor.py README.md requirements.txt setup.py tests VERSION.txt

openvpn-monitorを構成する

サンプル構成ファイルの名前をopenvpn-monitor.conf.example openvpn-monitor.conf

cp /var/www/html/openvpn-monitor/openvpn-monitor.conf{.example,}

openvpn-monitor.py Pythonプログラム。

cd /var/www/html/openvpn-monitor
grep -irl 5555 . | xargs -I {} sed -i 's/5555/17562/' {}

次に、構成ファイルを開いてサイト名を設定し、ロゴを追加し、デフォルトの地図の場所(緯度と経度、デフォルトは米国ニューヨーク)を設定できます。

変更した構成ファイルは次のようになります;

cat /var/www/html/openvpn-monitor/openvpn-monitor.conf
[openvpn-monitor]
site=Kifarunix-demo-VPN
#logo=logo.jpg
latitude=11.016844
longitude=76.955833
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=17562
name=Kifarunix-demo VPN
show_disconnect=False

GeoIP2CityDatabaseの場所に注意してください。システムで利用できない場合は、MaxMindから無料バージョンを登録してダウンロードしてください。

もう1つ、このセットアップはUbuntu 20.04でテストされており、Python3がデフォルトです。 openvpn-monitorはpythonを使用するため、python3からpythonへのシンボリックリンクを作成するだけです;

ln -s /usr/bin/python3 /usr/bin/python

openvpn-monitorスクリプトを実行するようにApacheを構成する

次に、以下のコマンドを実行して、openvpn-monitorPythonスクリプトを実行するようにApacheを構成します。

vim /etc/apache2/sites-available/openvpn-monitor.conf
ScriptAlias / /var/www/html/openvpn-monitor/openvpn-monitor.py
<Directory /var/www/html/openvpn-monitor>
	Options +ExecCGI
	AddHandler cgi-script .py
	DirectoryIndex openvpn-monitor.py

	AllowOverride None
	Require ip 192.168.0.0/16
</Directory>

構成ファイルを保存して終了します。

openvpn-monitorWebルートディレクトリの所有権をApacheユーザーwww-data

chown -R www-data: /var/www/html/openvpn-monitor/

Apache構成構文を確認してください;

apachectl -t
Syntax OK

openvpn-monitor Apacheサイト構成を有効にし、デフォルトサイトを無効にします。

a2ensite openvpn-monitor.conf
a2dissite 000-default.conf

Apacheを起動し、システムブートで実行できるようにします;

systemctl enable --now apache2

openvpn-monitorのデバッグ

コマンドラインからopenvpn-monitorを実行して、実際にhtmlレポートが正しく生成されるかどうかを確認できます:

cd /var/www/html/openvpn-monitor
python openvpn-monitor.py

オプション-d デバッグ用;

python openvpn-monitor.py -d

サンプル出力;

...
oms.addListener("click", function(marker) {
   popup.setContent(marker.alt);
   popup.setLatLng(marker.getLatLng());
   map.openPopup(popup);
});
oms.addListener("spiderfy", function(markers) {
   map.closePopup();
});
bounds.extend(centre);
map.fitBounds(bounds);
</script>
</div></div>
<div class="well well-sm">
Page automatically reloads every 5 minutes.
Last update: <b>16/08/2020 19:10:26</b></div>
</div></body></html>
DEBUG:
 === begin vpns
{'VPN1': {'host': 'localhost',
          'name': 'Staff VPN',
          'port': '17562',
          'release': 'OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] '
                     '[LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  '
                     '5 2019',
          'sessions': {},
          'show_disconnect': False,
          'socket_connected': True,
          'state': {'connected': 'CONNECTED',
                    'local_ip': IPv4Address('10.8.0.1'),
                    'mode': 'Server',
                    'remote_ip': '',
                    'success': 'SUCCESS',
                    'up_since': datetime.datetime(2020, 8, 16, 16, 15, 46)},
          'stats': {'bytesin': 0, 'bytesout': 0, 'nclients': 0},
          'version': Version('2.4.7')}}
=== end vpns

ブラウザでopenvpn-monitorにアクセスする

すべてが順調であれば、アドレスhttp://<OpenVPN-server-Address/openvpn-monitor またはhttp://<OpenVPN-server-Address/ 私たちのリダイレクトに従って。

そして、あなたは行き​​ます。美しいですね。すべてのクレジットはfurlongmに行きます。ご覧のとおり、ローカルに接続されているOpenVPNクライアントの接続ステータスがあります。

これで、openvpn-monitorツールを使用してOpenVPN接続を監視する方法に関するガイドは終わりです。お楽しみください。

リファレンス

openvpn-monitor

関連チュートリアル

Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

OpenVPNLDAPベースの認証を構成する

OpenVPNクライアントに静的IPアドレスを割り当てる

Ubuntu 18.04 /CentOS8でstrongSwanVPNクライアントを構成する

OpenVPN
  1. MySQLへのリモート接続を許可する方法

  2. 別のサーバーを使用してサーバーにSSH接続する方法は??

  3. Ubuntu18.04にOpenVPNをインストールする方法

  1. Ubuntu20.04でOpenVPNサーバーをセットアップする方法

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

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

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

  2. OpenVPNを使用してLinuxVPNサーバーをセットアップする–ステップバイステップガイド

  3. osqueryを使用してLinuxサーバーを監視する方法