Установка и использование OpenVPN

Discussion in 'Безопасность и Анонимность' started by OptimaPrime, 27 Jul 2007.

  1. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    Один из самых лучших способов, если не самый лучший способ скрыть свой реальный IP-адрес в интернете, это использование VPN(Virtual Private Network). На данный момент существует много разных сервисов предоставляющих доступ к VPN, но берут за это не малые деньги, которые достаются потом и кровью.
    Можно конечно купить VPN-аккаунт у одного из таких сервисов, а можно и купить шелл и самому поставить VPN сервер, и так же сидеть анонимно в интернете. А если нет разницы, то зачем платить больше?
    В данной статье я расскажу о том, как можно легко и быстро установить VPN-сервер на linux box, и сделать мобильный клиент для Windows, на базе OpenVPN

    Конечно для некоторых это может показаться долгим и утомительным процессом, но этот процесс надо будет выполнить один раз, а следом он себя быстро оправдает. Начнем с сервера:
    - Скачивание и установка OpenVPN
    - Создание сертификатов и ключей
    - Настройка серверной части OpenVPN

    Подготовка к установке сервера:
    Необходимо проверить чтобы в ядре был был драйвер TAP\TUN:
    # gzcat /proc/config.gz | egrep tun
    или
    # modprobe tun;lsmod | grep tun
    Если такового не имеется, то устанавливаем:
    # cd /usr/src/linux
    # make menuconfig
    в нем выбираем: Device Drivers ---> Networking support ---> Universal TUN/TAP device driver support (Тут можете по желанию выбрать модуль или в ядро, я лично предпочитаю модулем)
    # make; make install; make modules_install
    Далее проверяем что получилось:
    # modprobe tun;lsmod | grep tun
    Так же необходимо проверить чтобы был установлен LZO, для комперессии траффика:
    Например:
    # locate lzo.so
    Если такового нету, то ставим:
    # wget http://www.oberhumer.com/opensource/lzo/do...lzo-2.02.tar.gz
    # tar xvzf ./lzo-2.02.tar.gz
    # cd ./lzo-2.02
    # ./configure
    # make
    # make install

    1. И так, скачиваем сервер распаковываем, конфигурируем и устанавливаем.
    # 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

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

    Заходим в папку с исходниками OpenVPN и в ней:
    # cd ./easy-rsa
    # vi ./vars (в этом файлике внизу изменяете данные для подписи ключей под себя)
    # . ./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.

    Создаем ключ Диффи Хельман(о нем можно почитать тут)
    # ./build-dh

    И в конце создаем ключ для tls-аутификации
    # openvpn --genkey --secret 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

    3. Теперь настало время настройки сервера.

    Файл конфигурации можно разместить где угодно, например в /etc/openvpn, так же для удобства скопируем туда все ключи(ca.crt, dh1024.pem, server.crt, server.key, ta.key).
    Создаем конфигурационный файл openvpn.conf следующего содержимого:
    PHP:
    proto udp #Сервер слушает только udp-порт
    4. так же необходимо настроить ip-fowrwarding:

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    5. Настроим фаервол:
    # iptables -I FORWARD 1 -i tap0 -p tcp -j ACCEPT

    Всё, сервер настроен, теперь мы его запускаем:

    Из папки с исходниками OpenVPN/sample-scripts переименовываем файл openvpn.init в openvpn и копируем в /etc/init.d/

    Далее запускаем сервер:
    # /etc/init.d/openvpn start

    Особый момент: данный скрипт запускает отдельный процесс для каждого файла .conf в папке /etc/openvpn.

    И так приступим к инсталяции клиента под Windows.

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

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

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

    Содержимое файла openvpn.ovpn:
    PHP:
    client #указываем OpenVPN, что необходимо работать в режиме клиента
    Теперь можно проверить работу клиента.
    Нажимаем правой кнопкой мышки по значку в трее. и выбираем Connect

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

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

    InstallVPN.vbs:
    PHP:
    Set WSHShell WScript.CreateObject("WScript.Shell")
    UninstallVPN.vbs:
    PHP:
    Set WSHShell WScript.CreateObject("WScript.Shell")
    RunVPN.vbs:
    PHP:
    Set WSHShell WScript.CreateObject("WScript.Shell")
    Теперь, когда нам необходимо восользоватся VPN, вставляем переносной носитель информации, и запускаем файл InstallVPN.vbs.
    Дожидаемся установки драйвера TUN-TAP Win32, далее запускаем RunVPN.vbs.
    После запуска OpenVPN GUI, выбираем Connect, и насдаждаемся мобильным VPN.
    После окончания работы не забываем удалить все следы присутствия VPN, выключив OpenVPN-GUI и запустив скрипт UninstallVPN.vbs
    (c)
     
    3 people like this.
  2. Sov1et

    Sov1et Elder - Старейшина

    Joined:
    23 Feb 2006
    Messages:
    60
    Likes Received:
    53
    Reputations:
    20
    Мда ... лучше бы что нить нормального написал .. чем заниматься копи-пастом... Взял бы какой нить вопрос и попытался его изучить и раскрыть...
     
  3. _Master-

    _Master- Banned

    Joined:
    30 May 2007
    Messages:
    76
    Likes Received:
    64
    Reputations:
    13
    еще бы дал бы ссылку на видео из сотового журнала ксакеп :) Там как раз описывался процесс установки и настройки впн )
     
    1 person likes this.
  4. A110ut

    A110ut Elder - Старейшина

    Joined:
    31 Dec 2005
    Messages:
    505
    Likes Received:
    263
    Reputations:
    92
    бред бред бред. ето даже нельзя назвать тупым описание конфигов. работоспособность сего маразма проверять не стану, судя по отсутствию конфигурационных данных, юзаются какие-то ущербные настройки по дефолту. вывод: некоторым лучше не заглядывать дальше видовой control panel

    вобщем чисто ксекаповский стаиль. ачатовский копипастер судя по всему сей набор символов даже не читал (про проверку работоспособности молчу). хотя, гораздо хуже если все-таки читал и вносил поправки типа "proto udp #Сервер слушает только udp-порт". статья запощена в раздел "безопасность" в робкой надежде отхватить пару тройку плюсиков.
    общая оценка копипастеру - 3

    up: тем кого интересовало изучение данной темы, советую почитать статью "OpenVPN или кроссплатформенная частная сеть" из Системного Администратора
     
    #4 A110ut, 28 Jul 2007
    Last edited: 28 Jul 2007