Руководство по утилите управления командной строки

Руководство по утилите управления командной строки

vpncmd - это мощная утилита командной строки для управления всеми компонентами SoftEther VPN.

Обзор vpncmd

vpncmd официально известна как “SoftEther VPN Command Line Management Utility”. Это кроссплатформенное программное обеспечение, работающее исключительно из командной строки.

Возможности vpncmd:

  • Полное управление VPN Server
  • Настройка VPN Client
  • Управление VPN Bridge
  • Автоматизация через скрипты
  • Удаленное администрирование

Режимы работы vpncmd

Режим управления VPN Server


# Подключение к локальному серверу
vpncmd localhost /SERVER

# Подключение к удаленному серверу с паролем
vpncmd vpn.company.com:443 /SERVER /PASSWORD:adminpass

# Подключение к конкретному Virtual Hub
vpncmd localhost /SERVER /HUB:MYHUB /PASSWORD:hubpass

Режим управления VPN Client


# Подключение к локальному клиенту
vpncmd localhost /CLIENT

# Подключение к удаленному клиенту
vpncmd client.company.com /CLIENT /PASSWORD:clientpass

Режим управления VPN Bridge


# Подключение к локальному мосту
vpncmd localhost /BRIDGE

# Подключение к удаленному мосту
vpncmd bridge.company.com /BRIDGE /PASSWORD:bridgepass

Интерактивный и пакетный режимы

Интерактивный режим


# Запуск интерактивного режима
vpncmd

# Выбор режима управления в интерактивном режиме
1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools

Пакетный режим


# Выполнение одной команды
vpncmd localhost /SERVER /CMD:ServerInfoGet

# Выполнение скрипта команд
vpncmd localhost /SERVER /IN:commands.txt

Команды управления VPN Server

Общие команды сервера


# Информация о сервере
ServerInfoGet

# Статус сервера
ServerStatusGet

# Список портов прослушивания
ListenerList

# Создание порта прослушивания
ListenerCreate 1194 /ENABLE:yes

# Перезагрузка сервера
Flush

Управление Virtual Hub


# Список Virtual Hub'ов
HubList

# Создание Virtual Hub
HubCreate NEWHUB /PASSWORD:hubpass

# Удаление Virtual Hub
HubDelete OLDHUB

# Статус Virtual Hub
StatusGet

Управление пользователями


# Список пользователей
UserList

# Создание пользователя
UserCreate john /GROUP:employees /REALNAME:"John Smith" /NOTE:"IT Department"

# Удаление пользователя
UserDelete john

# Установка пароля пользователя
UserPasswordSet john /PASSWORD:newpassword

# Информация о пользователе
UserGet john

Управление группами


# Список групп
GroupList

# Создание группы
GroupCreate employees /NOTE:"Employee Group"

# Удаление группы
GroupDelete employees

# Настройка политик группы
GroupPolicySet employees /NAME:MaxConnection /VALUE:3
GroupPolicySet employees /NAME:TimeOut /VALUE:300
GroupPolicySet employees /NAME:MaxMac /VALUE:16
GroupPolicySet employees /NAME:MaxIP /VALUE:16
GroupPolicySet employees /NAME:MaxUpload /VALUE:1000000
GroupPolicySet employees /NAME:MaxDownload /VALUE:1000000

Сертификаты и PKI


# Создание сертификата
MakeCert /CN:"VPN Server" /SERIAL:1 /EXPIRES:2025-12-31

# Загрузка сертификата из файла
ServerCertSet /LOADCERT:server.crt /LOADKEY:server.key

# Просмотр установленного сертификата
ServerCertGet

# Создание центра сертификации
CaAdd /CN:"Company CA" /SERIAL:1 /EXPIRES:2030-12-31

# Список сертификатов CA
CaList

Управление доступом


# Список правил доступа
AccessList

# Добавление правила доступа
AccessAdd /RULENAME:"Allow HTTPS" /PRIORITY:100 /SRC_IP:any /DEST_IP:any /DEST_PORT:443 /PROTOCOL:TCP /ACTION:allow

# Удаление правила доступа
AccessDelete 1

# Включение/отключение правила
AccessEnable 1
AccessDisable 1

SecureNAT функции


# Включение SecureNAT
SecureNatEnable

# Отключение SecureNAT
SecureNatDisable

# Статус SecureNAT
SecureNatStatusGet

# Настройка виртуального DHCP сервера
DhcpSet /START:192.168.30.10 /END:192.168.30.200 /MASK:255.255.255.0 /GW:192.168.30.1 /DNS:8.8.8.8 /DNS2:8.8.4.4 /DOMAIN:company.local /LEASE:7200

# Список DHCP таблицы
DhcpTable

# Настройка виртуального NAT
NatEnable
NatDisable
NatStatusGet

# Настройка таблицы NAT
NatSet /MTU:1500 /LOG:yes /SAVE:yes

Локальные мосты


# Список локальных мостов
BridgeList

# Создание локального моста
BridgeCreate MYHUB /DEVICE:"Local Area Connection"

# Удаление локального моста
BridgeDelete MYHUB

# Список доступных сетевых устройств
BridgeDeviceList

Команды управления VPN Client

Основные команды клиента


# Переход в режим управления клиентом
vpncmd localhost /CLIENT

# Информация о версии клиента
VersionGet

# Список виртуальных адаптеров
NicList

# Создание виртуального адаптера
NicCreate "My VPN Adapter"

# Удаление виртуального адаптера
NicDelete "My VPN Adapter"

# Включение/отключение адаптера
NicEnable "My VPN Adapter"
NicDisable "My VPN Adapter"

Управление подключениями


# Список VPN подключений
AccountList

# Создание нового подключения
AccountCreate "Company VPN" /SERVER:vpn.company.com:443 /HUB:CORPORATE /USERNAME:john /NICNAME:"My VPN Adapter"

# Удаление подключения
AccountDelete "Company VPN"

# Установка пароля
AccountPasswordSet "Company VPN" /PASSWORD:mypassword /TYPE:standard

# Настройка параметров подключения
AccountSet "Company VPN" /SERVER:vpn.company.com:443 /HUB:CORPORATE /USERNAME:john /KEEPALIVE:yes /USECOMPRESS:yes /USEENCRYPT:yes

# Подключение
AccountConnect "Company VPN"

# Отключение
AccountDisconnect "Company VPN"

# Статус подключения
AccountStatusGet "Company VPN"

# Детальная статистика
AccountGet "Company VPN"

Сертификаты на клиенте


# Список сертификатов
CertList

# Добавление сертификата
CertAdd /CERTFILE:client.crt /KEYFILE:client.key

# Удаление сертификата
CertDelete 1

# Получение информации о сертификате
CertGet 1

Настройка прокси


# Настройка HTTP прокси
AccountProxySet "Company VPN" /TYPE:http /SERVER:proxy.company.com:8080 /USERNAME:proxyuser /PASSWORD:proxypass

# Настройка SOCKS прокси
AccountProxySet "Company VPN" /TYPE:socks /SERVER:socks.company.com:1080

# Отключение прокси
AccountProxyNone "Company VPN"

Команды VPN Bridge

Управление мостами

# Переход в режим управления мостом
vpncmd localhost /BRIDGE

# Список локальных мостов
BridgeList

# Создание моста с физическим адаптером
BridgeCreate BRIDGE1 /DEVICE:"eth0"

# Создание TAP устройства (Linux)
BridgeCreate BRIDGE1 /DEVICE:"tap_softether" /TAP:yes

# Удаление моста
BridgeDelete BRIDGE1

# Список доступных сетевых устройств
BridgeDeviceList

Каскадные подключения


# Создание каскадного подключения
CascadeCreate "HQ Connection" /SERVER:hq.company.com:443 /HUB:BRANCH /USERNAME:branch_office

# Установка пароля каскада
CascadePasswordSet "HQ Connection" /PASSWORD:cascadepass /TYPE:standard

# Настройка параметров каскада
CascadeSet "HQ Connection" /SERVER:hq.company.com:443 /HUB:BRANCH /USERNAME:branch_office /KEEPALIVE:yes

# Подключение каскада
CascadeOnline "HQ Connection"

# Отключение каскада
CascadeOffline "HQ Connection"

# Статус каскада
CascadeStatusGet "HQ Connection"

# Список всех каскадов
CascadeList

# Удаление каскада
CascadeDelete "HQ Connection"

VPN инструменты

Проверка связности

# Переход в режим инструментов
vpncmd /TOOLS

# Проверка связности (ping)
Check vpn.company.com

# Трассировка маршрута
TrafficClient vpn.company.com

# Тест производительности
TrafficServer

Генерация сертификатов


# Создание самоподписанного сертификата
MakeCert /CN:"Test Certificate" /OU:"IT Department" /O:"Company Inc" /C:"US" /ST:"CA" /L:"San Francisco" /SERIAL:1 /EXPIRES:2025-12-31 /SAVECERT:test.crt /SAVEKEY:test.key

Диагностические инструменты


# Информация о сетевых интерфейсах
Win32_GetWinVer

# Проверка OpenSSL
OpenSslVersion

# Проверка IPv6
IPsecIkeClientGet

Автоматизация и скриптинг

Создание скриптов команд

Создайте текстовый файл setup.txt со списком команд:


# Скрипт настройки VPN сервера
ServerPasswordSet mypassword
ListenerCreate 443
ListenerCreate 992
ListenerCreate 1194
ListenerCreate 5555

HubCreate CORPORATE /PASSWORD:hubpass
Hub CORPORATE
UserCreate john /GROUP:employees /REALNAME:"John Smith"
UserPasswordSet john /PASSWORD:userpass
SecureNatEnable

Выполните скрипт:


vpncmd localhost /SERVER /IN:setup.txt

Переменные среды и параметризация

Используйте переменные среды для параметризации скриптов:


# Установка переменных
export VPN_SERVER="vpn.company.com"
export VPN_PASSWORD="secretpass"

# Использование в командах
vpncmd $VPN_SERVER /SERVER /PASSWORD:$VPN_PASSWORD /CMD:ServerStatusGet

Логирование и отладка

Включение подробного логирования


# Включение логирования сессий
LogEnable session /SWITCH:yes

# Включение логирования пакетов
LogEnable packet /SWITCH:yes

# Включение логирования безопасности
LogEnable security /SWITCH:yes

# Просмотр настроек логирования
LogList

# Отключение логирования
LogDisable session

Экспорт конфигурации


# Экспорт конфигурации сервера
ConfigGet /SAVEFILE:server_config.txt

# Импорт конфигурации
ConfigSet /IN:server_config.txt

Распространенные сценарии использования

Быстрая настройка простого VPN сервера


#!/bin/bash
# Скрипт быстрой настройки

vpncmd localhost /SERVER <<EOF
ServerPasswordSet adminpassword
ListenerCreate 443
HubCreate VPN /PASSWORD:hubpass
Hub VPN
UserCreate testuser /REALNAME:"Test User"
UserPasswordSet testuser /PASSWORD:testpass
SecureNatEnable
exit
EOF

Массовое создание пользователей

#!/bin/bash
# Создание пользователей из CSV файла

while IFS=, read -r username realname password group; do
    vpncmd localhost /SERVER /HUB:CORPORATE <<EOF
UserCreate "$username" /GROUP:"$group" /REALNAME:"$realname"
UserPasswordSet "$username" /PASSWORD:"$password"
EOF
done < users.csv

Мониторинг подключений

#!/bin/bash
# Скрипт мониторинга активных сессий

vpncmd localhost /SERVER /HUB:CORPORATE /CMD:SessionList | \
grep "Session Name" | \
wc -l | \
xargs echo "Active sessions:"