Сервер OpenVPN предоставляет внутренние IP-адреса каждому клиенту, который подключается за пределами сети. Я хочу сохранить эти IP-адреса в базе данных после того, как они назначены. Есть ли простой способ узнать, какие IP-адреса были розданы сервером OpenVPN?
спасибо за помощь
Если они не назначены статически, нет другого способа сделать это, кроме как извлечь их из лог-файлов, поскольку соединениям будут назначаться случайным образом IP-адреса.
Если они статически назначены, а вы используете Open VPN AccessServer, вы можете сделать это следующим образом:
sudo /usr/local/openvpn_as/scripts/sacli UserPropGet
, который должен выдавать список IP-адресов в выходных данных, который должен выглядеть примерно так :
{
"<< name_of_user_profile >>": {
...
"conn_ip": "xxx.xxx.xxx.xxx",
...
},
...
}
где conn_ip
- IP-адрес соединения.
Если вы пытаетесь просто регистрировать IP-адреса пользователей и помещать эту информацию в БД, вы можете посмотреть на это:
Где находятся журналы соединений OpenVPN и файлы конфигурации?
В этом случае вы используете OpenVPN Access Server, вы можете попробовать:
grep "primary virtual IP" /var/log/openvpnas.log** > output_file_name
, который даст вам файл со всеми IP-адресами, связанными со всеми пользователями. , Оттуда вы можете дополнительно изменить вывод, чтобы получить только нужные вам биты из файла.
Вы должны посмотреть /etc/openvpn/openvpn-status.log:
OpenVPN CLIENT LIST
Updated,Fri Sep 4 11:07:18 2020
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,11.12.13.14:44444,50000,25000,Fri Sep 4 11:00:54 2020
client2,11.12.13.15:44444,27000,5500,Fri Sep 4 11:00:52 2020
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.7,client1,11.12.13.14:44444,Fri Sep 4 11:06:13 2020
10.8.0.6,client2,client2,11.12.13.15:44444,Fri Sep 4 11:03:56 2020
GLOBAL STATS
Max bcast/mcast queue length,2
END