Re: Client history

Peter Davis via Openvpn-users <[email protected]>
Newsgroups gmane.network.openvpn.user
Message-ID <n-6PAMkN34dojTQrUv7vdC3mjUjwj2PtWhHOe2_e34nWPw8AEc_5ZPWGM_2DY-5XYc4lGMbwuKRqwOCUCIm1JTqkc6AhV1lby2rmKeFn2oU=@proton.me>
> On Friday, February 16th, 2024 at 2:10 PM, Bo Berglund <[email protected]> wrote:

> On Wed, 14 Feb 2024 08:34:38 +0100, Bo Berglund [email protected] 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openvpn-users

Hi,
Thank you so much for your great reply.
What should script permission be? I got the following error:

--client-connect script fails with '/etc/openvpn/scripts/script.sh': Permission denied (errno=13)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.