пятница, 11 апреля 2014 г.

OpenVPN сервер на Ubuntu 12.04 и подключение клиентов (Windows)

Понадобилось настроить VPN сервер, в заметке буду использовать OpenVPN сервер с системой Ubuntu 12.04.

Теоретическая часть:

VPN ( Virtual Private Network - виртуальная частная сеть) - обобщенное название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети. Несмотря на то, что коммуникации осуществляются по сетям с меньшим или неизвестным уровнем доверия (например, по публичным сетям), уровень доверия к построенной логической сети не зависит от уровня доверия к базовым сетям благодаря использованию средств криптографии (шифрования, аутентификации, инфраструктуры открытых ключей)

В зависимости от применяемых протоколов и назначений, VPN может обеспечивать соединения трех видов: узел-узел, узел-сеть и сеть-сеть.

Я буду реализовывать соединение типа: узел-сеть. Где будет OpenVPN сервер (Ubuntu 12.04) и клиенты: 2 ПК с Windows XP.

OpenVPN - свободная реализация технологии VPN с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами.

Принцип работы:
Сначала сервер и клиент обмениваются своими публичными ключами (они не секретны и можно их не прятать и не беспокоиться о их доступности). Потом обеими сторонами проводится проверка полученных ключей на предмет легитимности, то есть срок действия, проверка подписи СА, проверка в списке отозванных ключей и так далее. Если все отлично, то начинается обмен данными:

  • Отправляемый пакет шифруется с помощью открытого ключа получателя;
  • Потом пакет подписывается закрытым ключом отправителя;
  • Пакет отправляется на другую сторону;
  • У получаемого пакета проверяется подпись с помощью открытого ключа отправителя;
  • Если подпись верна. то пакет расшифровывается с помощью закрытого ключа получателя.

В нашем случае Ubuntu будет выступать в роли центра сертификации (СА) и openvpn сервера, который обеспечивает возможность подключения удаленных клиентов.

Центр сертификации - отдельная папка на винчестере, в которой находятся:
  • Пара файлов ca.key и ca.crt - ключ и сертификат центра сертификации;
  • Простейшая база данных из двух файлов:
    • Файл serial - счетчик;
    • Файл index.txt - список выданных сертификатов.
  • Файлы уже выданных сертификатов (*.crt) для возможности их отзыва;
  • Файл crl.pem, в котором накапливается информация об отозванных ключах;
  • Несколько скриптов для генерации новых ключей и сертификатов.
Походу установки и настройки, я буду делать лирические отступления для пояснения. Приступим:

1. Установка openvpn сервера

Пожалуй сама установка самое простое:
# sudo apt-get update
# sudo apt-get install openvpn -y

2. Установка центра сертификации (СА)

Что бы установить свой собственный центр сертификации и сгенерировтаь сертификаты и ключи для OpenVPN сервера и нескольких клиентов необходимо сначала скопировать easy-rsa в каталог /etc/openvpn. Это будет гарантировать, что любые изменения в сценариях не будут потеряны при обновлении пакета.

# sudo mkdir /etc/openvpn/easy-rsa
# sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Далее необходимо отредактировать соответствующие строки в конце файла /etc/openvpn/easy-rsa/vars, содержащего различные переменные, которые будут загружаться в командную оболочку перед каждым сеансом генерации сертификатов и ключей.
# sudo nano /etc/openvpn/easy-rsa/vars

Я только поменяю такие строки:

export KEY_COUNTRY="UA" # страна
export KEY_PROVINCE="Crimea" # регион
export KEY_CITY="Sevastopol" # город
export KEY_ORG="home test vpn" # организация
export KEY_EMAIL="qqw1mb0@gmail.com" # почтовый адрес

Это редактирование можно и пропустить, так как при генерации ключей и сертификатов все равно опять будут запрашиваться все эти параметры, просто если этот файл отредактировать, то данные, которые мы вписали будут использоваться по умолчанию. Да и вообще эти данные можно не изменять, если вы не серьезная контора. Так как никакой функциональной нагрузки они не несут.

Создадим главный сертификат центра сертификации (СА) и ключ:
# cd /etc/openvpn/easy-rsa
# source vars


Скорее всего мы увидим такое сообщение об отсутсвтии файла openssl.cnf, если же его нет то можно пропустить этот момент. Благо разработчики OpenVPN о нас позаботились и в папке /etc/openvpn/easy-rsa уже есть несколько шаблонов: openssl-0.9.6.cnf , openssl-0.9.8.cnf , openssl-1.0.0.cnf , openssl-1.0.0.cnf-old-copy.

Узнаем, какая версия openssl стоит у нас в системе:
# aptitude show openssl
Нас интересует строка Version, в ней указано 1.0.1-4ubuntu5.9.
Ну что же, файла с такой версией нет, но нам подойдет и openssl-1.0.0.cnf , переименуем его, так как нам нужен файл openssl.cnf:
# sudo mv openssl-1.0.0.cnf openssl.cnf

Теперь мы можем загрузить переменные:
# source vars 
или можно воспользоваться: # . vars , так как "source" одно и тоже что "." .

На что мы должны получить ответ:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

Вот как раз дальше мы и выполним:
# ./clean-all

Однако на это мы получим ответ:
mkdir: cannot create directory `/etc/openvpn/easy-rsa/keys': Permission denied

Интересно и почему так? а потому что мы копировали easy-rsa с правами суперпользователя (root) и владельцем всего easy-rsa является root, а мы выполняем ./clean-all с правами пользователя.

Я решил эту проблему так:
# sudo chown -R $USER /etc/openvpn/easy-rsa/

Переменная $USER - это переменная в которой хранится имя пользователя. Вот так мы сделали владельцем каталога easy-rsa своего пользователя. Теперь выполним, то что хотели:
# ./clean-all

И мы не увидим никаких ошибок. И сгенерируем наконец сертификат и ключ центра сертификации:
# ./build-ca
Теперь в /etc/openvpn/easy-rsa/keys лежат сертификат центра сертификации ca.crt и приватный ключ центра сертификации ca.key.  Сертификат центра сертификации находится как на сервере, так и на клиенте, так что в будущем его надо будет скопировать на клиентскую машину, но об этом позже.

Приватный ключ центра сертификации чрезвычайно секретный и не должен попасть в чужие руки. Нужно как можно лучше его спрятать, после генерации ключей для клиентов.

3. Сертификаты сервера

Далее мы сгенерируем сертификат и закрытый ключ для OpenVPN сервера:
# ./build-key-server server1
где server1 любое имя вашего OpenVPN сервера.

Большая часть вопросов аналогична вопросам при генерации сертификата и ключа для центра сертификации однако есть и новые поля:
Часть я обрезал, что бы скрины не были уж слишком большими.

Больше всего нас интересуют два вопроса:
  • Sign the certificate? [y/n]:
  • 1 out of 1 certificate requests certified, commit? [y/n]:
На которые нужно ответить утвердительно: y

Для сервера OpenVPN необходимо использовать алгоритм Диффи-Хеллмана:
# ./build-dh

Вывод будет примерно таким:

Все сертификаты и ключи были сгенерированы в подкаталоге keys/. Обычно их копируют в /etc/openvpn/ , зачем и мне отличаться? Да и потом в конфиге меньше букв набирать:
# cd keys/
# sudo cp ca.crt dh1024.pem server1.crt server1.key /etc/openvpn/

4. Конфигурация сервера OpenVPN

Вместе с утсновкой OpenVPN мы получаем примеры нужных нам конфигурационных файлов (и многих других, если присмотреться):
# ls -l /usr/share/doc/openvpn/examples/sample-config-files/
Однако нас интересует один файл server.conf.gz.
Скопируем его в /etc/openvpn/ и разархивируем:
# cd /etc/openvpn
# sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
# sudo gzip -d server.conf.gz

Отредактируем server.conf:
# sudo nano server.conf

так, что бы убедиться, что следующие строки указывают на корректные сертификаты и ключи:
ca ca.crt
cert server1.crt
key server1.key
dh dh1024.pem

Тут мне пришлось изменить только строки cert и key, так как я назвал свой сервер: server1, а по умолчанию идет: server.
Так же на самом деле можно как угодно назвать файлы, главное указать в соответсвтующих строках (это может помочь сбить с толку злоумышленника).
Стандартных настроек server.conf вполне хватает для работоспособного сервера, однако вы можете по изучать интернет на эту тему, с OpenVPN можно делать очень интересные и хитрые штуки.

Стартанем OpenVPN сервер:
# sudo /etc/init.d/openvpn start

Демон успешно стартовал. Проверим, создался ли сетевой интерфейс:
# ifconfig tun0
 По умолчанию OpenVPN первому серверу назначает первый IP: 10.8.0.1. Нас это вполне устраивает. Так что перейдем к настройке клиентов.

5. Генерация сертификатов и ключей для клиентов.

Для каждого клиента необходимо индивидуально создавать ключи и сертификаты:
# cd /etc/openvpn/easy-rsa/
# source vars
# ./build-key client1

Вывод будет такой же, как при создании ключа и сертификата для сервера OpenVPN (пункт 3).
В подкаталоге keys/ появиться три файла: client1.crt - сертификат, client1.key - ключ, clien1.csr - вроде как мусор, он нам дальше не пригодится.
Необходимо каким либо безопасным образом скопировать файлы:
ca.crt , clien1.crt, client1.key скопировать на клиентский компьютер.

Так же поступим для генерации ключа и сертификата для второго клиента:
# cd /etc/openvpn/easy-rsa/
# source vars
# ./build-key client2

Для копирования на Windows клиенты можно воспользоваться WinSCP или существует много других способов.

6. serial и index.txt

Ранее я упоминал об этих файлах:
serial - серийный номер;
index.txt - список выданных ключей.
можно глянуть их содержимое:
# cat /etc/openvpn/easy-rsa/keys/serial
04
# cat /etc/openvpn/easy-rsa/keys/index.txt

Так же можно избавиться от файлов: client1.crt, client1.csr, client1.key, client2.crt, client2.csr, client2.key:
# rm client*

7. Настройка клиентов Windows XP

Переходим на страницу: http://openvpn.se/download.html
И скачиваем openvpn-2.0.9-gui-1.0.3-install.exe
Устанавливаем OpenVPN GUI соглашаясь со всеми пунктами.
Теперь возьмем файлы: ca.crt, client2.crt, client2.key и скопируем в каталог: 
C:\Program Files\OpenVPN\config

Далее возьмем файл C:\Program Files\OpenVPN\sample-config\client.ovpn и скопируем его в C:\Program Files\OpenVPN\config.

У меня почему-то файлы сертификатов (*.crt) поменяли расширение на *.cer. Но это не страшно, просто главное заметить.

UPD: Если расширение файла у вас не поменялось с crt на cer, то в конфиге нужно указывать соответственно то расширение, которое имеют файлы (если у файлов расширение crt то в конфиге нужно указать: ca ca.crt и cert client2.crt). Спасибо за уточнение Мостовому Павлу.
Откроем файл C:\Program Files\OpenVPN\config\client.ovpn и приведем к такому виду:
client
dev tun
proto udp
remote 192.168.1.104 1194 # Это адрес моего OpenVPN сервера, а 1194 - стандартный порт для OpenVPN
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.cer
cert client2.cer
key client2.key
comp-lzo
verb 3

Теперь нажмем дважды на значок OpenVPN GUI в трее:

И увидим примерно такую картину:

А после успешного подключения увидим в трее:

Теперь вспомним, что когда мы запустили OpenVPN сервер у нас получил IP-адрес: 10.8.0.1 и попробуем его пропинговать:
И это при том, что у меня в сети адреса были только в диапазоне: 192.168.1.0/36

Вот мы и получили рабочий сервер OpenVPN и подключили к нему клиентов.
Далее я напишу заметку, для чего я все это делал.


Ссылки:
Большую часть информации я взял отсюда, хорошая статья: тыц
Описание много чего в конфиге OpenVPN: тыц

Взято здесь

воскресенье, 6 апреля 2014 г.

Создать видео-слайдшоу с 4kslideshowmaker в Ubuntu/Linux Mint и производные

Слайд-шоу - прекрасный способ, чтобы поделиться воспоминаниями с семьёй и 
друзьями. Оно предаёт настроение момента гораздо лучше, чем простая коллекция 
фото.
4K Slideshow Maker - простая и легкая в использовании программа для создания 

слайд-шоу. Добавьте ваши любимые фотографии и музыку, примените интересные эффекты 
и переходы. Улучшенная технология распознавания лиц поможет вам не упустить главных 
героев. Сохраните ваше слайд-шоу в наилучшем качестве для iPhone или поделитесь вашим 
творением с друзьями на Facebook. Результат просто потрясающий!
Наслаждайтесь слайд-шоу в любом месте, в любое время и на любом устройстве! http://compizomania.blogspot.com/

1. Установить 4K Slideshow Maker. 

Скопируйте и выполните в терминале (Ctrl+Alt+T) одну из команд для вашей системы:

Для систем 32-bit:

cd /tmp && wget http://downloads.4kdownload.com/app/4kslideshowmaker_1.4-1_i386.deb && 
sudo dpkg -i 4kslideshowmaker_1.4-1_i386.deb

Для систем 64-bit:

cd /tmp && wget http://downloads.4kdownload.com/app/4kslideshowmaker_1.4-1_amd64.deb && 
sudo dpkg -i 4kslideshowmaker_1.4-1_amd64.deb

2. По окончании установки откройте программу:









Нажмите кнопку Добавить фото. Выберите нужные фото на вашем компьютере и нажмите 
Открыть. Вы можете выбрать несколько фотографий за раз, удерживая Shift на клавиатуре 
или одну за одной, удерживая Ctrl клавишу.  Вы также можете просто перетащить фото в 
основное окно программы:

























3. Когда выбранные фотографии отобразятся в главном окне программы вы можете изменить 
порядок слайдов, перетаскивая их с помощью мыши. Доступные опции будет отображаться, 
когда курсор находится на слайде. Вы можете вращать слайд или удалить его.

 4. Для того, чтобы добавить фото из Instagram, нажмите Добавить Instagram:


























5. Когда все фото будут добавлены и отредактированы на ваше усмотрение, нажмите кнопку 
Изменить музыку и выберите аудио трек для будущего слайд-шоу:

6. Нажмите Показать превью, чтобы открыть видеоплеер для предпросмотра слайд-шоу. 
Стоит отметить, что качество видео в предпросмотре может быть ниже, чем в конечном видео:

























7. Нажмите кнопку Сделать слайд-шоу. Укажите имя файла, выходную папку, выберите 
качество и видео формат. Нажмите кнопку Продолжить:

























8. 4K Slideshow Maker применит замечательные эффекты и переходы, чтобы сделать 
прекрасное слайд-шоу. Вы также можете видеть среднее время и прогресс создания слайд-шоу:

Подождите несколько минут и ваше слайд-шоу будет готово:

























Вот и всё, ваше слайд-шоу готово. Вы можете сразу посмотреть созданное слайд-шоу в 
видеоплеере по умолчанию, кликнув на кнопке Play или открыть папку с файлом - Show in 
Folder и выбрать другой плеер:






















суббота, 5 апреля 2014 г.

Юбилейный релиз пакетного менеджера Apt (Advanced Packaging Tool) 1.0

Разработчики Debian представили юбилейный выпуск пакетного менеджера 
apt версии 1.0. Юбилейный он потому, что Debian 1 апреля 2014 года 
исполнилось 16 лет. При этом пакетный менеджер apt является самым 
популярным в мире Linux и успешно применяется как в deb (Debian, Ubuntu, 
Linux Mint и производных от них дистрибутивах), так и rpm-дистрибутивах 
(Alt Linux, PCLinuxOS и пр.).
Кроме исправления ошибок и мелких доработок, можно отметить появление новой утилиты 
apt, которая по аналогии сaptitude объединяет в себе функции ранее разрозненного набора 
приложений, таких как apt-get и apt-cache, и позволяет выполнять команды (search, install, 
show, update и т.п.) непосредственно с командой apt, без добавления get , хотя (apt-get)  
apt-get также работает. Интересно, что, так как приложение с именем apt уже входит в состав 
пакетов с JDK 5 и 6, которые устарели и больше не поддерживаются компанией Oracle, пакеты 
sun-java{5,6}-jdk помещены в черный список и недоступны для установки.
В настоящее время в репозиториях Ubuntu пока нет обновлённого менеджера apt, поэтому 
для его установки нужно прежде подключить репозиторий ppa:mvo/apt-src-ftparchive и пока 
только в Ubuntu 14.04http://compizomania.blogspot.com/


















Установка apt в Ubuntu 14.04

Откройте терминал (Ctrl+Alt+T), скопируйте и выполните следующие команды:

sudo add-apt-repository ppa:mvo/apt-src-ftparchive
sudo apt-get update
sudo apt-get install apt


По окончании установки вы сразу можете в терминальных командах применять команду apt 
без связки apt-get.
Например:

sudo apt update
sudo apt upgrade
sudo apt install название пакета
sudo apt remove название пакета


И тому подобное.

Если вы производили установку программы с использованием обновлённого apt, то внизу 
терминала появляется прогресс-барустановки:





















Автор: 

пятница, 4 апреля 2014 г.

Установить SpeedCrunch - быстрый и практичный калькулятор в Ubuntu/Linux Mint и производные

SpeedCrunch - это быстрый, высокоточный, практичный и мощный 
калькулятор. Имеет библиотеку встроенных математических функций, 
хранит историю всех операций, поддерживает автодополение функций и 
обладает многими другими полезными функциями.
SpeedCrunch поддерживает точность вычислений до 50-ти знаков после 
запятой. Ввод цифр, знаков и символов можно полностью с клавиатуры 
без использования мыши, для всех действий существуют горячие клавиши по умолчанию. 
Вводить строку запроса можно с клавиатуры или используя кнопки калькулятора. При вводе 
программа будет предлагать варианты функций, если они содержатся в ее библиотеке, а так 
же подсвечивать синтаксис запроса. Авто завершение для переменных.http://compizomania.blogspot.com/

Язык: русский (многоязычность)
Операционные системы: Linux, Windows и MacOS X.



Установка  SpeedCrunch в Ubuntu/Linux Mint и производные

Откройте терминал (Ctrl+Alt+T), скопируйте и выполните следующую команду:

sudo apt-get install speedcrunch

По окончании установки вы найдёте SpeedCrunch в программах Сандартные или поиском в 
меню:

Сайт программы: SpeedCrunch http://compizomania.blogspot.com/

Удачи.

среда, 2 апреля 2014 г.

10 полезных ссылок для пользователя Google

http://www.labnol.org/internet/important-google-urls/28428/
Хотя сервисы Google никогда не претендовали на звание самых простых в использовании, в функциональности им не откажешь точно. Некоторые из функций зарыты настолько глубоко и неочевидны, что добраться до них можно только основательно прошерстив многочисленные меню настроек своего аккаунта. Ниже мы приведем 10 важных ссылок, которые стоит знать каждому обладателю учетной записи Google.

1. Создать новый аккаунт Google, используя существующий email

Существует расхожее мнение, что учетная запись Google = ваш почтовый ящик на Gmail, но это не так. Эта специальная ссылка позволит вам создать аккаунт с любым email в качестве логина:
https://accounts.google.com/SignUpWithoutGmail

2. Ваши предпочтения глазами Google

На основе посещаемых вами сайтов, вашей страницы в Google+ и прочих сигналов, Google изучает ваш соцдем-профиль: стремится угадать ваш возраст, пол, интересы, чтобы показывать вам более релевантную рекламу. Взглянуть на себя глазами Google можно здесь:
https://www.google.com/ads/preferences/

3. Выгрузить все ваши данные в экосистеме Google.

Вы можете скачать архив ваших фото, контактов, сообщений в Gmail и даже ваши видео YouTube:
https://www.google.com/takeout

4. Пожаловаться на нарушение ваших авторских прав

Если вы обнаружили свой контент на стороннем сайте, который использует один из сервисов Google – AdSense, Google+ или YouTube — вы можете подать жалобу на нарушителя с требованием удалить его. Эта же страница поможет вам убрать сайты, копирующие ваш контент без разрешения, из поисковой выдачи Google:
https://support.google.com/legal

5. История ваших перемещений

Ваше мобильное устройство на Android может отправлять данные о вашем местоположении и скорости передвижения на сервера Google. В специальном разделе на сайте Google Maps можно увидеть все ваши геолокационные данные, известные Google. Вы сможете выгрузить их в виде файла формата KML, который может быть просмотрен при помощи Google Earth или Google Drive:
https://maps.google.com/locationhistory

6. Google сохраняет каждый ваш поисковый запрос, и даже все ваши клики по рекламе на своих многочисленных сайтах:

https://history.google.com

7. Не удалять неактивный аккаунт Google

Вам надо заходить под учетной записью Gmail хотя бы раз в 9 месяцев, иначе Google имеет право закрыть ее в соответствии со своими правилами. Помнить об этом нелегко, если у вас действительно много учетных записей, поэтому стоит указать вашу основную учетку Gmail в качестве дополнительного адресата для предупреждений и уведомлений (к сожалению, это не работает для Google Apps). Сделать это можно здесь:
https://www.google.com/settings/account/inactive

8. Отчет о действиях вашей учетной записи

Полезная функция, если вы подозреваете, что вашу учетную запись использует кто-то другой без вашего ведома. Содержит информацию обо всех действиях, а также устройствах, IP-адресах и примерных географических положениях, с которых осуществлялся вход. К сожалению (или к счастью), отсутствует функция удаленного прекращения рабочей сессии вашей учетной записи.
https://security.google.com/settings/security/activity

9. Список прав доступа

Содержит полный список веб-приложений, расширений браузеров, скриптов Google и мобильных приложений, которые имеют права на чтение и/или запись в вашей учетной записи Google. Если уровень разрешений говорит «доступ к основной информации», обычно это означает, что данное приложение использует ваш аккаунт Google для авторизации.
https://security.google.com/settings/security/permissions

10. Сбросить пароль администратора Google Apps

Крайне важная страница для пользователей Google Apps. Если ваш аккаунт Google окажется взломан, используйте следущую ссылку для сброса вашего администраторского пароля. Также от вас потребуется подтвердить ваше доменное имя, создав специальную CNAME-запись в настройках DNS.
https://admin.google.com/ваш-домен/VerifyAdminAccountPasswordReset