Назад | Перейти на главную страницу

Как посмотреть, кто вошел в LibreSwan VPN

Недавно мы установили LibreSwan VPN, и по большей части он отлично работает. Одна вещь, с которой у нас возникли некоторые проблемы, - это попытка узнать, кто в настоящее время вошел в систему. Я нашел решение для просмотра количества активных решений на https://lists.openswan.org/pipermail/users/2011-January/020042.html но не для того, чтобы на самом деле видеть, кто вошел в сеансы (удаление grep дает много деталей, включая подключенные IP-адреса, но не фактические имена пользователей).

Моя текущая мысль - использовать grep / var / log / messages для подключений и сообщать обо всех, у которых нет сопутствующего сообщения об отключении. PPPD достаточно хорош, чтобы пометить все с помощью PID, что делает его несколько простым, но я надеялся, что есть лучший способ.

Если кто-то еще столкнется с этим, вот сценарий, который я в итоге использовал. Он ищет в / var / log / messages сообщения входа в систему, а затем проверяет, используется ли PID по-прежнему pppd. Он выводит только имя пользователя и время входа в систему.

#!/bin/bash
# Process each log in message
grep "logged in" /var/log/messages | grep pppd | while read -r line ; do
    #echo "$line"  # Useful for debugging
    # Extract the PID
    pid=$(echo $line | cut -d "[" -f2 | cut -d "]" -f1)
    user=$(echo $line | grep -o -P '(?<=user ).*(?= logged)')
    #echo $pid  # Useful for debugging
    # See if the PID is still in use
    ps aux | grep pppd | grep $pid  > /dev/null
    disconnectCheck=$?
    # If it is in use report the user who logged in as active
    if [[ $disconnectCheck -eq 0 ]] ; then
        echo "$user logged in at ${line:0:15}"
    fi
done

Я добавил это в свой /etc/ppp/options.xl2tpd:

plugin /usr/lib64/pptpd/pptpd-logwtmp.so

(на моем сервере также установлен PPTPD, но он отключен.)

Имея это место, я могу:

last | grep ppp | grep "still logged in"

Единственным недостатком является то, что, в отличие от сеанса pptp, он не записывает IP-адрес подключающегося клиента.