Вот встала задача соединить два компа в разных сетях, оба за NAT'ом, через VPN. Один NAT под Windows server 2003, другой под Debian Lenny 5.0.4. Естественно выбор пал на OpenVPN. На мой взгляд это 2 простых способа реализации данной задачи: соединить именно эти компы между собой(технология p2p), и соединить сети(подскажите). Здесь я хочу собрать что-то наподобие мануала по этой задаче, заодно и оттестировать его. Как всегда приветствуются поправки, корректировки, советы, подсказки и т.д. Буду вносить поправки в текст.
Вот что я сделал основываясь на руководстве.
Эта часть, как мне кажется для соединения сетей. Для p2p напишем в конце, там как я понял можно в 2 строчки уложиться.
Итак приступим.
Вариант 1. для соединения сетей
Сервер Debian Lenny 5.0.4
1. Устанавливаем пакет Openvpn
sudo aptitude install openvpn
2. Для проверки с помощью следующих команд можно посмотреть, какие дайджесты (применяются для аутентификации каждой получаемой UDP-датаграммы) и алгоритмы шифрования доступны:
Ключи и сертификаты
1. Создаем директорию, где будут лежать конфигурационные файлы, скрипты и сертификаты:
sudo mkdir -p /etc/openvpn/keys
2. Копируем комплект скриптов easy-rsa, предназначенный для упрощения создания сертификатов, которые предъявляются в процессе аутентификации для подтверждения валидности клиентов и переходим в нее.
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
sudo cd /etc/openvpn/easy-rsa/2.0
3. В файл vars прописываем свои данные(будут предлагаться в качестве значений по умолчанию) для подписи ключей под себя
4. Инициализируем переменные и очищаем от старых сертификатов и ключей папку keys и создаем серийный и индексные файлы для новых ключей:
sudo source ./vars
sudo ./vars
sudo ./clean-all
5. Создаем корневой и серверный сертификаты:
sudo ./build-ca
sudo ./build-key-server server
создадим файл параметров Диффи-Хелмана, который обеспечивает более надежную защиту данных при установке соединения клиента с сервером
sudo ./build-dh
6. Снизим вероятность успешного проведения DoS-атаки на сервер OpenVPN за счет использования клиентом и сервером статического ключа HMAC (так называемый shared secret):
cd /etc/openvpn/keys
sudo /usr/local/sbin/openvpn --genkey --secret ta.key
P.S. Пока писал и искал решения проблем, нашел еще одно хорошее руководство из которого много чего взял, надеюсь автор будет не против, т.к. я сделал на него ссылку :)
Please edit the vars script to reflect your configuration,
then source it with «source ./vars».
Next, to start with a fresh PKI configuration and to delete any
previous certificates and keys, run "./clean-all".
Finally, you can run this tool (pkitool) to build certificates/keys.
В общем случае при запуске скрипта запускается новый процесс. Для того, чтобы выполнить скрипт внутри текущей сессии bash, необходимо использовать команду source, синонимом которой является просто точка ".". Скрипт оболочки служит просто аргументом этой команды. Ее формат:
source filename [arguments]
или
. filename [arguments]
Эта команда читает и выполняет команды из файла с именем filename в текущем окружении и возвращает статус, определяемый последней командой из файла filename. Если filename не содержит слэша, то пути, перечисленные в переменной PATH, используются для поиска файла с именем filename. Этот файл не обязан быть исполняемым. Если в каталогах, перечисленных в PATH, нужный файл не найден, его поиск производится в текущем каталоге.
Как именно «ругается»? :)
У меня следующая структура папок:
— здесь различные скрипты
— здесь наверно должны хранится ключи