главная - Статьи - Удаленный доступ (VPN)
Openvpn management interface
Теги: VPN сервер OpenVPN

Для управления OpenVPN-сервером online, без перезапуска сервиса, есть директива "management <interface> <port>". Директива прописывается в конфиг сервера или клиента с указанием порта, подключившись к которому telnet-ом, можно управлять конкретным сервером (например, отключить client6, не затрагивая всех остальных клиентов), поменять на ходу какие-то параметры, посмотреть статистику и много другое. Применимость для клиента OpenVPN, пожалуй, небольшая, но вот для сервера...
Пример директивы (добавить в конфиг сервера или клиента и перезапустить сервис):
management localhost 7505
Это укажет OpenVPN слушать 7505/tcp порт в ожидании управляющих команд.
Внимание! Этот порт должен быть защищен!
> telnet localhost 7505
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
help
Commands:
auth-retry t : Auth failure retry mode (none,interact,nointeract).
bytecount n : Show bytes in/out, update every n secs (0=off).
echo [on|off] [N|all] : Like log, but only show messages in echo buffer.
exit|quit : Close management session.
forget-passwords : Forget passwords entered so far.
help : Print this message.
hold [on|off|release] : Set/show hold flag to on/off state, or
release current hold and start tunnel.
kill cn : Kill the client instance(s) having common name cn.
kill IP:port : Kill the client instance connecting from IP:port.
load-stats : Show global server load stats.
log [on|off] [N|all] : Turn on/off realtime log display
+ show last N lines or 'all' for entire history.
mute [n] : Set log mute level to n, or show level if n is absent.
needok type action : Enter confirmation for NEED-OK request of 'type',
where action = 'ok' or 'cancel'.
needstr type action : Enter confirmation for NEED-STR request of 'type',
where action is reply string.
net : (Windows only) Show network info and routing table.
password type p : Enter password p for a queried OpenVPN password.
remote type [host port] : Override remote directive, type=ACCEPT|MOD|SKIP.
proxy type [host port flags] : Enter dynamic proxy server info.
pid : Show process ID of the current OpenVPN process.
pkcs11-id-count : Get number of available PKCS#11 identities.
pkcs11-id-get index : Get PKCS#11 identity at index.
client-auth CID KID : Authenticate client-id/key-id CID/KID (MULTILINE)
client-auth-nt CID KID : Authenticate client-id/key-id CID/KID
client-deny CID KID R [CR] : Deny auth client-id/key-id CID/KID with log reason
text R and optional client reason text CR
client-kill CID [M] : Kill client instance CID with message M (def=RESTART)
env-filter [level] : Set env-var filter level
client-pf CID : Define packet filter for client CID (MULTILINE)
rsa-sig : Enter an RSA signature in response to >RSA_SIGN challenge
Enter signature base64 on subsequent lines followed by END
certificate : Enter a client certificate in response to >NEED-CERT challenge
Enter certificate base64 on subsequent lines followed by END
signal s : Send signal s to daemon,
s = SIGHUP|SIGTERM|SIGUSR1|SIGUSR2.
state [on|off] [N|all] : Like log, but show state history.
status [n] : Show current daemon status info using format #n.
test n : Produce n lines of output for testing/debugging.
username type u : Enter username u for a queried OpenVPN username.
verb [n] : Set log verbosity level to n, or show if n is absent.
version : Show current version number.
END
verb - изменить уровень детализации логов OpenVPN. Например:
verb 3
SUCCESS: verb level changed
status - показывает список подключенных клиентов, количество переданного трафика, когда подключились, выданные им IP-адреса и др:
status OpenVPN CLIENT LIST Updated,Tue Apr 13 13:47:05 2021 Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since client13,1.2.3.4:52072,669009,2020340,Tue Apr 13 13:37:24 2021 client15,1.2.3.4:62839,228544,981810,Tue Apr 13 13:37:23 2021 ROUTING TABLE Virtual Address,Common Name,Real Address,Last Ref 10.8.0.62,client13,1.2.3.4:52072,Tue Apr 13 13:47:03 2021 10.8.0.6,client6,1.2.3.4:65354,Tue Apr 13 13:47:04 2021 GLOBAL STATS Max bcast/mcast queue length,0 END
Попробуйте также:
status 2
status 3
kill - позвоялет отключить клиента по CN-имени его сертификата. Например:
kill client6
SUCCESS: common name 'client6' found, 1 client(s) killed
Это не запрещает клиенту переподключиться, но зато можно удаленно решить какую-то проблему клиента.
Ну и масса других возможностей. Поэтому management порт должен быть действительно защищен!
Возможные ошибки:
SELinux не дает OpenVPN открыть сокет на 7505/tcp. И правильно, если уж так.
# semanage port -a -t openvpn_port_t -p tcp 7505
Вот и все.
Авторизуйтесь для добавления комментариев!
Принимаю заказы на настройку серверов, mikrotik и других роутеров, точек доступа, nginx и т.п. В пределах Санкт-Петербурга возможен выезд к заказчику. См. контакты.