Разместил 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 в : bb10, centos, Guide
,
Вариант для подключения с любого устройства без сертификата:
ipsec.conf
config setup
strictcrlpolicy=no
conn %default
keyexchange=ikev2
conn rem
rekey=no
leftsubnet=0.0.0.0/0
leftauth=psk
leftid=CHANGE_TO_YOUR_IP_ADDRESS
right=%any
rightsourceip=10.9.9.0/24
rightauth=eap-mschapv2
rightsendcert=never
eap_identity=%any
auto=add
rightdns=8.8.8.8,8.8.4.4
ipsec.secrets
: PSK "server_pass"
user1 : EAP "user1_pass"
Настройки BB10
Server Address: адрес сервера
Gateway Type: Generic IKEv2 VPN Server
Authentication Type: EAP-MSCHAPv2
Authentication ID Type: IPv4
MSCHAPv2 EAP Identity: что угодно
Authentication ID: user1 (логин из ipsec.secrets)
MSCHAPv2 Password: user1_pass (пароль из ipsec.secrets)
Gateway Auth Type: PSK
Gateway Auth ID Type: IPv4
Gateway Preshared Key: server_pass (из ipsec.secrets)
Perfect Forward Secrecy: нет
Вариант с установкой корневого сертификата на устройство:
ipsec.conf
config setup
conn %default
auto=add
left=%any
leftsubnet=0.0.0.0/0
right=%any
rightsourceip=10.9.9.0/24
rightdns=8.8.8.8,8.8.4.4
forceencaps=yes
compress=yes
conn rw-eap
dpdaction=clear
dpddelay=300s
leftauth=pubkey
leftcert=domain_name.crt
rightauth=eap-mschapv2
rightsendcert=never
ipsec.secrets
: RSA domain_name.key
user1 : EAP "user1_pass"
Настройки BB10
Server Address: адрес сервера
Gateway Type: Microsoft IKEv2 VPN Server
Authentication Type: EAP-MSCHAPv2
Authentication ID Type: Fully Qualified Domain Name
Authentication ID: user1 (логин из ipsec.secrets)
MSCHAPv2 Password: user1_pass (пароль из ipsec.secrets)
Gateway Auth Type: PKI
Gateway Auth ID Type: Identity Certificate Destinguished Name
Allow Untrusted Certificate: Prompt
Gateway CA Certificate: скачанный с сервера и установленный корневой сертификат
Дополнительно:
Настройки фаервола CentOS 7 (firewalld) и вариант генерации сертификатов с помощью strongswan
Настройка фаервола CentOS 6 (iptables)
Генерация сертификатов через Easy-RSA
Разместил gamerka в : Guide, Windows
,
- Запустите утилиту
diskpart
.
C:\>diskpart
Microsoft DiskPart версии 6.1.7601
(С) Корпорация Майкрософт, 1999-2008.
На компьютере: DESKTOP
DISKPART>
- Посмотрите список доступных дисков
list disk
DISKPART> list disk
Диск ### Состояние Размер Свободно Дин GPT
-------- ------------- ------- ------- --- ---
Диск 0 В сети 37 Gбайт 2048 Kбайт
Диск 1 В сети 931 Gбайт 0 байт
Диск 2 В сети 931 Gбайт 0 байт
- Выберите нужный диск
select disk [номер диска]
DISKPART> select disk 1
Выбран диск 1.
- Посмотрите список разделов на диске
list partition
DISKPART> list partition
Раздел ### Тип Размер Смещение
------------- ---------------- ------- -------
Раздел 1 Основной 931 Gб 31 Kб
- Выберите раздел
select partition [номер раздела]
DISKPART> select partition 1
Выбран раздел 1.
- Сделайте раздел активным
active
DISKPART> active
DiskPart: раздел помечен как активный.
- Готово!
Разместил gamerka в : freebsd, Guide
,
Основные три этапа восстановления системы из дампа разделов:
- Запись FreeBSD livefs (на CD) или Frenzy (на flash)
- Создание разделов и меток или установка системы с нуля
- Восстановление из дампа
Запись Frenzy на flash драйв
- Выдираем из ISO образа папку
frenzy
и сохраняем этот образ
- Новый образ диска (чуть более 6 Мб) кидаем в папку
frenzy
- Папку
frenzy
кидаем в корень флэшки (FAT32)
- В
Menu.lst
прописываем
title frenzy-1.1-std-RU
map /frenzy/frenzy-1.1-std-RU.iso (hd32)
map --hook
chainloader (hd32)
boot
- Радуемся жизни
Восстановление разделов
После загрузки Frenzy корень флешки будет в /Frenzy/boot
cd /Frenzy/boot
после загрузки frenzy все доступные разделы будут монтированы в RO
, перемонтируем в RW
mount -u -w /dev/ad6s3f
ресторим c максимальной вербозностью
bzip2 -dcv carpc-var.dmp.0.bz2 | (cd /mnt/ad6s3d.ufs ; restore -rdvf - )
Источники:
GreenFlash Форум
Установка Frenzy на USB Flash
man restore
man bzip2
man mount
Резервное копирование FreeBSD при помощи DUMP и RESTORE
Разместил gamerka в : Guide, Netware
,
В связи с отказом России от DST появилась необходимость обновления информации о часовых поясах в сети на базе Novell Netware. В моём случае данная процедура состоит из трех шагов: обновление часового пояса на клиентских Windows компьютерах, обновление часового пояса на Netware серверах и обновление часового пояса в сервисах Groupwise.
Обновление клиентских машин
Если Windows update включен и работает на всех компьютерах то никаких мер принимать не нужно, в обратном случае стоит например добавить в login script установку обновления KB2570791 с ключами /quiet /norestart
, прямые ссылки на него можно найти здесь.
Настройка Netware
- Входим в консоль, запускаем
monitor
, идём в Server Parameters > Time, очищаем параметры “Start of Daylight Savings Time” и “End of Daylight Savings Time:”, устанавливаем “Daylight Savings Time Offset” +0:00:00, “Time Zone” MSK-4, устанавливаем “Timesync restart flag” on.
- Изменяем файл
AUTOEXEC.NCF
соответственно:
SET Daylight Savings Time Offset = 0:00:00
SET Start Of Daylight Savings Time =
SET End Of Daylight Savings Time =
SET Time Zone = MSK-4
- Проверяем командой
time
.
Настройка сервисов Groupwise
Для начала нужно обновить часовые пояса в Java Runtime Environment используемом в ConsoleOne.
Скачиваем TZupdater с оффициального сайта.
Закидываем tzupdater.jar
в папку /bin/
нужного JRE (если их несколько и не понятно какой используется С1 то можно все по очереди обновить).
Запускаем оттуда
java -jar tzupdater.jar -v -f
утилита выведет информацию о старой и новой версии TZ и напишет успешно ли они обновились.
После этого пускаем ConsoleOne, убеждаемся что в Tools – Groupwise System Operations – Time Zones выбран правильный часовой пояс, если нужно правим его.
Далее в настройках каждого MTA и PO выставляем этот же часовой пояс и применяем настройки, после применения сервисы сами перезапустятся уже с обновленными часовыми поясами.
Что дальше?
В оригинальных статьях советуют обновить JRE на сервере тем кто пользуется сервисами связанными с ней. Где-то советуют перезагрузить сервер. Кроме того пишут что необходимо скорректировать время в событиях в календаре Groupwise, не могу это подтвердить, я им не пользуюсь.
Источники:
Novell Cool Solutions: Updating the GroupWise Time Server
Novell Forums – DST one extra hour ahead
How to implement the latest Time Zone changes in Russia on NetWare
Netware: Отмена перехода на летнее время для России
Разместил 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
,
Имеем: образ или структуру DVDA диска.
Желаем: потрековый многоканальный FLAC.
(more…)
Разместил 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ам же можно прочитать как назначить кнопки мыши на комбинации кнопок клавиатуры.