Конфигурация VPN доступа к сети SIPNET в Linux (openSUSE)

SIPNET VPN поддерживает протоколы SoftEther, OpenVPN, L2TP/IPSec и MS-SSTP.

Авторизация осуществляется по имени пользователя и паролю SIPNET.

Метод SoftEther VPN Client

Достоинства:

  • передача данных через порт 443/tcp
  • шифрование TLS
  • возможна работа через HTTPS Proxy
  • режим UDP Acceleration
  • максимальная совместимость с VPN сервером
  • высокая скорость
  • минимальное потребление ресурсов

Недостатки:

  • отсутствие стандартного установочного пакета

Для работы клиента SoftEther VPN требуется наличие в системе универсального TAP/TUN устройства. Если устройство не обнаружено, необходима пересборка ядра, что выходит за рамки данного руководства.

    % ls /dev/net/tun

VPN клиент поставляется в бинарном виде, но нуждается в привязке к имеющимся системным библиотекам. Для этого требуются make(1) и gcc(1). В подавляющем большинстве Linux-систем эти пакеты уже присутствуют.

    % make --version
    % gcc --version

В худшем случае их установка не будет лишней (root)

    # zypper install make
    # zypper install gcc

Загрузить подходящую версию VPN клиента и распаковать дистрибутив.

    % tar xzf softether-vpnclient-*

Перейти в директорию vpnclient, выполнить make(1) и ответить на вопросы.

    % cd vpnclient
    % make

Создать рабочую системную директорию и скопировать необходимые файлы (root)

    # mkdir /usr/local/vpnclient
    # install vpnclient vpncmd hamcore.se2 /usr/local/vpnclient

Запустить VPN клиента (root)

    # /usr/local/vpnclient/vpnclient start

Подключиться к VPN клиенту и произвести начальную конфигурацию.
Директива NicCreate создаёт сетевой адаптер vpn_spnt.
Директива AccountCreate требует ввода имени пользователя в формате username@sipnet.ru.
Директива AccountPasswordSet требует ввода пароля; зашифрованный пароль хранится в конфигурации VPN клиента.

    % /usr/local/vpnclient/vpncmd localhost /CLIENT
    VPN Client>NicCreate spnt
    VPN Client>AccountCreate sipnet /SERVER:vpn.sipnet.ru:443 /HUB:CommuniGate /NICNAME:spnt
    VPN Client>AccountPasswordSet sipnet /TYPE:radius
    VPN Client>AccountStartupSet sipnet
    VPN Client>exit

Создать конфигурацию для сетевого адаптера vpn_spnt (root)

    # cat > /etc/sysconfig/network/ifcfg-vpn_spnt
    STARTMODE=hotplug
    BOOTPROTO=dhcp

По желанию отключить протокол IPv6 (root)

    # cat > /etc/sysconfig/network/ifsysctl-vpn_spnt
    net.ipv6.conf.vpn_spnt.disable_ipv6 = 1

Разрешить автоопределение адаптеров VPN данного типа (root)

    # cat > /etc/udev/rules.d/90-softether-net.rules
    SUBSYSTEM=="net", ACTION=="add", ENV{INTERFACE}=="vpn_*", RUN+="/sbin/ifup $env{INTERFACE}"

Создать файл автозагрузки (root)

    # cat > /etc/systemd/system/vpnclient.service
    [Unit]
    Description=SoftEther VPN Client
    After=network.target
    
    [Service]
    Type=forking
    WorkingDirectory=/usr/local/vpnclient
    ExecStart=/usr/local/vpnclient/vpnclient start
    ExecStop=/usr/local/vpnclient/vpnclient stop
    
    [Install]
    WantedBy=multi-user.target

Разрешить автозагрузку (root)

    # systemctl enable vpnclient.service

Проверить конфигурацию

    # systemctl start vpnclient.service

    % ip addr show vpn_spnt
    16: vpn_spnt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
        link/ether 00:ac:b6:71:f5:c0 brd ff:ff:ff:ff:ff:ff
        inet 172.16.82.26/18 brd 172.16.127.255 scope global vpn_spnt
           valid_lft forever preferred_lft forever

    % ip route
    default via 192.168.33.1 dev eth0 
    127.0.0.0/8 dev lo  scope link 
    169.254.0.0/16 dev eth0  scope link 
    172.16.64.0/18 dev vpn_spnt  proto kernel  scope link  src 172.16.82.26 
    192.168.33.0/24 dev eth0  proto kernel  scope link  src 192.168.33.25 
    212.53.40.0/25 via 172.16.82.1 dev vpn_spnt

Метод OpenVPN

Достоинства:

  • стандартный установочный пакет
  • шифрование TLS

Недостатки:

  • сервер реализует протокол OpenVPN в режиме эмуляции
  • значительное потребление ресурсов

Установить стандартный пакет (root)

    # zypper install openvpn

Указать данные для авторизации - свои SIP ID и пароль (root)

    # cat > /etc/openvpn/sipnet.credentials
    your_name@sipnet.ru
    your_password

Ограничить доступ к файлу (root)

    # chmod 600 /etc/openvpn/sipnet.credentials

Создать конфигурацию соединения (root)

# cat > /etc/openvpn/sipnet.conf
dev tun
proto udp
remote vpn.sipnet.ru 1194
remote-cert-tls server
cipher AES-128-CBC
auth SHA1
resolv-retry infinite
nobind
persist-key
persist-tun
client
verb 3
auth-user-pass /etc/openvpn/sipnet.credentials
auth-nocache 
<ca>
-----BEGIN CERTIFICATE-----
MIIEizCCA3OgAwIBAgIQCQ7oxd5b+mLSri/3CXxIVzANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
MjAeFw0xNzExMDIxMjI0MjVaFw0yNzExMDIxMjI0MjVaMF4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xHTAbBgNVBAMTFFRoYXd0ZSBUTFMgUlNBIENBIEcxMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAxjngmPhVetC0b/ozbYJdzOBUA1sMog47030cAP+P
23ANUN8grXECL8NhDEF4F1R9tL0wY0mczHaR0a7lYanlxtwWo1s2uGnnyDs6mOCs
66ew2w3YETr6Tb14xgjpu1gGFtAeewaikO9Fud8hxGJTSwn8xeNkfKVWpD2L4vFN
36FNgxeilK6aE4ykgGAzNlokTp6hNOLAYpDySdLAPKzuJSQ7JCEZ6O+SDKywIdXL
oMTnpxuBKGSG88NWTo3CHCOGmQECia2yqdPDjgLqnEiYNjwQL8uMqj8rOvlMgviB
cHA7xty+7/uYLN6ZS7Vq1/F/lVhVOf5ej6jZdmB85szFbQIDAQABo4IBQDCCATww
HQYDVR0OBBYEFKWM/jLM6w8s1BnGCLgAJIhdw8W3MB8GA1UdIwQYMBaAFE4iVCAY
lebjbuYP+vq5Eu0GF485MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQo
MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8E
OzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9i
YWxSb290RzIuY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxo
dHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA0GCSqGSIb3DQEBCwUAA4IBAQC6
km0KA4sTb2VYpEBm/uL2HL/pZX9B7L/hbJ4NcoBe7V56oCnt7aeIo8sMjCRWTCWZ
D1dY0+2KZOC1dKj8d1VXXAtnjytDDuPPf6/iow0mYQTO/GAg/MLyL6CDm3FzDB8V
tsH/aeMgP6pgD1XQqz+haDnfnJTKBuxhcpnx3Adbleue/QnPf1hHYa8L+Rv8Pi5U
h4V9FwHOfphdMXOxi14OqmsiTbc5cOs9/uukH+YVsuFdWTna6IVw1qh+tEtyH16R
vmi7pkqyZYULOPMIE7avrljVVBZuikwARtY8tCVV6Pp9l3VeagBqb2ffgqNJt3C0
TYNYQI+BXG1R1cABlold
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
MrY=
-----END CERTIFICATE-----
</ca>

Если в папке /etc/ssl/certs/ установлены корневые сертификаты, то вместо указания корневого сертификата 'in-line' (<ca>...</ca>), можно просто сослаться на системные сертификаты:

capath /etc/ssl/certs/

В указанной папке программе OpenVPN нужен не bundle (ca-bundle.crt), а индивидуальные корневые сертификаты (CA), имеющие имена вида <hash>.<n>.


Разрешить автозагрузку (root)

    # systemctl enable openvpn@sipnet.service

Проверить конфигурацию

    # systemctl start openvpn@sipnet.service

    % ip addr show tun0
    17: tun0:  mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
        link/none
        inet 172.16.82.13 peer 172.16.82.14/32 scope global tun0
           valid_lft forever preferred_lft forever

    % ip route
    default via 192.168.33.1 dev eth0 
    127.0.0.0/8 dev lo  scope link 
    169.254.0.0/16 dev eth0  scope link 
    172.16.82.14 dev tun0  proto kernel  scope link  src 172.16.82.13 
    192.168.33.0/24 dev eth0  proto kernel  scope link  src 192.168.33.25 
    212.53.40.0/25 via 172.16.82.14 dev tun0

    % cat /etc/os-release
    NAME=openSUSE
    VERSION="13.1 (Bottle)"

    % uname -a
    Linux linux-wvdh 3.16.3-49.gd2bbe7f-default #1 SMP Thu Sep 18 06:32:16 UTC 2014 (d2bbe7f) x86_64 x86_64 x86_64 GNU/Linux
  • No labels