Разместил 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.
- В приложении добавляем новый профиль.
- Указываем ip или имя сервера.
- Тип указываем IKEv2 Certificate
- При выборе сертификата пользователя жмем Install и выбираем наш .p12 файл.
- Снимаем галку Select automatically и жмем Select CA certificate, в следующем окне открываем меню и выбираем Import certificate, выбираем файл ca.crt
- Дополнительные опции можно не указывать, должно работать так.
BlackBerry 10
Сначала устанавливаем на устройство сертификаты ca.crt и .p12
Открываем Networks and Connections -> VPN, создаем новый профиль.
- Указываем имя профиля, IP или имя нашего сервера
- Выбираем тип “Generic IKEv2 VPN Server”
- Authentication Type = PKI
- Authentication ID Type= Identity Certificate Distinguished Name
- Client Certificate = имя нашего клиентского сертификата
- Gateway Auth Type = PKI
- Gateway Auth ID Type = Fully Qualified Domain Name
- Gateway Auth ID = my.host.name (поле leftid из ipsec.conf)
- Gateway CA Certificate = имя нашего CA сертификата (“my CA”)
- Perfect Forward Secrecy = On
- Automatically determine IP = ON
- Automatically determine DNS = ON
- 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
Разместил gamerka в : ubuntu
,
Создать в корне флешки папку 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 Форум
Разместил gamerka в : Guide, ubuntu, Windows
,
Суть этой заметки в том, что предполагается, что у нас нет ни одного компьютера с установленным дистрибутивом линукса, и мы не желаем оный ставить.
Сразу хочу заметить, что после всех мучений я пришел к выводу, что grub2 не может полноценно заменить grub4dos, главным образом из-за невозможности на данный момент загружать BartPE системы.
После долгих поисков, проб и ошибок выяснилось единственный на 100% рабочий способ установки grub2 на usb flash диск это и есть самый часто встречающийся, то есть установка из-под ubuntu. Для меня он был самым нежелательным из-за, как мне казалось, избыточной необходимости скачивать установочный образ ubuntu, что впоследствии оказалось очень быстрым процессом, в сравнении с тем сколько я тратил времени на остальные способы.
Что нам потребуется:
- Пустая флешка на которую надо установить grub2.
- Пустая флешка c которой будем загружать ubuntu или CD/DVD диск при наличии соответствующего пишущего привода.
Перейдем к собственно нашим действиям:
- Скачиваем образ ubuntu desktop c официального сайта. Советую выбрать загрузку по bittorrent протоколу.
- Записываем образ на вторую флешку специальной утилитой Universal USB Installer или записываем на CD/DVD диск любой имеющейся программой с поддержкой записи iso образов (SCDWriter, Nero, BurnAware).
- Вставляем нашу основную флешку в компьютер, загружаемся с носителя из предыдущего пункта. Если образ записался правильно то ubuntu непременно загрузится.
- В ubuntu открываем эмулятор консоли через меню Applications > Accessories > Terminal.
- Предположим, что 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
- Осталось создать файл конфигурации
grub.cfg
, это можно сделать из-под windows. Перезагружаем компьютер в windows.
- Создаем на флешке с грубом файл
/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.
Разместил gamerka в : Guide, ubuntu
,
- Маунтим виндовую ntfs партицию
- Маунтим виндовую шару
Чтобы при загрузке автоматом маунтилась ntfs партиция
- Создаём папку, куда она должна маунтиться
sudo mkdir /media/windows
- Смотрим название этой партиции
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
- Делаем бэкап файла
/etc/fstab
sudo cp /etc/fstab /etc/fstab_backup
- Открываем его
sudo gedit /etc/fstab
добавляем в конец файла
/dev/sda1 /media/windows ntfs nls=utf8,umask=0222 0 0
тут /dev/sda1
это название партиции, /media/windows
папка куда маунтить, nls=utf8,umask=0222
опции кодировки и прав
- Ремаунтим партиции из файлика
/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 адрес, кодировка и права на файлы и папки.
Чтобы при загрузке автоматом маунтилась виндовая шара
- Ставим поддержку файловой системы самбы
sudo apt-get install smbfs
- Создаём папку куда будем маунтить
sudo mkdir /media/deskC
- Добавляем ip виндовой машины в
/etc/hosts
sudo gedit /etc/hosts
тут в конец добавляем строку
192.168.1.2 desktop
- Делаем бэкап
/etc/fstab
sudo cp /etc/fstab /etc/fstab_backup
- Редактируем
/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
- Ремаунтим партиции из файлика
/etc/fstab
sudo mount -a
Разместил gamerka в : Guide, ubuntu
,
Настройка мыши A4tech X7 750-F (всех X7)
- Установка драйвера evdev
sudo apt-get install xserver-xorg-input-evdev
- Сбор необходимой информации
cat /proc/bus/input/devices
Тут найти строку с названием мыши, в нашем случае это:
N: Name="A4Tech PS/2+USB Mouse"
- Редактирование 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
Сохраняем файл.
- Перезагрузка 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
Дальше можно переназначить кнопки мыши по желанию.
- Для проверки кнопок запустим:
xev
- Кликаем кнопками на появившемся окошке, в консоли видим номера нажатых кнопок.
- Чтобы поменять кнопки местами используем
Xmodmap
.
gedit ~/.Xmodmap
Там пишем к примеру:
pointer = 1 2 3 4 5 7 6 8
Здесь я поменял местами кнопки 6 и 7 (боковые вперед и назад).
- После сохраняем файл, и чтобы настройки вступили в силу запускаем:
xmodmap ~/.Xmodmap
При следующем запуске Gnome вас спросят, хотите ли вы добавить новый конфиг Xmodmap в список автоматически загружаемых. Добавьте и нажмите OK.
По мотивам http://forum.ubuntu.ru/index.php?topic=2648.0.
Tам же можно прочитать как назначить кнопки мыши на комбинации кнопок клавиатуры.
Разместил 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.