Настройка StrongSwan VPN под Windows, Android и BlackBerry 10 без использования паролей Апрель 21, 2018

Разместил gamerka в : bb10, centos, freebsd, Guide, ubuntu, Windows , добавить комментарий

Хотим настроить свой VPN чтобы использовать дефолтные клиенты на Windows 7+ и BlackBerry 10, и клиент StrongSwan на Android.
Не хотим использовать для подключения никакие пароли которые можно потерять.

Здесь я не затрагиваю установку strongswan и настройку фаерволла, по этой теме множество статей и для каждой ОС делается индивидуально, в своем случае для установки я использовал готовый скрипт Algo.
Цель данной заметки записать шаги настройки уже работающего strongswan.

1. Генерация сертификатов
Считаем что:

  • ключи лежат по умолчанию, в /etc/ipsec.d/, команды выполняем относительно этой папки
  • ip нашего сервера 1.2.3.4, а хостнейм my.host.name


CA ключ/серт

ipsec pki --gen --outform pem > private/ca.key
ipsec pki --self --in private/ca.key --dn "CN=my CA" --ca --outform pem > cacerts/ca.crt


Сертификат сервера

#!/bin/sh
ip=1.2.3.4
host=my.host.name
ipsec pki --gen --outform pem > private/$host.key
ipsec pki --pub --in private/$host.key | ipsec pki --issue --cacert cacerts/ca.crt --cakey private/ca.key --dn "CN=$host" --san $host --san dns:$ip --san $ip --lifetime 3650 --flag serverAuth --flag clientAuth --flag ikeIntermediate --outform pem > certs/$host.crt


Сертификаты клиентов
Запускаем например из папки пользователя, т.к. сгенерированные файлы на стороне сервера будут не нужны.

#!/bin/sh
name=bob
ipsec pki --gen --outform pem > $name.key
ipsec pki --pub --in $name.key | ipsec pki --issue --cacert /etc/ipsec.d/cacerts/ca.crt --cakey /etc/ipsec.d/private/ca.key --dn "CN=$name" --san $name --lifetime 3650 --flag serverAuth --flag clientAuth --outform pem > $name.crt
openssl pkcs12 -in $name.crt -inkey $name.key -export -out $name.p12

Советую на запрос пароля для экспорта задать какой-нибудь непростой пароль, тогда при установке сертификата на клиентское устройство будет запрошен этот пароль. В этому случае файл сертификата и пароль есть смысл передавать пользователю через разные каналы.
Сгенерированный файл .p12 отправляем пользвателю, затем клиентские файлы .key .crt .p12 удаляем с сервера.
Также пользователю необходимо передать наш корневой свертификат cacerts/ca.crt

2. Настраиваем strongswan
Конфиги в разных ОС можгут лежать в разных местах и называться по разному.
ipsec.conf

config setup
    uniqueids=never # allow multiple connections per user
    charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"

conn %default
    fragmentation=yes
    rekey=no
    dpdaction=clear
    keyexchange=ikev2
    compress=yes
    dpddelay=35s

    ike=aes128gcm16-prfsha512-ecp256,aes128-sha2_512-prfsha512-ecp256,aes128-sha2_384-prfsha384-ecp256!
    esp=aes128gcm16-ecp256,aes128-sha2_512-prfsha512-ecp256,aes128-sha256! # aes128-sha256 нужен для bb10

    left=%any
    leftauth=pubkey # аутентификация сервера только по сертификату
    leftid=my.host.name # имя по которому сервер аутентифицируется
    leftcert=my.host.name.crt # сертификат сервера, путь относительно /etc/ipsec.d/certs
    leftsendcert=always
    leftsubnet=0.0.0.0/0,::/0

    right=%any
    rightauth=pubkey # аутентификация клиентов только по сертификату
    rightsourceip=10.19.48.0/24 # из этой подсети будут получать адреса клиенты
    rightdns=8.8.8.8,8.8.4.4
conn ikev2-pubkey
    auto=add

ipsec.secrets
здесь только указываем приватный ключ сервера

: RSA my.host.name.key


3. Настройка клиентов
Windows
Проверялось только на Windows 10, но должно работать на всех версиях начиная с Windows 7.
Устанавливаем сертификаты в хранилище локальной машины, для ca.crt на шаге выбора места установки выбираем Trusted Root Certification Authorities, для .p12 выбираем Personal.
Создаем и запускаем PowerShell скрипт, который создаст и настроит соединение.

    $VpnName = "StrongSwan on 1.2.3.4"
    $VpnServerAddress = "1.2.3.4"

    $addVpnParams = @{
        Name = $VpnName
        ServerAddress = $VpnServerAddress
        TunnelType = "IKEv2"
        AuthenticationMethod = "MachineCertificate"
        EncryptionLevel = "Required"
    }
    Add-VpnConnection @addVpnParams

    $setVpnParams = @{
        ConnectionName = $VpnName
        AuthenticationTransformConstants = "GCMAES128"
        CipherTransformConstants = "GCMAES128"
        EncryptionMethod = "AES128"
        IntegrityCheckMethod = "SHA384"
        DHGroup = "ECP256"
        PfsGroup = "ECP256"
        Force = $true
    }
    Set-VpnConnectionIPsecConfiguration @setVpnParams


Android
Для Android у StrongSwan есть свой отличный клиент, устанавливаем из Google Play.

  1. В приложении добавляем новый профиль.
  2. Указываем ip или имя сервера.
  3. Тип указываем IKEv2 Certificate
  4. При выборе сертификата пользователя жмем Install и выбираем наш .p12 файл.
  5. Снимаем галку Select automatically и жмем Select CA certificate, в следующем окне открываем меню и выбираем Import certificate, выбираем файл ca.crt
  6. Дополнительные опции можно не указывать, должно работать так.


BlackBerry 10
Сначала устанавливаем на устройство сертификаты ca.crt и .p12
Открываем Networks and Connections -> VPN, создаем новый профиль.

  1. Указываем имя профиля, IP или имя нашего сервера
  2. Выбираем тип «Generic IKEv2 VPN Server»
  3. Authentication Type = PKI
  4. Authentication ID Type= Identity Certificate Distinguished Name
  5. Client Certificate = имя нашего клиентского сертификата
  6. Gateway Auth Type = PKI
  7. Gateway Auth ID Type = Fully Qualified Domain Name
  8. Gateway Auth ID = my.host.name (поле leftid из ipsec.conf)
  9. Gateway CA Certificate = имя нашего CA сертификата («my CA»)
  10. Perfect Forward Secrecy = On
  11. Automatically determine IP = ON
  12. Automatically determine DNS = ON
  13. Automatically determine algorithm = ON


Источники:
Setting-up a Simple CA Using the strongSwan PKI Tool
IPSec Road Warrior Configuration: Android, Windows 7, BB10, PlayBook, Dtek mobile devices
Algo VPN

Windows XP + Office 2010 + Internet Explorer 8. Долго открываются файлы из сети Февраль 16, 2015

Разместил gamerka в : Netware, Windows , добавить комментарий

Симптомы:
Обнаружилась проблема на нескольких компьютерах, что файлы MS Office из сети открываются очень долго, 30-60 секунд. Проблема только с открытием Word и Excel из сетевой папки, при закрытой оболочке.

  • те же файлы локально открываются мгновенно
  • копируются из сети быстро
  • если сначала открыть пустую оболочку, а затем в проводнике открыть файл, то открытие также быстрое

Начинаю выяснять, ставлю с нуля Windows XP SP3 и Office 2010:

  • без обновлений — открывается быстро
  • ставлю все обновления — открытие тупит

Ни один совет в сети не помог ни капли, так что я начал поэтапно накатывать обновления.
Причина:
Выяснилось что тормоза начинаются сразу после обновления IE c 6.0 до 8.0. Попробовал добавить файловый сервер в доверенные узлы, и открытие начало летать.
Решение:
Добавить все файловые сервера в «доверенные узлы» в «свойствах обозревателя».
trusted

Обновление часовых поясов на Windows XP в 2014 году Октябрь 14, 2014

Разместил gamerka в : Windows , добавить комментарий

Так как наконец закончилась поддержка Windows XP, Microsoft больше не выпускает под неё обновления. Обновить пояса можно вручную через реестр или с помощью любительских скриптов, например:
Обновление временных зон 2014 года на Windows XP

Терминальный сервер на Windows 7 SP1 Февраль 27, 2014

Разместил gamerka в : Windows , добавить комментарий

По умолчанию Windows 7 (и предыдущие вплоть до XP) поддерживает одновременное подключение лишь одного пользователя, либо удаленного, либо локального. Данный хак нужен для того чтобы разрешить подключение нескольких пользователей к удаленным рабочим столам одной машины так же, как на линейке Windows Server.
В теории всё что нужно это заменить файл termsrv.dll в папке C:\Windows\System32 на пропатченный и перезагрузиться. На практике нужно проделать махинации с получением прав на данный файл и остановкой некоторых служб на время замены.
Для простоты можно использовать данный скрипт автоматической установки: Windows7_SP1_RDPhack
Источник:
Как сделать из Windows 7 SP1 терминальный сервер

Symantec Endpoint Protection. Драйверу брандмауэра не удалось открыть сетевой адаптер Ноябрь 27, 2013

Разместил gamerka в : Windows , добавить комментарий

Симптомы: Восклицательный знак на значке SEP, Ошибка «Драйверу брандмауэра не удалось открыть сетевой адаптер» (Firewall driver failed to open network adapter)
Решение:

  1. Полностью удалить SEP
  2. Удалить ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Teefer2
  3. Установить SEP

Источники:
KB Article — SEP client NTP malfunction. Firewall driver failed to open network adapter

Как сделать раздел активным в Windows 7 если через Управление дисками не получается Сентябрь 26, 2013

Разместил gamerka в : Guide, Windows , добавить комментарий
  1. Запустите утилиту diskpart.
    C:\>diskpart
    
    Microsoft DiskPart версии 6.1.7601
    (С) Корпорация Майкрософт, 1999-2008.
    На компьютере: DESKTOP
    
    DISKPART>
  2. Посмотрите список доступных дисков
    list disk

    DISKPART> list disk
    
      Диск ###  Состояние      Размер   Свободно Дин  GPT
      --------  -------------  -------  -------  ---  ---
      Диск 0    В сети           37 Gбайт  2048 Kбайт
      Диск 1    В сети          931 Gбайт      0 байт
      Диск 2    В сети          931 Gбайт      0 байт
  3. Выберите нужный диск
    select disk [номер диска]

    DISKPART> select disk 1
    
    Выбран диск 1.
  4. Посмотрите список разделов на диске
    list partition

    DISKPART> list partition
    
      Раздел    ###  Тип               Размер   Смещение
      -------------  ----------------  -------  -------
      Раздел 1    Основной           931 Gб    31 Kб
  5. Выберите раздел
    select partition [номер раздела]

    DISKPART> select partition 1
    
    Выбран раздел 1.
  6. Сделайте раздел активным
    active

    DISKPART> active
    
    DiskPart: раздел помечен как активный.
  7. Готово!

GroupWise закрывается с ошибкой gwcma1.dll Октябрь 28, 2012

Разместил gamerka в : Netware, Windows , добавить комментарий

Симптомы: При попытке ответить или создать новое письмо, GroupWise закрывается с ошибкой в gwcma1.dll.
Причина: GroupWise конфликтует с установленным Microsoft Outlook 2003.
Решение: Можно попробовать удалить Outlook 2003, но скорее всего необходимо будет полностью переустановить систему.
Источники:
Novell Forums > Thread: GW 6.5 and M$ Outlook

Не удаляется файл *.GWI Июнь 24, 2012

Разместил gamerka в : Netware, Windows , добавить комментарий

Симптомы: После драг-н-дропа письма из GW на рабочий стол появляется файл с расширением GWI и не хочет удаляться никакими средствами, даже после перезагрузки.
Решение: Файл блокируется проводником, необходимо либо разблокировать его сторонней утилитой, либо завершить explorer.exe и удалить файл через FAR Manager/Total Commander.
Источники:
Novell Forums > Thread: Cannot delete GWI file

Windows 7 stuff Апрель 29, 2012

Разместил gamerka в : Windows , добавить комментарий

Как отключить библиотеки в Windows 7
http://paulkravchenko.wordpress.com/2009/11/07/как-отключить-функцию-библиотеки-в-windows-7/

Windows полезности Январь 27, 2012

Разместил gamerka в : Windows , добавить комментарий

Как автоматически включить Num Lock в окне входа в систему
Открыть HKEY_USERS\.Default\Control Panel\Keyboard и установить для параметра InitialKeyboardIndicators значение 2.

Разрешение входящих ping в фаерволле

netsh firewall set icmpsetting 8

Не запускается служба сервер, ошибка 126
В свойствах сетевого подключения надо найти «Служба доступа к файлам и принтерам сетей Microsoft» — Удалить, а потом Установить.
http://www.cyberforum.ru/post2807170.html