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