Логин
Пароль
 

Регистрация
Напомнить пароль?
   
Поиск по сайту
 
 
Главное меню
 
Наши Друзья
• Чтобы вас добавили в список друзей напишите в ICQ 536-912
KPK.BY - все для PocketPC
Самый новый варез
Йога, гимнастика
 
Другое





Скачать Автокад archticture
портфолио мужчин
База вакансий: работа на дому по сборке ручек.


Настройка VPN на основе OpenVPN Разное
 (голосов: 0)
24 сентября 2006 Автор: ivas Просмотров: 1175
1. Предисловие..
Для большинства присутсвующих здесь VPN озночает организация шифрованого соеденения до сервера и получение в конечном итоге интернета не со своего ip-адресса.. Чтож, об том как это реализовать и будет описано в этой статье. В частности будет так же расмотренна установка мобильного клиента(т.е. можно записать на флэшку, и подключаться к впн пару кликами)

Что нам нужно: шелл с правами рута, желательно дедик. Рассматривать будем сервер с ОС FreeBSD

2. Устанавливаем и конфигурируем OpenVPN
Эта часть статьи почти полностью написана KaDaBR'ой(vbs скрипты и не большие переделки конкретно под freebsd с меня)

2.1 Устанавливаем OpenVPN на сервер

# wget http://openvpn.net/release/openvpn-2.0.7.tar.gz
# tar xvzf ./openvpn-2.0.7.tar.gz
# cd ./openvpn-2.0.7
# ./configure
# make
# make install
# rehash

2.2 Создаём ключи

после успешного завершения всех операций необходимо создать сертефикаты и ключи
Заходим в папку с исходниками OpenVPN и в ней:
# cd ./easy-rsa
# ee ./vars (в этом файлике внизу изменяете данные для подписи ключей под себя)
Внимание! Если у вас неустановлен баш, то перед следующими операциями нужно набрать в консоли "sh"
# . ./vars (загружаем эти переменные в оболочку)
# ./clean-all (отчищаем от старых сертификатов и ключей папку keys и создаем серийный и индексные файлы для новых ключей)
# ./build-ca (Создаем Certificate Authority для сервера)
# ./build-key-server server(Создаем сертификат X.509 для сервера)
# ./build-key client (Создаем сертификат X.509 для клиента)

Будьте внимательны при заполнени данных сертификатов, поле Common Name обязательно к заполнению, причем для сервера оно должно быть одно, а для клиента другое. Например в поле Common Name при генерации сертификата X.509 для сервера можно написать server, а для клиента соотвественно client

Создаем ключ Диффи Хельман(о нем можно почитать здесь: http://www.rsasecurity.com/rsalabs/node.asp?id=2248)
# ./build-dh
Теперь выходим из sh написав команду "exit"
И в конце создаем ключ для tls-аутификации
# openvpn --genkey --secret keys/ta.key

После всех этих манипуляций в папке keys получается много файлов:

ca.crt - Главный CA сертификат, этот файл нужен и клиенту и серверу
dh1024.pem - ключ Диффи Хельман, этот файл нужен только серверу
server.crt - Сертификат сервера, нужен только серверу
server.key - Ключ сервера, нужен только серверу (СЕКРЕТНЫЙ файл)
client.crt - Сертификат клиента, нужен только клиенту
client.key - Ключ клиента, нужен только клиенту (СЕКРЕТНЫЙ файл)
ta.key - TLS-ключ, нужен и клиенту и серверу
Следовально серверу достаются файлы ca.crt, dh1024.pem, server.crt, server.key, ta.key, а клиентуca.crt, dh1024.pem,client.crt, client.key, ta.key

2.3 Настраиваем сервер

Файл конфигурации можно разместить где угодно, например в /etc/openvpn, так же для удобства скопируем туда все ключи(ca.crt, dh1024.pem, server.crt, server.key, ta.key).
Создаем конфигурационный файл openvpn.conf следующего содержимого:
proto udp #Сервер слушает только udp-порт
local 100.100.100.100 #IP, с которого принимаем подключения
dev tap #используемый тип устройства tap
port 1194 #используемый порт 1194
tls-server #включаем TLS аутификацию
tls-auth ta.key 0 #указываем tls-ключ, и указываем 0 для сервера, а 1 для клиента
ca ca.crt #указываем файл CA
cert server.crt #указываем файл с сертификатом сервера
key server.key #указываем файл с ключем сервера
dh dh1024.pem #указываем файл Диффи Хельман
mode server #включаем режим сервера
ifconfig 192.168.231.5 255.255.255.0 #задаем IP-адрес сервера и маску подсети виртуальной сети
ifconfig-pool 192.168.231.6 192.168.231.20 #задаем диапазон IP-адресов выдаваемых клиентам
push "route-gateway 192.168.231.5" #отправляем клиентам строку, с указанием шлюза
push "dhcp-option DNS 192.168.231.5" #задаём адрес dns-сервера
duplicate-cn #ВАЖНО! разрешаем пользоватся одним и тем же ключем, нескольким клиентам одновременно, иначе прийдется для всех клиентов генерировать отдельные сертификаты.
cipher DES-EDE3-CBC #включаем шифрацию пакетов Triple-DES
user nobody #устанавливаем OpenVPN-демону права пользователя nobody
group nobody
persist-tun #Не закрывать и переоткрывать TUN\TAP устройство, после получения SIGUSR1 или ping-restart
persist-key #Не перечитывать ключи после получения SIGUSR1 или ping-restart
comp-lzo #Включить сжатие траффика
keepalive 10 120 #Проверка жизни клиента каждые 10 секунд, если в течении 120 секунд не пришел ответ, то закрывается соединение
verb 3 #Уровень информации для отладки


Всё, сервер настроен, теперь мы его запускаем: openvpn vpn.conf(или то имя, которое вы дали конфигу)

Если vpn незапуститься, и ошибка будет что типа "непподерживаеться tun\tap устройство" то делаем kldload if_tap и загружаем заного

2.4 Настраиваем клиент под Windows

Скачиваем клиента по ссылке http://openvpn.se/files/install_packages/openvpn-2.0.7-gui-1.0.3-install.exe





Устанавливаем необходимые компоненты:





OpenVPN User-Space Components
OpenVPN GUI
OpenSSL DLLs
TAP-Win32 Virtual Ethernet Adapter

Теперь приступим к настройке клиента. Создадим конфигурационный файл openvpn.ovpn в папке config (Например C:\Program Files\OpenVPN\config). И скопируем туда же все необходимые ключи для работы (ca.crt, dh1024.pem, client.crt, client.key, ta.key).





Содержимое файла openvpn.ovpn:

client #указываем OpenVPN, что необходимо работать в режиме клиента
proto udp #указываем, что сервер работает через udp
remote x.x.x.x #хост, к которому присоединяемся
port 1194 #порт к которому следует подключатся
dev tap #используемый тип устройства tap
resolv-retry infinite #количество повторов соединения
redirect-gateway #ВАЖНО! переназначить стандартный шлюз на шлюз VPN
persist-tun #Не закрывать и переоткрывать TUN\TAP устройство, после получения SIGUSR1 или ping-restart
persist-key #Не перечитывать ключи после получения SIGUSR1 или ping-restart
tls-client #указываем, что подключение осуществляется по средствам tls-ключа
tls-auth ta.key 1 #указываем tls-ключ, и указываем 0 для сервера, а 1 для клиента
dh dh1024.pem #указываем файл Диффи Хельман
ca ca.crt #указываем файл CA
cert client.crt #указываем файл с сертификатом клиента
key client.key #указываем файл с ключем клиента
cipher DES-EDE3-CBC # Triple-DES #включаем шифрацию пакетов
comp-lzo #Включить сжатие траффика
verb 3 #Уровень информации для отладки

Теперь можно проверить работу клиента.

Нажимаем правой кнопкой мышки по значку в трее. и выбираем Connect





Сначала вылезет вот такое окошко:





Следом если пройдет все хорошо, то в трее загорится зеленый значек с ip-адресом виртуального VPN соединения.





Отключаемся тем же путем что и соединялись только выбрав Disсonnect.

2.5 Мобилизация

Теперь приступим к мобилизации нашего OpenVPN дистрибутива.
Для начала скопируем на переносной носитель информации всю папку OpenVPN (C:\Program Files\OpenVPN)
Далее создадим в корне переносного носителя три VB-скрипта:

InstallVPN.vbs:

Set WSHShell = WScript.CreateObject("WScript.Shell")
set a = createobject("Scripting.FileSystemObject")
set f = a.getfolder(".")

WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN",f.path & "OpenVPN", "REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN\config_dir",f.path & "OpenVPN\config", "REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN\config_ext","ovpn", "REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN\exe_path",f.path & "OpenVPN\bin\openvpn.exe", "REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN\log_dir",f.path & "OpenVPN\log", "REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN\priority","NORMAL_PRIORITY_CLASS","REG_SZ"
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\OpenVPN\log_append",0, "REG_SZ"
aScript = WSHShell.run("OpenVPN\bin\tapinstall.exe install OpenVPN\driver\OemWin2k.inf tap0801")

UninstallVPN.vbs:

Set WSHShell = WScript.CreateObject("WScript.Shell")
aScript = WSHShell.run("OpenVPN\bin\tapinstall.exe remove tap0801")
WshShell.RegDelete "HKEY_LOCAL_MACHINE\Software\OpenVPN\"
WshShell.RegDelete "HKEY_LOCAL_MACHINE\Software\OpenVPN-GUI\"

RunVPN.vbs:

Set WSHShell = WScript.CreateObject("WScript.Shell")
aScript = WSHShell.run("OpenVPN\bin\openvpn-gui.exe")

Теперь, когда нам необходимо восользоватся VPN, вставляем переносной носитель информации, и запускаем файл InstallVPN.vbs.
Дожидаемся установки драйвера TUN-TAP Win32, далее запускаем RunVPN.vbs.
После запуска OpenVPN GUI, выбираем Connect, и насдаждаемся мобильным VPN.

(c) KaDaBRa(icq 161222, email: kadabra@iks.ru) 2006

3. Выдаём ВПН'у интернет

ЗЫ сразу говорю что этот способ не претендует на лучшее решение=)

Ядро должно быть скомпиленно со следующими опциями:
options IPFIREWALL
options IPDIVERT
options IPFIREWALL_FORWARD
(
ipfw впнриципе можно подгрузить и модулем:
kldload ipfw; ipfw add 65000 allow ip from any to any
А если у вас FreeBSD >= 6.0 то перекомпиляция ядра может вообще непонадобиться:
kldload ipdivert
)

В /etc/rc.conf прописываем следующие строчки:

firewall_enable="YES"
firewall_type="/etc/firewall.conf"
firewall_quiet="YES"
firewall_logging="YES"
firewall_flags=""
gateway_enable="YES"
natd_enable="YES"

Содержимое /etc/firewall.conf :
add 65000 allow ip from any to any

Нужно перезагрузиться

Далее:

natd -a х.х.х.х -p 8668 # где x.x.x.x - внешний ip-адресс сервера
ipfw add 10 divert 8668 ip from 192.168.231.0/24 to any
ipfw add 20 fwd y.y.y.y ip from x.x.x.x to any # где y.y.y.y - дефолтный гейт(можно посмотреть в rc.conf) а x.x.x.x тот самый адресс, который указывали в первой команде
ipfw add 30 divert 8668 ip from any to x.x.x.x # думаю что такое x.x.x.x всем понятно

Вот вообщем то и всё, теперь покрайней мере вы сможете попинговать инетовские адреса с клиента, а если правильно указали днс сервера то и получите полноценный мобильный клиент со скрытием ip - адресса и шифрацией трафика



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Похожие новости:
  • OpenVPN 2.1 RC7
  • OpenVPN 2.1 RC7
  • Пожизненный ключ для NOD32!!!!!
  • Small HTTP Server 3.05.43 rus+eng+serial
  • Nod 32 - пожизненная фиксация

  •  

    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


    Реклама


    Популярные новости
    » Две девахи на кастинге у Хряка.
    » Правила оформления!!
    » 2 тёлки на одного парня!!!
    » Upgrade №48 (397) декабрь 2008
    » Adriano Celentano - L'animale (2008)
    » секс с красивой блондинкой
    » Deer Avenger 4 (русская версия)
    » Действуй, Маня!
    » Computer Bild №24 (декабрь 2008)
    » Темы для Windows XP, 25 супер тем!!!

    Полезное

    Архивы новостей
    Январь 2009 (87)
    Декабрь 2008 (1538)
    Ноябрь 2008 (990)
    Октябрь 2008 (935)
    Сентябрь 2008 (1004)
    Август 2008 (999)
    Июль 2008 (590)
    Июнь 2008 (976)
    Май 2008 (1859)
    Апрель 2008 (2536)
    Март 2008 (2679)
    Февраль 2008 (5875)
    Январь 2008 (2687)
    Декабрь 2007 (1358)
    Ноябрь 2007 (1422)
    Октябрь 2007 (307)
    Сентябрь 2007 (174)
    Август 2007 (10)
    Июль 2007 (2)
    Июнь 2007 (107)
    Май 2007 (241)
    Апрель 2007 (118)
    Март 2007 (223)
    Февраль 2007 (161)
    Январь 2007 (100)
    Декабрь 2006 (504)
    Ноябрь 2006 (792)
    Октябрь 2006 (170)
    Сентябрь 2006 (47)
       
     
    © 2008 All4Y.info | При перепечатке материалов с сайта, ссылка на источник - обязательна.