On Wed, 14 Feb 2024 08:34:38 +0100, Bo Berglund <bo.bergl...@gmail.com> wrote:

>I also want to log server side client connect/disconnect events on my server.
>
>And I have tried to read the documentation here:
>https://openvpn.net/community-resources/reference-manual-for-openvpn-2-5/
>
>I can find a lot of entries for the client-connect client-disconnect details,
>including how it can be configured with call arguments.
>But what I don't find is any working example of such a script...
>
>I have also googled for it but that too fails because noone I have found seems
>to want to show an actually working setup including:
>
>- What needs to be entered in the server.conf file, like permissions
>- Where the script could reside to be usable
>- What the script file properties should be
>- How the script can get the information to write to the log
>- How it can actually reach a log location and write a file there
>
>A working example, which logs client connect and disconnect events with a
>readable timestamp and some user data into a log file located in say the
>/etc/openvpn/log directory would be very useful in my opinion.
>
>Is there such an example somewhere?

SOLUTION

Just to follow up on my question
---------------------------------
I have done the following and it seems to work:

/etc/openvpn/server/serverlocal.conf:

#Add logging of client connect/disconnect events:
script-security 2
client-connect /etc/openvpn/scripts/serverlocal-events.sh
client-disconnect /etc/openvpn/scripts/serverlocal-events.sh

/etc/openvpn/scripts/serverlocal-events.sh:

#!/bin/bash
# Executed on the server side for client connect and disconnect events.
# Log file path
LOG_FILE="/etc/openvpn/log/serverlocal-events.log"
# Log timestamp
LOG_TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
# Log client connect or disconnect event with IP address
if [ "$script_type" == "client-connect" ]; then
    echo "$LOG_TIMESTAMP - $common_name connected with IP $trusted_ip" >>
"$LOG_FILE"
elif [ "$script_type" == "client-disconnect" ]; then
    echo "$LOG_TIMESTAMP - $common_name disconnected with IP $trusted_ip" >>
"$LOG_FILE"
fi


And when I test this with a connect - disconnect cycle this is what I get:

2024-02-16 11:34:26 - BosseUbu connected with IP 217.213.74.168
2024-02-16 11:34:32 - BosseUbu disconnected with IP 217.213.74.168

So it seems to work as expected...


-- 
Bo Berglund
Developer in Sweden



_______________________________________________
Openvpn-users mailing list
Openvpn-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-users

Reply via email to