Настройка 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

Загрузка ubuntu livecd с usb через grub4dos Ноябрь 25, 2011

Разместил gamerka в : ubuntu , уже есть 1 комментарий

Создать в корне флешки папку ubuntu, туда положть iso образ убунты и файлы initrd.lz и vmlinuz, взятые из дистрибутива.
В menu.lst добавить строки в соответствии с версией:

title Ubuntu 11.10 live 
 kernel /ubuntu/vmlinuz iso-scan/filename=/ubuntu/ubuntu-11.10-desktop-i386.iso boot=casper initrd=/casper/initrd.lz locale=ru_RU quiet splash -- 
 initrd /ubuntu/initrd.lz

title Ubuntu 11.10 install 
 kernel /ubuntu/vmlinuz iso-scan/filename=/ubuntu/ubuntu-11.10-desktop-i386.iso boot=casper only-ubiquity initrd=/casper/initrd.lz locale=ru_RU quiet splash -- 
 initrd /ubuntu/initrd.lz

Источник: GreenFlash Форум

GRUB2 на USB flash под Windows Февраль 4, 2011

Разместил gamerka в : Guide, ubuntu, Windows , уже есть 1 комментарий

Суть этой заметки в том, что предполагается, что у нас нет ни одного компьютера с установленным дистрибутивом линукса, и мы не желаем оный ставить.
Сразу хочу заметить, что после всех мучений я пришел к выводу, что grub2 не может полноценно заменить grub4dos, главным образом из-за невозможности на данный момент загружать BartPE системы.
После долгих поисков, проб и ошибок выяснилось единственный на 100% рабочий способ установки grub2 на usb flash диск это и есть самый часто встречающийся, то есть установка из-под ubuntu. Для меня он был самым нежелательным из-за, как мне казалось, избыточной необходимости скачивать установочный образ ubuntu, что впоследствии оказалось очень быстрым процессом, в сравнении с тем сколько я тратил времени на остальные способы.
Что нам потребуется:

  1. Пустая флешка на которую надо установить grub2.
  2. Пустая флешка c которой будем загружать ubuntu или CD/DVD диск при наличии соответствующего пишущего привода.

Перейдем к собственно нашим действиям:

  1. Скачиваем образ ubuntu desktop c официального сайта. Советую выбрать загрузку по bittorrent протоколу.
  2. Записываем образ на вторую флешку специальной утилитой Universal USB Installer или записываем на CD/DVD диск любой имеющейся программой с поддержкой записи iso образов (SCDWriter, Nero, BurnAware).
  3. Вставляем нашу основную флешку в компьютер, загружаемся с носителя из предыдущего пункта. Если образ записался правильно то ubuntu непременно загрузится.
  4. В ubuntu открываем эмулятор консоли через меню Applications > Accessories > Terminal.
  5. Предположим, что USB Flash в системе виден как /dev/sdb (если система сама загружена с флешки то нужная нам будет называться /dev/sdc). Создаем на Flash файловую систему (если не создана):
    sudo mkfs.vfat -n "имя метки, 11 cимволов" /dev/sdb1

    Монтируем:

    sudo mount /dev/sdb1 /mnt/

    Устанавливаем загрузчик Grub2:

    sudo grub-install --no-floppy --root-directory=/mnt /dev/sdb
  6. Осталось создать файл конфигурации grub.cfg, это можно сделать из-под windows. Перезагружаем компьютер в windows.
  7. Создаем на флешке с грубом файл /boot/grub/grub.cfg и заполняем его как хотим, примеров в интернете полно.

Для проверки можем добавить в grub.cfg следующий пункт меню с поправкой на версию скачанного ранее дистрибутива:

menuentry "Ubuntu Live 10.10 32bit" {
loopback loop /boot/iso/ubuntu-10.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.10-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}

Положить сам образ в /boot/iso/ и посмотреть как загрузится ubuntu.

По мотивам http://www.opennet.ru/tips/info/2339.shtml.

Ubuntu маунтим партиции Январь 4, 2008

Разместил gamerka в : Guide, ubuntu , добавить комментарий
  • Маунтим виндовую ntfs партицию
  • Маунтим виндовую шару

Чтобы при загрузке автоматом маунтилась ntfs партиция

  1. Создаём папку, куда она должна маунтиться
    sudo mkdir /media/windows
  2. Смотрим название этой партиции
    sudo fdisk -l

    получаем что-нибудь типа

    /dev/sda1               1        8245    66227931    7  HPFS/NTFS
    /dev/sda2   *        8246       10774    20314192+  83  Linux
    /dev/sda3           11995       12067      586372+   5  Расширенный
    /dev/sda4           10775       11994     9799650   83  Linux
    /dev/sda5           11995       12067      586341   82  Linux своп / Solaris

    нас интересует партиция с файловой системой NTFS, следовательно это будет /dev/sda1

  3. Делаем бэкап файла /etc/fstab
    sudo cp /etc/fstab /etc/fstab_backup
  4. Открываем его
    sudo gedit /etc/fstab

    добавляем в конец файла

    /dev/sda1    /media/windows ntfs  nls=utf8,umask=0222 0    0

    тут /dev/sda1 это название партиции, /media/windows папка куда маунтить, nls=utf8,umask=0222 опции кодировки и прав

  5. Ремаунтим партиции из файлика /etc/fstab
    sudo mount -a

Чтобы однократно замаунтить виндовую шару
можно воспользоваться командой

mount -t cifs //DESKTOP/C /media/deskC -o username=user,password=pass,ip=192.168.1.88,iocharset=utf8,file_mode=0777,dir_mode=0777

тут сначала идет адрес шары в сети, потом локальная папка куда она маунтится (папка должна быть предварительно создана), далее опции: логин и пароль на виндовой машине, её ip адрес, кодировка и права на файлы и папки.

Чтобы при загрузке автоматом маунтилась виндовая шара

  1. Ставим поддержку файловой системы самбы
    sudo apt-get install smbfs
  2. Создаём папку куда будем маунтить
    sudo mkdir /media/deskC
  3. Добавляем ip виндовой машины в /etc/hosts
    sudo gedit /etc/hosts

    тут в конец добавляем строку

    192.168.1.2 desktop
  4. Делаем бэкап /etc/fstab
    sudo cp /etc/fstab /etc/fstab_backup
  5. Редактируем /etc/fstab
    sudo gedit /etc/fstab

    в конец добавляем

    //DESKTOP/C /media/deskC cifs username=user,password=pass,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
  6. Ремаунтим партиции из файлика /etc/fstab
    sudo mount -a

Ubuntu настройка мыши Январь 1, 2008

Разместил gamerka в : Guide, ubuntu , 2 комментария

Настройка мыши A4tech X7 750-F (всех X7)

  1. Установка драйвера evdev
    sudo apt-get install xserver-xorg-input-evdev
  2. Сбор необходимой информации
    cat /proc/bus/input/devices

    Тут найти строку с названием мыши, в нашем случае это:
    N: Name="A4Tech PS/2+USB Mouse"

  3. Редактирование xorg.conf
    Делаем бэкап.

    sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

    Открываем xorg.conf.

    sudo gedit /etc/X11/xorg.conf

    Прокручиваем до секции мыши и заменяем её на:

    Section "InputDevice"                                                           
            Identifier      "Configured Mouse"                                      
            Driver          "evdev"                                                 
            Option          "CorePointer"                                           
            Option          "Name"  "A4Tech PS/2+USB Mouse" #тут должно быть имя мыши из 2-го пункта
    EndSection

    Сохраняем файл.

  4. Перезагрузка udev и Xorg
    Перезагружаем udev.

    sudo /etc/init.d/udev restart

    Перезагружаем иксы комбинацией Ctrl+Alt+Backspace.

    Внимание! После проделанных действий иксы могут не загрузиться (у меня с 750-F все сразу заработало), тогда вы останитесь в голой консоли, ваши действия в этом случае:

    sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf-a4tech
    sudo mv /etc/X11/xorg.conf.bak /etc/X11/xorg.conf

Дальше можно переназначить кнопки мыши по желанию.

  1. Для проверки кнопок запустим: xev
  2. Кликаем кнопками на появившемся окошке, в консоли видим номера нажатых кнопок.
  3. Чтобы поменять кнопки местами используем Xmodmap.
    gedit ~/.Xmodmap

    Там пишем к примеру:

    pointer = 1 2 3 4 5 7 6 8

    Здесь я поменял местами кнопки 6 и 7 (боковые вперед и назад).

  4. После сохраняем файл, и чтобы настройки вступили в силу запускаем:
    xmodmap ~/.Xmodmap

При следующем запуске Gnome вас спросят, хотите ли вы добавить новый конфиг Xmodmap в список автоматически загружаемых. Добавьте и нажмите OK.

По мотивам http://forum.ubuntu.ru/index.php?topic=2648.0.
Tам же можно прочитать как назначить кнопки мыши на комбинации кнопок клавиатуры.

Ubuntu полезный софт Декабрь 31, 2007

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

Xneur (xneur.ru) Linux, FreeBSD
Эта программа является автоматическим переключателем клавиатуры.
Т.е. при наборе текста, если он набирается не в той раскладке, xneur автоматически переключает раскладку на нужную. Также можно одной кнопкой переводить в другую раскладку слова и целые строки. Принцип работы у программы аналогичен Punto Switcher. Имеются фронтэнды под Gnome и KDE.

anyRemote (anyremote.sourceforge.net) Linux
Сервис управления Linux системой с мобильного телефона через Bluetooth, IR, Wi-Fi и TCP/IP. Может быть настроен для управления практически любым приложением, в комплекте идут примеры конфигураций для работы с медиа плеерами, клавиатурой, оконными менеджерами, мышью и т.д. Способен работать через java клиент, AT команды. Поддерживает некоторые пульты от ТВ тюнеров. Существуют фронтэнды для Gnome, KDE. Так же anyRemote можно контроллировать через веб интерфейс.

SIM (sim-im.org) MS Windows, Linux, FreeBSD
Мультиплатформенный, мультипротокольный клиент мгновенных сообщений. Поддерживает протоколы Jabber/XMPP, Oscar(ICQ и AOL), Yahoo!, MSN и LiveJournal. Все протоколы поддерживают расширенные возможности оформления текста, передачу файлов, оповещения о наборе текста, хранение контакт-листа на сервере, регистрацию нового аккаунта, различные виды поиска. Возможно использование нескольких аккаунтов для каждого протокола. Есть поддержка внешних модулей. Основан на библиотеке Qt и может быть собран с опцией поддержки KDE.