GNU/Linux >> Belajar Linux >  >> Panels >> OpenVPN

Cara Memantau Koneksi OpenVPN menggunakan alat monitor openvpn

Dalam tutorial ini, kita akan belajar bagaimana memonitor koneksi OpenVPN menggunakan tool openvpn-monitor. Tutorial ini berfokus pada pemantauan koneksi OpenVPN yang dibuat menggunakan OpenVPN Community Edition. OpenVPN CE menyediakan standar de-facto untuk membuat koneksi VPN yang aman melalui internet menggunakan protokol keamanan khusus yang menggunakan SSL/TLS.

Saat menjelajahi Internet untuk alat yang dapat digunakan untuk memantau koneksi OpenVPN yang aktif, saya menemukan alat berbasis python yang disebut openvpn-monitor yang menggunakan antarmuka manajemen OpenVPN untuk menghasilkan laporan html yang menampilkan status server OpenVPN, termasuk semua yang ada saat ini. koneksi.

Cara Memantau Koneksi OpenVPN menggunakan alat openvpn-monitor

Prasyarat

Sebelum Anda dapat melanjutkan, ada beberapa hal yang perlu disiapkan.

Instal dan konfigurasikan Server OpenVPN

Tentu saja Anda ingin memantau koneksi server OpenVPN tanpa menjalankan server OpenVPN. Ikuti tautan di bawah ini untuk menginstal dan mengatur server OpenVPN pada sistem CentOS/Ubuntu;

Instal dan Siapkan Server OpenVPN di CentOS 8

Instal dan Siapkan Server OpenVPN di Ubuntu 20.04

Aktifkan Antarmuka Manajemen

openvpn-monitor alat mengharuskan antarmuka manajemen OpenVPN diaktifkan. Antarmuka Manajemen OpenVPN memungkinkan OpenVPN dikontrol secara administratif dari program eksternal melalui soket domain TCP atau unix. Server manajemen OpenVPN dapat diaktifkan pada soket Unix atau pada port TCP yang ditentukan. Saat menggunakan soket Unix adalah metode yang disarankan, alat monitor openvpn menggunakan koneksi TCP antarmuka manajemen OpenVPN. Oleh karena itu, sangat disarankan agar Anda menyetel IP Antarmuka manajemen OpenVPN ke 127.0.0.1 (localhost) untuk membatasi aksesibilitas server manajemen ke klien lokal.

Antarmuka manajemen OpenVPN Koneksi TCP dapat diaktifkan dengan mengedit file konfigurasi server OpenVPN dan menambahkan baris, 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

Garis;

management 127.0.0.1 17562

Menyetel alamat IP antarmuka manajemen OpenVPN ke 127.0.0.1 (localhost) dan port TCP 17562. Monitor openvpn mengharapkan Antarmuka Manajemen OpenVPN untuk mendengarkan pada port TCP 5555. Kami akan mengubahnya nanti.

Periksa apakah port yang ditetapkan tidak digunakan oleh program lain di sistem Anda;

lsof -i :17562

Jika tidak ada aplikasi yang menggunakan port tersebut, mulai ulang layanan server OpenVPN;

systemctl restart [email protected]

Periksa apakah port sekarang terbuka;

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

Pastikan layanan server OpenVPN berjalan;

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.

Instal dan Siapkan alat openvpn-monitor

Ada berbagai metode untuk menginstal alat openvpn-monitor seperti yang dijelaskan pada repositori Github program. Dalam tutorial ini, kita akan menggunakan Apache untuk server koneksi OpenVPN-monitor openvpn.

Instal Apache untuk openvpn-monitor

Instal Apache dan dependensi paket yang diperlukan;

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

Unduh program openvpn-monitor

Selanjutnya, kloning repositori Github openvpn-monitor ke direktori root server web default Anda. Dalam pengaturan ini, kami menggunakan, /var/www/html/openvpn-monitor direktori.

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

Konfigurasi openvpn-monitor

Ganti nama file konfigurasi sampel, openvpn-monitor.conf.example ke openvpn-monitor.conf .

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

Ganti antarmuka manajemen OpenVPN jika Anda mengubahnya ke port selain 5555 yang ditentukan pada openvpn-monitor.py Program Python.

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

Selanjutnya, Anda sekarang dapat membuka file konfigurasi dan mengatur nama situs, menambahkan logo, mengatur lokasi peta default (lintang dan bujur, default ke New York, AS).

Ini adalah bagaimana file konfigurasi kami yang dimodifikasi terlihat seperti;

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

Perhatikan lokasi GeoIP2 City Database. Jika tidak tersedia di sistem Anda, daftar dan unduh versi gratis dari MaxMind.

Satu hal lagi adalah, pengaturan ini diuji pada Ubuntu 20.04, dengan python 3 sebagai default. Karena openvpn-monitor menggunakan python, cukup buat tautan simbolis dari python 3 ke python;

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

Konfigurasi Apache untuk Menjalankan skrip openvpn-monitor

Selanjutnya, jalankan perintah di bawah ini untuk mengkonfigurasi Apache untuk menjalankan skrip Python openvpn-monitor.

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>

Simpan dan keluar dari file konfigurasi.

Setel kepemilikan direktori root web openvpn-monitor ke pengguna Apache, www-data .

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

Periksa sintaks konfigurasi Apache;

apachectl -t
Syntax OK

Aktifkan konfigurasi situs Apache openvpn-monitor dan nonaktifkan situs default.

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

Mulai Apache dan aktifkan untuk dijalankan pada boot sistem;

systemctl enable --now apache2

Men-debug openvpn-monitor

Anda dapat menjalankan openvpn-monitor dari baris perintah untuk memeriksa apakah itu benar-benar menghasilkan laporan html dengan benar:

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

Anda juga dapat menambahkan opsi -d untuk debugging;

python openvpn-monitor.py -d

Contoh keluaran;

...
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

Mengakses openvpn-monitor di Browser

Jika semuanya baik-baik saja, sekarang Anda dapat mengakses statistik OpenVPN Anda melalui alamat http://<OpenVPN-server-Address/openvpn-monitor atau http://<OpenVPN-server-Address/ sesuai pengalihan kami.

Dan di sana Anda pergi. Indah, bukan? Semua kredit pergi ke furlongm. Seperti yang Anda lihat, kami memiliki status koneksi untuk klien OpenVPN saya yang terhubung secara lokal.

Itu menandai akhir dari panduan kami tentang cara memantau koneksi OpenVPN menggunakan alat monitor openvpn. Selamat menikmati.

Referensi

openvpn-monitor

Tutorial Terkait

Instal dan Siapkan Server OpenVPN di Ubuntu 20.04

Konfigurasikan Otentikasi Berbasis OpenVPN LDAP

Tetapkan Alamat IP Statis untuk Klien OpenVPN

Konfigurasikan Klien VPN strongSwan di Ubuntu 18.04/CentOS 8

OpenVPN
  1. Cara Mengizinkan Koneksi Jarak Jauh ke MySQL

  2. Bagaimana Cara Ssh Ke Server Menggunakan Server Lain??

  3. Cara Menginstal OpenVPN di Ubuntu 18.04

  1. Cara mengatur server OpenVPN di Ubuntu 20.04

  2. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  3. Cara Mengatur Server OpenVPN di CentOS 7

  1. Cara Mengatur Server OpenVPN di Debian 9

  2. Siapkan Server VPN Linux menggunakan OpenVPN – Panduan Langkah-demi-Langkah

  3. Cara Memantau Server Linux Anda menggunakan osquery