Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  1. Установить пакеты с strongSwan:
    Command

    sudo apt install strongswan libstrongswan-extra-plugins

  2. Если УЦ был создан на сервере с помощью команд из раздела "Создание удостоверяющего центра и сертификатов", то сертификаты уже расположены в нужном месте, и этот пункт не надо выполнять.
    Скопировать из УЦ на серверный узел:
      - ca.cert.pem (сертификат УЦ) в каталог /etc/ipsec.d/cacerts/;
      - server.cert.pem (сертификат сервера) в каталог /etc/ipsec.d/certs/;
      - server.key.pem (закрытый ключ сервера) в каталог /etc/ipsec.d/private/.
  3. Настроить strongSwan-сервер на использование закрытого ключа сервера.
    Для этого в файле /etc/ipsec.secrets указать строку с путём до закрытого ключа сервера:
    Блок кода
    : RSA "/etc/ipsec.d/private/server.key.pem"
  4. Задать настройки strongSwan-сервера в файле /etc/ipsec.conf:
    Блок кода
    config setup
            #charondebug="all"
            charondebug= ike 4, cfg 2
    ##         uniqueids=no
    conn server
            type=tunnel
            auto=add
            keyexchange=ikev2
                    keyingtries=%forever
            ike=aes256-sha1-modp1024!
            esp=aes256-sha1!
        dpdaction=clear
        dpddelay=300s
        rekey=no
    
    #        left=${MY_HOST_IP}
        left=%any
            leftid=${MY_HOST_IP}
            leftcert=server.cert.pem
            leftsubnet=10.1.1.0/24
            leftauth=pubkey
    #    leftsendcert=always
    
            rightsourceip=10.1.1.0/24
            rightauth=pubkey
            right=%any
            rightid=%any
        rightdns=10.0.0.1
    #    rightsendcert=always
    
            ikelifetime=28800s
            lifetime=3600s
    #        dpddelay=30s
            dpdtimeout=120s
            dpdaction=restart
    
        forceencaps=yes
    
        eap_identity=%identity
    где
      - <IP-адрес_сервера> – IP-адрес серверного узла;
      - <Подсеть_виртуальных_IP-адресов_для_клиентов> – . Например, 10.1.1.0/24

  5. Перезапустить strongSwan для применения настроек:
    Command

    sudo ipsec stop
    sudo systemctl restart strongswan-starter

Настройка VPN-клиента

Настройка strongSwan-клиента

...

  1. Подключить ключевой носитель к клиентскому узлу.
  2. Записать на ключевой носитель сертификат и закрытый ключ клиента:
    Command

    p11tool --login --write --load-certificate="<путь_к_клиентскому_сертификату>" --id=<идентификатор_объекта> --label="<название_объекта>"

    p11tool --login --write --load-privkey="<путь_к_клиентскому_закрытому_ключу>" --id=<идентификатор_объекта> --label="<название_объекта>"

    где
      - <идентификатор_объекта> – идентификатор, с которым сертификат и ключ будут храниться на токене;
      - <название_объекта> – название, с которым сертификат и ключ будут храниться на токене.

    Пример команд:
    Command

    p11tool --login --write --load-certificate="client.cert.pem" --id=45 --label="mykey"

    p11tool --login --write --load-privkey="client.key.pem" --id=45 --label="mykey"

  3. Включить поддержку токенов в strongSwan.
    Для этого в файле /etc/strongswan.d/charon/pkcs11.conf в секции modules указать произвольное название модуля и путь до интерфейсной библиотеки используемого токена:
    Блок кода
    pkcs11 {
    
        # Whether to load the plugin. Can also be an integer to increase the
        # priority of this plugin.
        load = yes
    
        ...
    
        # List of available PKCS#11 modules.
        modules {
            <название_модуля> {
                path = <путь_к_интерфейсной_библиотеке_токена>
            }
        }
    }
    Например, для Рутокена файл /etc/strongswan.d/charon/pkcs11.conf может выглядеть так:
    Блок кода
    pkcs11 {
      load = yes
    
      modules {
        rutoken {
          path = /usr/lib/librtpkcs11ecp.so
        }
      }
    }
  4. Настроить strongSwan на использование закрытого ключа клиента, который находится на токене.
    Для этого в файле /etc/ipsec.secrets указать строку с описанием токена и закрытого ключа:
    Блок кода
    : PIN <токен_и_закрытый_ключ> <pin-код_токена>
    где
      - <токен_и_закрытый_ключ> – задаётся по формату: %smartcard[<номер_слота_с_токеном>[@<название_модуля>]]:<идентификатор_объекта>
      - <название_модуля> – вышезаданное в настройках название модуля;
      - <идентификатор_объекта> – идентификатор закрытого ключа, хранящегося на токене.

    Пример описания для вышеприведённого Рутокена:
    Блок кода
    : PIN %smartcard0@rutoken:45 12345678
  5. Перезапустить strongSwan для применения настроек:
    Command

    sudo ipsec stop
    sudo systemctl restart strongswan-starter


Для просмотра состояния установленного VPN-соединения используется команда:

...