Конфигуриране на OpenVPN сървър с рутер Linksys WRT54GL

от ComelSoftWiki

(Разлики между версиите)
Направо към: навигация, търсене
Ред 45: Ред 45:
Инсталация на OpenVPN върху клиентския компютър
Инсталация на OpenVPN върху клиентския компютър
-
Тъй като вероятно по-голямата част от отдалечените потребители ще ползват Windows като ОС, тук ползваме за примера Win-версията на OpenVPN. Изтеглете я от [http://openvpn.net/index.php/open-source/downloads.html сайта на OpenVPN] и я инсталирайте. Програмата е съвсем малка и се инсталира без никакви особености. В края на инсталацията ще разполагате с още един виртуален мрежов интерфейс.
+
Тъй като вероятно по-голямата част от отдалечените потребители ще ползват Windows като ОС, тук ползваме за примера Win-версията на OpenVPN. Изтеглете я от [http://openvpn.net/index.php/open-source/downloads.html сайта на OpenVPN] и я инсталирайте. Програмата е съвсем малка и се инсталира без никакви особености. Оставете всички опции за инсталация както са маркирани по подразбиране в инсталатора. В края на инсталацията ще разполагате с още един виртуален мрежов интерфейс.
Ред 51: Ред 51:
Генериране на файловете за автентикация и конфигуриране на VPN сървъра
Генериране на файловете за автентикация и конфигуриране на VPN сървъра
-
Това е, общо взето, най-трудоемката част от целия процес, но хубавото е че тя се прави само веднъж.
+
Това е, общо взето, най-трудоемката част от целия процес, но хубавото е, че тя се прави само веднъж.
Необходимо е да се отбележи, че освен с PKI инфраструктурата (популярен метод за автентикация с частни ключове и сертификати), OpenVPN може да работи също и с предварително генериран ключ (preshared key), както и с външни модули за оторизация с потребителски имена и пароли и дори със смарт карти и т.нар. дву-факторна автентикация. PKI инфраструктурата е популярен и изпитан метод за автентикация със сертификати и частни ключове, не изисква да помните имена и пароли, а просто да разполагате със сертификат и частен ключ под формата на файлове записани на диска на клиентския компютър.
Необходимо е да се отбележи, че освен с PKI инфраструктурата (популярен метод за автентикация с частни ключове и сертификати), OpenVPN може да работи също и с предварително генериран ключ (preshared key), както и с външни модули за оторизация с потребителски имена и пароли и дори със смарт карти и т.нар. дву-факторна автентикация. PKI инфраструктурата е популярен и изпитан метод за автентикация със сертификати и частни ключове, не изисква да помните имена и пароли, а просто да разполагате със сертификат и частен ключ под формата на файлове записани на диска на клиентския компютър.
 +
Генерирането на всички сертификати ще извършим на компютъра с Windows (клиентския компютър), но това е само за удобство. Те могат да се генерират на произволна машина с инсталиран OpenVPN.
 +
 +
За да започнем с генерирането на файловете, отваряме инсталационната директория на OpenVPN в Program Files, след което отваряме папката easy-rsa и стартираме файла init-config.bat. Той от своя страна ще създаде файловете vars.bat и openssl.cnf. Редактираме файла vars.bat и задавайки стойности на променливите KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, и KEY_EMAIL в неговия край. Важно е всички те да са попълнени, тъй като се подават като автоматични параметри за конфигуриране на сертификатите впоследствие. След като направим това, стартираме файловете vars.bat и clean-all.bat.
 +
 +
След това генерираме CA (certificate authority) частния ключ и сертификата, с които пък ще подписваме сертификатите на клиента и сървъра. За целта стартираме файла build-ca.bat. Този скрипт ще генерира частния ключ ca.key и сертификата ca.crt в подпапката keys. Този сертификат е единствения файл, който трябва да присъства и при всеки клиент и при сървъра. Ще видите, че в процеса на конфигурацията му трябва да попълните няколко полета, част от които се зареждат с автоматични стойности, които въведохме в променливите от vars.bat. Остава да въведете стойност на полето Common Name.
 +
 +
Следващата стъпка е да генерираме частен ключ и сертификат за VPN сървъра. За целта също имаме готов скрипт, изпълняваме командата:
 +
 +
build-key-server server
 +
 +
Отново на екрана ще видите подобен процес с познатите стойности за променливите. Отговорете с Y на последните два въпроса и просто натиснете Enter на редовете питащи за парола и optional company name. В резултат в папката keys ще се появят два нови файла: server.crt и server.key. Те са необходими само за сървъра и след като ги въведем в полетата на уеб-интерфейса на рутера, могат (и следва) да бъдат изтрити от клиентския компютър. Това се отнася и за файла ca.key.
 +
 +
Остава да генерираме сертификат и ключ за клиентския компютър. За целта използваме скрипта build-key:
 +
 +
build-key client1
 +
 +
Ще видите почти същата процедура както при генериране на сървърните сертификат и частен ключ. След това в папката keys ще се появят още два файла - client1.key и client1.crt. Ако Ви трябват още клиентски сертификати (ще се свързват повече от 1 клиенти), можете да ги генерирате с командите build-key client2, build-key client3 и т.н. Просто внимавайте имената да са различни и да отговаряте със съответното име за полето Common Name.
 +
 +
Накрая остава да генерираме един последен файл с [http://www.rsasecurity.com/rsalabs/node.asp?id=2248 Diffie-Hellman параметрите] за OpenVPN сървъра:
 +
 +
build-dh.bat
 +
 +
Изпълнението на този скрипт може да отнеме около минута-две, така че бъдете търпеливи. В резулат ще получите файла dh1024.pem, отново в директорията keys.
 +
 +
Връщайки се към ограничението с размера на nvram паметта на рутера, тук вече можем да сметнем колко байта ще са ни необходими от нея - съберете размера на файловете ca.crt, server.key, server.crt, dh1024.pem. Най-добре обединете всички тези файлове в един времен отделен текстов файл и пребройте символите в него. Към тях следва да се добавят и символите в полето OpenVPN Config на уеб-интерфейса (описано е по-долу). Сумарният им размер трябва да е по-малък от свободната nvram памет или конфигурацията няма да работи и възможно рутерът да стане неизползваем. Ето защо бъдете внимателни!
 +
 +
Сега вече разполагаме с всичко необходимо и може да преминем към конфигурацията на сървъра и клиента.
 +
 +
 +
Конфигурация на OpenVPN сървъра:
 +
 +
Отворете уеб-интерфейса на Вашия рутер, след което минете в менюто Services-VPN. В секцията OpenVPN Daemon, изберете Enable за Start OpenVPN, както и Wan Up за Start Type. В полето Public Server Cert трябва да влезе съдържанието на файла ca.crt, така че отворете този файл с обикновен текстов редактор и внимателно изкопирайте цялото му съдържание в клипборда, след което го вмъкнете в уеб-интерфейса.
 +
 +
Полето Certificate Revoke List оставете празно.
 +
 +
В полетата Public Client Cert, Private Client Key и DH PEM трябва да се попълни съдържанието на файловете, съответно server.crt, server.key и dh1024.pem

Версия от 12:34, 23 ноември 2009

С постоянно подобряващото се качество на достъпа до Интернет, възможностите за отдалечена връзка с офис LAN мрежата стават все по-примамлив вариант за работа на множество служители.

Възможността да работите с локалната мрежа на офиса от собствения си дом или от хотелската стая носи очевидни удобства и предимства и Ви позволява да сте в крак със събитията на работното място без оглед на това къде се намирате физически.

Ето защо виртуалните частни мрежи (VPN) вече се ползват масово като удобен начин за защитен достъп до офис мрежата през Интернет. Подробното описание на основните концепции стоящи зад VPN технологиите би отнело много време, затова тук само ще посочим основните VPN имплементации, масово използвани днес. Това са SSL, IPSec и PPTP.

Рутерите на Linksys притежават VPN функционалност от много години насам - първите IPSec съвместими устройства, BEFSX41/BEFVP41/RV042/RV082 и до днес се използват като средство за защитено свързване на офис мрежи или на отделни потребители. Някои от тях (моделите RV042/RV082) в допълнение към IPSec функциите разполагат и с вграден PPTP сървър, конфигурацията на който по правило е много по-лесна от IPSec настройките и който е удобно (но не дотолкова надеждно) средство за отдалечено свързване на единични потребители.

OpenVPN е напълно безплатен софтуер, проект с отворен код, базиран на възможностите на фамилията протоколи SSL. Предимството му спрямо IPSec се крие в неговото много по-лесно имплементиране в различни операционни системи, а спрямо PPTP - в по-добрата защита.

OpenVPN може да се инсталира като клиентски или сървърен режим под Linux/Unix/Windows/Mac с почти идентичен начин за конфигурация, а тук ще Ви покажем как да го използвате като част от фърмуера на Вашия маршрутизатор Linksys WRT54GL.

Идеята е да демонстрираме как съвсем безплатно може да получите модерно средство за отдалечен VPN достъп с най-популярния SOHO рутер на Linksys.

Крайната ни цел е да получите възможност, докато сте далеч от дома/офиса, да можете да се свържете към домашната/офис мрежата през Интернет чрез защитен канал (тунел), да получите IP адрес от локалната мрежа чрез DHCP и да можете да си комуникирате с останалите мрежови устройства по същия начин, по който бихте правили това ако сте свързани локално в мрежата.


Какво е необходимо:

Рутер Linksys WRT54GL Копие от VPN версията на фърмуера с отворен код DD-WRT (v. 24SP2), която съдържа инсталиран предварително OpenVPN Копие от OpenVPN софтуера за всеки от отдалечените компютри, от които ще се свързвате към рутера


Инсталация на фърмуера:

Ако рутерът Ви ползва оригиналния фърмуер на Linksys, изтеглете от сайта на DD-WRT версията mini, след което я инсталирайте на рутера. След като тя се инсталира върху рутера, възстановете фабричните му настройки и инсталирайте VPN версията на DD-WRT. Това ще Ви спести труда по ръчното инсталиране на OpenVPN върху рутера. След като качите VPN-фърмуера, добре е отново да върнете устройството към фабричните му настройки и да започнете конфигурацията на чисто.

След като новия фърмуер вече работи, направете необходимите конфигурации за достъп до Интернет, безжична мрежа, защитна стена и т.н.

Важна проверка: Тъй като за автентикацията на клиентите на рутера ще използваме сертификати, необходимо е да се уверим че разполагаме с достатъчно свободна nvram за съхранението им. Работа е там, че подаваме сертификатите през уеб-интерфейса на рутера, а всичко което се записва през уеб-интерфейса се пази в nvram паметта. Има голяма вероятност ако тази област се препълни, рутерът да стане неизползваем, така че е много важно да знаем предварително с колко свободна памет разполагаме и дали тя е достатъчна за нашите цели. Как да разберем това? По подразбиране фърмуерът стартира telnet сървър на рутера и Вие можете да се свържете към него от LAN мрежата. Ако ползвате Windows, oтворете команден прозорец и (ако ползвате стандартния IP адрес на рутера) напишете:

telnet 192.168.1.1

След като въведете име и парола, попадате в командния шел на фърмуера на рутера. Там изпълнете командата:

root@ovpn:~# nvram show | grep size size: 23566 bytes (9202 left)

Както е видно, в нашия случай разполагаме с 9202 свободни байта. За сертификатите и конфигурационния файл на OpenVPN сървъра са необходими между 6000 и 7000 байта и ако не разполагате с толкова, по-добре НЕ ПРОДЪЛЖАВАЙТЕ НАТАТЪК. По-надолу в страницата сме описали как се генерират сертификатите/ключовете. Те се съхраняват в текстови файлове, така че можете просто да обедините необходимите за рутера файлове в текстов редактор и да видите колко памет ще заемат при Вашия случай.


Инсталация на OpenVPN върху клиентския компютър

Тъй като вероятно по-голямата част от отдалечените потребители ще ползват Windows като ОС, тук ползваме за примера Win-версията на OpenVPN. Изтеглете я от сайта на OpenVPN и я инсталирайте. Програмата е съвсем малка и се инсталира без никакви особености. Оставете всички опции за инсталация както са маркирани по подразбиране в инсталатора. В края на инсталацията ще разполагате с още един виртуален мрежов интерфейс.


Генериране на файловете за автентикация и конфигуриране на VPN сървъра

Това е, общо взето, най-трудоемката част от целия процес, но хубавото е, че тя се прави само веднъж.

Необходимо е да се отбележи, че освен с PKI инфраструктурата (популярен метод за автентикация с частни ключове и сертификати), OpenVPN може да работи също и с предварително генериран ключ (preshared key), както и с външни модули за оторизация с потребителски имена и пароли и дори със смарт карти и т.нар. дву-факторна автентикация. PKI инфраструктурата е популярен и изпитан метод за автентикация със сертификати и частни ключове, не изисква да помните имена и пароли, а просто да разполагате със сертификат и частен ключ под формата на файлове записани на диска на клиентския компютър. Генерирането на всички сертификати ще извършим на компютъра с Windows (клиентския компютър), но това е само за удобство. Те могат да се генерират на произволна машина с инсталиран OpenVPN.

За да започнем с генерирането на файловете, отваряме инсталационната директория на OpenVPN в Program Files, след което отваряме папката easy-rsa и стартираме файла init-config.bat. Той от своя страна ще създаде файловете vars.bat и openssl.cnf. Редактираме файла vars.bat и задавайки стойности на променливите KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, и KEY_EMAIL в неговия край. Важно е всички те да са попълнени, тъй като се подават като автоматични параметри за конфигуриране на сертификатите впоследствие. След като направим това, стартираме файловете vars.bat и clean-all.bat.

След това генерираме CA (certificate authority) частния ключ и сертификата, с които пък ще подписваме сертификатите на клиента и сървъра. За целта стартираме файла build-ca.bat. Този скрипт ще генерира частния ключ ca.key и сертификата ca.crt в подпапката keys. Този сертификат е единствения файл, който трябва да присъства и при всеки клиент и при сървъра. Ще видите, че в процеса на конфигурацията му трябва да попълните няколко полета, част от които се зареждат с автоматични стойности, които въведохме в променливите от vars.bat. Остава да въведете стойност на полето Common Name.

Следващата стъпка е да генерираме частен ключ и сертификат за VPN сървъра. За целта също имаме готов скрипт, изпълняваме командата:

build-key-server server

Отново на екрана ще видите подобен процес с познатите стойности за променливите. Отговорете с Y на последните два въпроса и просто натиснете Enter на редовете питащи за парола и optional company name. В резултат в папката keys ще се появят два нови файла: server.crt и server.key. Те са необходими само за сървъра и след като ги въведем в полетата на уеб-интерфейса на рутера, могат (и следва) да бъдат изтрити от клиентския компютър. Това се отнася и за файла ca.key.

Остава да генерираме сертификат и ключ за клиентския компютър. За целта използваме скрипта build-key:

build-key client1

Ще видите почти същата процедура както при генериране на сървърните сертификат и частен ключ. След това в папката keys ще се появят още два файла - client1.key и client1.crt. Ако Ви трябват още клиентски сертификати (ще се свързват повече от 1 клиенти), можете да ги генерирате с командите build-key client2, build-key client3 и т.н. Просто внимавайте имената да са различни и да отговаряте със съответното име за полето Common Name.

Накрая остава да генерираме един последен файл с Diffie-Hellman параметрите за OpenVPN сървъра:

build-dh.bat

Изпълнението на този скрипт може да отнеме около минута-две, така че бъдете търпеливи. В резулат ще получите файла dh1024.pem, отново в директорията keys.

Връщайки се към ограничението с размера на nvram паметта на рутера, тук вече можем да сметнем колко байта ще са ни необходими от нея - съберете размера на файловете ca.crt, server.key, server.crt, dh1024.pem. Най-добре обединете всички тези файлове в един времен отделен текстов файл и пребройте символите в него. Към тях следва да се добавят и символите в полето OpenVPN Config на уеб-интерфейса (описано е по-долу). Сумарният им размер трябва да е по-малък от свободната nvram памет или конфигурацията няма да работи и възможно рутерът да стане неизползваем. Ето защо бъдете внимателни!

Сега вече разполагаме с всичко необходимо и може да преминем към конфигурацията на сървъра и клиента.


Конфигурация на OpenVPN сървъра:

Отворете уеб-интерфейса на Вашия рутер, след което минете в менюто Services-VPN. В секцията OpenVPN Daemon, изберете Enable за Start OpenVPN, както и Wan Up за Start Type. В полето Public Server Cert трябва да влезе съдържанието на файла ca.crt, така че отворете този файл с обикновен текстов редактор и внимателно изкопирайте цялото му съдържание в клипборда, след което го вмъкнете в уеб-интерфейса.

Полето Certificate Revoke List оставете празно.

В полетата Public Client Cert, Private Client Key и DH PEM трябва да се попълни съдържанието на файловете, съответно server.crt, server.key и dh1024.pem

Лични инструменти