# Установка SoftEther VPN Bridge

> Установка SoftEther VPN Bridge на Linux и Windows - системные требования, компиляция из исходников, настройка сервиса и первоначальная конфигурация моста

Source: https://opennix.org/docs/softether-vpn/manual/softether-vpn-bridge-install/

Данная глава описывает установку SoftEther VPN Bridge на сервер под управлением Windows или Linux.

## Перед установкой
### Назначение VPN Bridge
SoftEther VPN Bridge предназначен для:

- Создания мостового соединения между физической и виртуальной сетями 
- Каскадного подключения к удаленным VPN серверам 
- Расширения существующих LAN через Интернет 
- Создания распределенных сетей на уровне L2

#### Системные требования
**Минимальные требования**:

- CPU: 1 GHz Intel/AMD процессор 
- RAM: 256 MB 
- Диск: 100 MB свободного места 
- Сетевая карта: Ethernet адаптер

**Рекомендуемые требования**:

- CPU: Multi-core процессор 2+ GHz 
- RAM: 1 GB или больше 
- Диск: 500 MB свободного места 
- Сетевая карта: Gigabit Ethernet

**Сетевые требования**

- Физический сетевой адаптер для мостового подключения 
- Доступ к удаленному VPN серверу 
- Соответствующие права для создания мостов (Linux)
## Установка на Windows
#### Загрузка и установка

1. Загрузите SoftEther VPN Bridge для Windows с официального сайта 
2. Запустите установщик от имени администратора 
3. Выберите компонент "SoftEther VPN Bridge"
4. Выберите режим установки:

   - Service Mode: для постоянной работы (рекомендуется)
   - User Mode: для тестирования

#### Начальная настройка
1. Запустите "SoftEther VPN Bridge Manager"
2. Подключитесь к localhost 
3. Установите пароль администратора при необходимости

## Установка на Linux
#### Подготовка системы
```shell
# Ubuntu/Debian
sudo apt update
sudo apt install build-essential bridge-utils -y

# CentOS/RHEL  
sudo yum update -y
sudo yum groupinstall "Development Tools" -y
sudo yum install bridge-utils -y
```
#### Загрузка и компиляция
```shell
# Создание директории
cd /opt
sudo mkdir softether-bridge
cd softether-bridge

# Загрузка исходного кода
sudo wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.XX-XXXX-stable/softether-vpnbridge-v4.XX-XXXX-stable-linux-x64-64bit.tar.gz

# Извлечение и компиляция
sudo tar xzf softether-vpnbridge-*.tar.gz
cd vpnbridge
sudo make

# Установка прав
sudo chmod 600 *
sudo chmod 700 vpnbridge vpncmd
```
#### Создание службы
```shell
sudo vi /etc/systemd/system/softether-vpnbridge.service
```
Содержимое:
```text
[Unit]
Description=SoftEther VPN Bridge
After=network.target

[Service]
Type=forking
User=root
ExecStart=/opt/softether-bridge/vpnbridge/vpnbridge start
ExecStop=/opt/softether-bridge/vpnbridge/vpnbridge stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
```
#### Запуск службы
```shell
sudo systemctl daemon-reload
sudo systemctl enable softether-vpnbridge
sudo systemctl start softether-vpnbridge
```
## Настройка локального моста
#### Подключение к управлению

```shell
# Через vpncmd
cd /opt/softether-bridge/vpnbridge
sudo ./vpncmd localhost /bridge

# Установка пароля (при первом подключении)
PasswordSet bridgepassword
```

#### Просмотр доступных сетевых адаптеров

```bash
# Список физических сетевых устройств
BridgeDeviceList
```

Вы увидите что-то подобное:

```
Device Name        |Status
-------------------|------
eth0              |Up
eth1              |Down  
wlan0             |Up
```

#### Создание локального моста

```bash
# Создание моста с Ethernet адаптером
BridgeCreate BRIDGE1 /DEVICE:"eth0"

# Для создания TAP устройства (Linux)
BridgeCreate TAPBRIDGE /DEVICE:"tap_softether" /TAP:yes
```

#### Проверка созданного моста

```bash
# Список активных мостов
BridgeList
```

### 9.5 Настройка каскадного подключения

#### Создание каскадного подключения

```bash
# Создание каскада к удаленному VPN серверу
CascadeCreate "HQ_Connection" /SERVER:hq.company.com:443 /HUB:BRANCH_OFFICE /USERNAME:bridge_user

# Установка пароля для каскада
CascadePasswordSet "HQ_Connection" /PASSWORD:bridge_password /TYPE:standard
```

#### Настройка параметров каскада

```bash
# Дополнительные настройки каскада
CascadeSet "HQ_Connection" /KEEPALIVE:yes /USECOMPRESS:yes /USEENCRYPT:yes

# Настройка переподключения
CascadeRetrySet "HQ_Connection" /NUM:10 /INTERVAL:30
```

#### Подключение каскада

```bash
# Подключение каскада
CascadeOnline "HQ_Connection"

# Проверка статуса
CascadeStatusGet "HQ_Connection"
```

## Комбинированная настройка (мост + каскад)

#### Сценарий: подключение локальной сети к удаленному офису

```bash
# 1. Создание каскадного подключения к главному офису
CascadeCreate "MainOffice" /SERVER:vpn.company.com:443 /HUB:CORPORATE /USERNAME:branch01

# 2. Установка аутентификационных данных
CascadePasswordSet "MainOffice" /PASSWORD:secretpass

# 3. Создание локального моста с физической сетью
BridgeCreate LocalLAN /DEVICE:"eth0"

# 4. Подключение каскада
CascadeOnline "MainOffice"
```

После такой настройки:
- Локальная физическая сеть будет подключена к Virtual Hub на удаленном сервере
- Все устройства локальной сети получат доступ к корпоративной сети
- Трафик будет передаваться на уровне L2 (прозрачно для всех протоколов)

## Расширенная настройка

#### Настройка нескольких мостов

```bash
# Мост для локальной сети
BridgeCreate LocalLAN /DEVICE:"eth0"

# Мост для DMZ
BridgeCreate DMZ /DEVICE:"eth1"

# Каскады к разным серверам
CascadeCreate "HQ_LAN" /SERVER:hq.company.com:443 /HUB:CORPORATE /USERNAME:branch_lan
CascadeCreate "HQ_DMZ" /SERVER:hq.company.com:443 /HUB:DMZ /USERNAME:branch_dmz
```

#### Настройка VLAN

```bash
# Если ваша сеть использует VLAN, Bridge автоматически обработает теги
# Никаких дополнительных настроек не требуется
```

## Мониторинг и диагностика

#### Мониторинг мостов

```bash
# Статус всех мостов
BridgeList

# Статистика трафика моста
# (информация показывается в BridgeList)
```

#### Мониторинг каскадных подключений

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

# Детальная информация о каскаде
CascadeGet "MainOffice"

# Статистика каскадного подключения
CascadeStatusGet "MainOffice"
```

#### Логирование

```bash
# Включение логирования подключений
LogEnable connection /SWITCH:yes

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

# Просмотр логов
LogList
```

## Безопасность

#### Настройка сертификатов

```bash
# Добавление сертификата для аутентификации каскада
CertAdd /CERTFILE:bridge.crt /KEYFILE:bridge.key

# Использование сертификата для каскада
CascadeSet "MainOffice" /AUTH:cert /CERT:bridge.crt
```

#### Настройка доверенных сертификатов

```bash
# Добавление корневого сертификата сервера
CaAdd /CERTFILE:ca.crt

# Проверка серверных сертификатов
CascadeSet "MainOffice" /VERIFYCERT:yes
```

## Устранение неполадок

#### Проблемы с мостовым подключением

```bash
# Проверка состояния сетевых интерфейсов
BridgeDeviceList

# Проверка активности моста (должен показывать трафик)
BridgeList
```

#### Проблемы с каскадным подключением

```bash
# Проверка статуса каскада
CascadeStatusGet "MainOffice"

# Если каскад не подключается, проверьте:
# 1. Доступность сервера
# 2. Правильность учетных данных
# 3. Настройки файрвола
```

#### Сетевая диагностика

**Linux:**
```bash
# Проверка сетевых интерфейсов
ip link show

# Проверка мостов (если используется Linux bridge)
brctl show

# Мониторинг трафика
tcpdump -i eth0
```

## Примеры конфигураций

#### Пример 1: Простое подключение филиала

```bash
# Подключение филиала к главному офису
CascadeCreate "HeadOffice" /SERVER:vpn.company.com:443 /HUB:CORPORATE /USERNAME:branch_moscow
CascadePasswordSet "HeadOffice" /PASSWORD:moscow_branch_2024
BridgeCreate LocalNetwork /DEVICE:"eth0"
CascadeOnline "HeadOffice"
```

#### Пример 2: Резервные подключения

```bash
# Основное подключение
CascadeCreate "Primary" /SERVER:vpn1.company.com:443 /HUB:CORPORATE /USERNAME:branch01
CascadePasswordSet "Primary" /PASSWORD:primary_pass

# Резервное подключение  
CascadeCreate "Backup" /SERVER:vpn2.company.com:443 /HUB:CORPORATE /USERNAME:branch01
CascadePasswordSet "Backup" /PASSWORD:backup_pass

# Локальный мост
BridgeCreate LocalNet /DEVICE:"eth0"

# Подключение основного канала
CascadeOnline "Primary"

# При необходимости переключение на резервный:
# CascadeOffline "Primary"
# CascadeOnline "Backup"
```

#### Пример 3: Многосетевая конфигурация

```bash
# Подключение LAN сети
CascadeCreate "LAN_Connection" /SERVER:hq.company.com:443 /HUB:LAN /USERNAME:branch_lan
BridgeCreate LAN_Bridge /DEVICE:"eth0"

# Подключение сети серверов
CascadeCreate "Server_Connection" /SERVER:hq.company.com:443 /HUB:SERVERS /USERNAME:branch_srv  
BridgeCreate Server_Bridge /DEVICE:"eth1"

# Подключение обеих каскадов
CascadeOnline "LAN_Connection"
CascadeOnline "Server_Connection"
```

