Сервер в кармане, или просто о сложном!

главная - Статьи - Удаленный доступ (VPN)



Openvpn management interface

Дата обновления: 13.04.2021

Теги: 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

Вот и все.



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?