главная - Статьи - Удаленный доступ (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
Вот и все.
Авторизуйтесь для добавления комментариев!