The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"VPN & NAT и все такое"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"VPN & NAT и все такое"  +/
Сообщение от AleXgRey email(ok) on 16-Мрт-06, 09:15 
Всем привет.
Посоветуйте решение проблемы.
Хотелось что бы была возможность управлять оборудованием через Инет.
подключение к локалки по VPN.
читал что pptp через NAT под linux (без пропатченного iptables) не работает.(даже убедился на практике)
а есть ли какая альтернатива vpn или другое решение.
причём желательно чтобы клиент был win и без дополнительного софта.
подключения к нету могут быть разные c реальными и нереальными :) IP.

зы если кто что знает про OpenVPN(для решения данного случия или сравнительно с pptp) нацарапайте plz.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "VPN & NAT и все такое"  +/
Сообщение от dimus email(??) on 16-Мрт-06, 10:34 
>Всем привет.
>Посоветуйте решение проблемы.
>Хотелось что бы была возможность управлять оборудованием через Инет.
>подключение к локалки по VPN.
>читал что pptp через NAT под linux (без пропатченного iptables) не работает.(даже
>убедился на практике)
>а есть ли какая альтернатива vpn или другое решение.
>причём желательно чтобы клиент был win и без дополнительного софта.
>подключения к нету могут быть разные c реальными и нереальными :) IP.
>
>
>зы если кто что знает про OpenVPN(для решения данного случия или сравнительно
>с pptp) нацарапайте plz.

1 Вариант: PyTTY и SSH
2 Вариант: OpenVPN

Оба варианта работают через NAT
Вариант с OpenVPN прекрасно работает на WinXP, но с Win2003 возникают проблемы - интерфейс не поднимается должным образом. OpenVPN сравнительно мало нагружает систему и вносит небольшие задержки. Мы эксплуатируем VoIP через OpenVPN - качество всязи весьма неплохое (а у нас ВПН еще поверх радиоканала) и CounterStrike через ВПН - разница в пинге в варианте с ВПН и без ВПН почти не заметна.

Настройка OpenVPN - дело средней сложности. Наиболее сложным для меня было генерирование ключей и настройка маршрутизации - это надо делать на сервере, и он сбрасывает настройки клиентам. Вобщем, изучение OpenVPN HOWTO сильно вам поможет.

Вот я тут кое что переводил и писал по этому поводу - заметки для себя, так что сильно не пиннайте, если что :)

===================================================================
OpenVPN
Создание своей собственной Инфраструктуры Публичных Ключей (PKI)
Первый шаг на пути настройки OpenVPN - это создание своей инфраструктуры
публичных ключей. В инфраструктуру входят:

        * Главный (корневой) сертификат и ключ для подписи сертификатов
          сервера и клиентов - master Certificate Authority (CA)
        * Сертификат (публичный ключ) и секрктный ключ сервера
        * Сертификаты (публичные ключи) и секретные ключи клиентов

OpenVPN поддерживает двунаправленную аутентификацию, когда клиент должен
аутентифицировать сертификат сервера, а сервер - сертификат клиента. И клиент,
и сервер идентифицируют друг друга, первоначально проверяя, что сертификат
подписан при помощи корневого сертификата - CA, а затем смотрят заголовки
сертификата.

OpenVPN сервер для своей работы нуждается только в в своем сертификате и  
секретном ключе - ему не обязательно знать индивидуальные сертификаты клиентов,
которые захотят к нему подключиться. Сервер будет принимать только тех
клиентов, сертификаты которых подписаны при помощи CA. А так как сервер может
проверить истинность сертификата без знания секретного ключа CA, то последний
может быть размещен в другом месте, что повышает безопасность. Вообще этот
ключ - самая важная точка Инфраструктуры Публичных Ключей.
OpenVPN поддерживает Certificate Revocation List (CRL) - Список Отозванных
Сертификатов. Если какой-либо сертификат был скомпрометирован, то добавление
его в список отозванных сертификатов не даст возможность использовать этот
сертификат для доступа в сеть.
OpenVPN сервер может применять специфичные для клиента правила доступа на
основе встроенных полей сертификата.

=====================================================================
Для создания корневого сертификата для сервера OpenVPN можно применить
следующую команду:

openssl req -days 10 -nodes -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

Либо можно попробовать такой путь. Однако не факт, что сработает, так как в
конфигурационном файле, идущем вместе с OpenVPN, есть специфичные настройки.
openssl req -days 5 -nodes -x509 -newkey rsa:1024 -keyout ca2.key -out ca2.crt

req означает, что мы запрашиваем программу по работе с сертификатами
-days 10 означает, что сертификат действителен 10 дней. Для реального
использования имеет смысл выбирать более большите числа.
-nodes означает, что создаваемый приватный ключ не будет зашифрован.
-new означает, что будет создаваться новый сертификат на основе информации из
конфигурационного файла.
-x509 означает, что создается самоподписанный корневой сертификат. Расширения
корневого сертификата описываются в конфигурационном файле.
-keyout ca.key означает, что ключ будет записан в файл ca.key
-out ca.crt означает, что сертификат будет записан в файл ca.crt
-config openssl.cnf означает, что конфигурационные параметры будут читаться из
файла openssl.cnf. Этот файл можно взять в папке easy-rsa дистрибутива OpenVPN
=====================================================================
Для создания закрытого ключа и сертификата для сервера OpenVPN нужно выполнить
такую последовательность команд:

touch index.txt
Создаем пустой файл index.txt

echo 01 > serial
Создаем файл serial с порядковым номером, равным 01

openssl req -days 30 -nodes -new -keyout server.key -out server.csr -extensions server -config openssl.cnf
ВАЖНО: Когда программа будет запрашивать Common Name - введем server
Этим мы создали новый ключ и сертификат для сервера. А затем подпишем его:

openssl ca -days 30 -out server.crt -in server.csr -extensions server -config openssl.cnf

ca означает, что используется программа для подписи. Программа узнает, какой
сертификат использовать из конфигурационного файла. Возможно также задание из
командной строки - см. опцию -cert
=====================================================================
Для создания ключей для клиентов нам надо сделать следующее:

openssl req -days 30 -nodes -new -keyout client1.key -out client1.csr -config openssl.cnf
ВАЖНО: Когда программа будет запрашивать Common Name - введем client1
Этим мы создали новый ключ и сертификат для первого клиента. Создание ключей
для других клиентов ничем не отличается. А затем подпишем его:

openssl ca -days 30 -out client1.crt -in client1.csr -config openssl.cnf
=====================================================================
Для того, чтобы OpenVPN работал, требуется создать файл параметров
Diffie Helman. Это делается так:

openssl dhparam -out dh1024.pem 1024
Где dh1024.pem - имя файла параметров, а 1024 - размер в битах
=====================================================================
На данном этапе созданы все ключи. Рассмотрим их более подробно.
ca.crt - корневой сертификат - несекретный файл, который должен присутствовать
на сервере и на каждом клиенте.
ca.key - корневой секретный ключ - самый секретный из всех файлов, который
должен быть только на подписывающей машине.
dh1024.pem - файл параметров Diffie Hellman - несекретный файл, требующийся
только на сервере.
server.crt - сертификат сервера - несекретный файл, требующийся
только на сервере.
server.key - секретный ключ сервера - секретный файл, требующийся только на
сервере.
clientN.crt - сертификат клиента N - несекретный файл, требующийся
только на клиенте N.
clientN.key - секретный ключ клиента N - секретный файл, требующийся только на
клиенте N.
=====================================================================


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "VPN & NAT и все такое"  +/
Сообщение от AleXgRey email(ok) on 16-Мрт-06, 14:12 
>>Всем привет.
>>Посоветуйте решение проблемы.
>>Хотелось что бы была возможность управлять оборудованием через Инет.
>>подключение к локалки по VPN.
>>читал что pptp через NAT под linux (без пропатченного iptables) не работает.(даже
>>убедился на практике)
>>а есть ли какая альтернатива vpn или другое решение.
>>причём желательно чтобы клиент был win и без дополнительного софта.
>>подключения к нету могут быть разные c реальными и нереальными :) IP.
>>
>>
>>зы если кто что знает про OpenVPN(для решения данного случия или сравнительно
>>с pptp) нацарапайте plz.
>
>1 Вариант: PyTTY и SSH
>2 Вариант: OpenVPN

Спасибо Большое!!!
а для OpenVPN на клиент WinXP нужно чё-нито ставить???


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "VPN & NAT и все такое"  +/
Сообщение от dimus email(??) on 17-Мрт-06, 09:54 

>Спасибо Большое!!!
>а для OpenVPN на клиент WinXP нужно чё-нито ставить???

Да.
Качаем отсюда: http://openvpn.net/download.html#stable

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру