Статьи Open Vpn своими руками

Discussion in 'Статьи' started by Troop, 27 Dec 2009.

  1. Troop

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

    Joined:
    1 Feb 2008
    Messages:
    32
    Likes Received:
    20
    Reputations:
    10
    Ну вот думаю что все мы типа хацкеры и пора обзавестить своим собственым Open Vpn сервером !!!
    Для чего он вам будет нужен решайте сами
    как минимум безопасность , как максимум
    просто свободное средство для извлечения прибыль ))
    ЗА СТАТЬЮ ПРОШУ НЕ ПИНАТЬ ПИШУ НА КОЛЕНКЕ
    но всетаки думаю что доступным языком ))
    Ну всетаки начнем
    1. Что нам понадобиться так это простой выделенный сервер либо виртуальный сервер по технологии Virtuozo....
    Для экспериментов я взял за 150 рублей виртуалку
    на firstvds.ru (linux debian)
    и так начнем
    заходим под root на наш драгоценный сервер
    и начинаем производить хитрые манипуляции
    если у вас по моим рекомендациям стоит всетаки линкус дебиан то в консоли просто пишем (незабываем зайти под рутом)

    PHP:
    # apt-get install openvpn
    теперь ваш сервак считывает предустановленные пакеты и инсталит openvpn к вам на сервер

    Теперь нужно создать папку
    /etc/openvpn
    (если она еще не создана) и скопировать туда папку с сертификатами и конфигами. Примеры того и другого лежат в корне архива .tar.gz, если была установка из source, иначе они будут разбросаны по всей системы на усмотрение того, кто делал rpm. Вот некоторые варианты, где можно найти эти папки:

    PHP:
    /etc/share/openvpn /usr/share/doc/openvpn 
    /usr/share/doc/packages/openvpn
     
    Итак, надо скопировать папки easy-rsa и sample-config-files. На самом деле, примеры конфигов можно не копировать, а скопировать оттуда только файл server.conf.


    Идем в /etc/openvpn/easy-rsa и выполняем следующим команды:

    PHP:
    . ./vars
      
    ./clean-all 
     
    ./build-ca
    потом наш сервак начнет в инстале спрашивать всяческие даные,лучше отвечать по существу
    так как есть риск забыть данные в конфигах
    а это на самом деле чревато!
    выполняем в консоли следующее

    PHP:
    ./build-key-server server
    Аналогично, отвечать нужно на все вопросы.

    PHP:
    ./build-dh
    Теперь делаем сертификат для клиента. Если у нас несколько клиентов, то повторяем этот шаг несколько раз, меняя номер клиента.

    PHP:
    ./build-key client1
    PHP:
    ./build-key client2
    PHP:
    ./build-key client3
    PHP:
    ./build-key client etc
    Важно с поле Common Name писать соответствующее имя, например client1

    Настраиваем конфиг для сервера. Он должен находится в /etc/openvpn и называтся server.conf. Все что нам нужно изменить в примера конфига:


    ca /etc/openvpn/easy-rsa/keys/ca.crt
    cert /etc/openvpn/easy-rsa/keys/server.crt
    key /etc/openvpn/easy-rsa/keys/server.key
    dh /etc/openvpn/easy-rsa/keys/dh1024.pem
    push "redirect-gateway def1"
    push "dhcp-option DNS ваш dns"
    push "dhcp-option WINS ваш dns"
    user nobody
    group nobody



    Сохраняем файл.

    Выполняем

    PHP:
    iptables -t nat -A POSTROUTING -s МАСКА_ПОДСЕТИ/-o venet0 -j SNAT --to-source IP_АДРЕС_ВАШЕГО_ВДС
    запускаем VPN

    /etc/init.d/openvpn start

    Теперь ставим OpenVPN клиент для Windows. Его можно скачать здесь: http://openvpn.se. После установки заходим в папку установки программы, например: C:\Program and Files\OpenVPN\sample-config. Открываем текстовым редактором (блокнотом) файл client.ovpn и пишем в строке

    PHP:
    remote my-server-1 1194 (тут выбираеться порт я у себя ставил 5000)
    IP своего сервера вместо my-server-1. Больше ничего не трогаем, сохраняем и закрываем файл.

    Последнее что надо сделать, это скачать с сервера 3 файла сертификатов в эту же папку, где только что редактировали файл. Итак, скачать нужно следующие файлы:

    PHP:
    /etc/openvpn/easy-rsa/keys/ca.crt  
    /etc/openvpn/easy-rsa/keys/client1.crt 
     
    /etc/openvpn/easy-rsa/keys/client1.key
    client1 соответственно нужно заменить на нужный номер клиента. После этого переименовываем файлы, убирая цифры номера клиент, т.е. из client1.crt делаем client.crt и т.д.

    Все готово для подключения и проверки.

    Нажимаем правой кнопкой на файл client.ovpn и выбираем Start OpenVPN on this config file. Убеждаемся, что соединение установлено правильно


    Все написанго на коленке и все работает, если есть вопросы
    пожалуйста пишите в ЛС постараюсь по мере возможности ответить !
    и по существу дополнить статью!
     
    #1 Troop, 27 Dec 2009
    Last edited: 27 Dec 2009
    4 people like this.
  2. shellz[21h]

    shellz[21h] Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    311
    Likes Received:
    68
    Reputations:
    6
    Таких статей массу, напишу лучше как поднять дабл впн)
     
  3. Troop

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

    Joined:
    1 Feb 2008
    Messages:
    32
    Likes Received:
    20
    Reputations:
    10

    запросто )
    там несложно маску бросить ,но не сегодня )))
     
    #3 Troop, 27 Dec 2009
    Last edited: 27 Dec 2009
  4. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Это типа тот же ВПН? Канал?
    Я хотел бы еще спросить: чем отличается OpenVPN и ДаблВПН? и какие еще есть виды?
    И вот еще: Если я сделаю OpenVPN сервер на дедике с каналом 1мбит и этим сервером будут пользоваться 2-3 людей, то насколько понижается скорость?
     
    1 person likes this.
  5. Tigger

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

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    Да, таких статей много слишком. Ничего нового)
    А вот про дабл ВПН)
     
  6. e[X]theta[M]ine

    Joined:
    21 Dec 2009
    Messages:
    0
    Likes Received:
    18
    Reputations:
    16
    CyberHunter, поделится на 3 человек.
     
  7. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Ну а остальные вопросы?
     
  8. PSalm69

    PSalm69 [ радиоверсия ]

    Joined:
    12 Jul 2005
    Messages:
    891
    Likes Received:
    300
    Reputations:
    530
    http://www.lissyara.su/archive/ipsec_old/ - Double-VPN
     
    2 people like this.
  9. PSalm69

    PSalm69 [ радиоверсия ]

    Joined:
    12 Jul 2005
    Messages:
    891
    Likes Received:
    300
    Reputations:
    530
    Писал давненько для знакомого, скил "обычный юзер" *nix -ов.
    Такого пошагово инструктажа не видел :).



    ##################################################
    # #
    # МАНУАЛ ПО УСТАНОВКЕ OPENVPN #
    # from PSalm69 & Nova #
    # chkconfig --del openvpn :) #
    ##################################################


    1) cat /etc/redhat-release // смотрим какая ось стоит на серваке. Желательно CentOS - но настройка в основном везде идентична.

    2) yum install openvpn // запускаем инсталл впн -а , должна создаться папка по адресу /etc/openvpn , если пишет что не удается найти пакет openvpn то нужно добавить в /etc/yum.conf
    [dag]
    name=Dag RPM Repository for Red Hat Enterprise Linux
    baseurl=http://apt.sw.be/redhat/el$releasever/en/i386/dag/
    gpgcheck=0
    enabled=1

    после повторить yum install openvpn

    3) cd /etc/openvpn;ls -la // переходим в эту директория для установки нашего впн -а

    4) touch server.conf // командой touch созаём файл server.conf

    5) vi server.conf // командой vi редактируем файл server.conf Примечание: i - войти в режим изменения содержимого; Esc - выйти из режима редактирования; :wq ENTER- выйти с сохранением содержимого; :q! ENTER - выйти без сохранения
    // ЭТО ВНОСИМ В ФАЙЛ server.conf

    port 443
    proto tcp
    dev tap
    cipher DES-EDE3-CBC
    reneg-sec 60
    ca /etc/openvpn/easy-rsa/keys/ca.crt
    cert /etc/openvpn/easy-rsa/keys/server.crt
    key /etc/openvpn/easy-rsa/keys/server.key
    dh /etc/openvpn/easy-rsa/keys/dh2048.pem
    server 10.10.200.0 255.255.255.0
    client-config-dir ccd
    push "dhcp-option DNS 222.222.222.222"
    push "dhcp-option DNS 22.22.222.222"
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway"
    keepalive 10 120
    persist-key
    persist-tun
    comp-lzo
    verb 0

    6) find / -name easy-rsa // выполняем поиск easy-rsa, должно примерно вывести такое /usr/share/doc/openvpn-2.0.5/easy-rsa

    7) cd /usr/share/doc/openvpn-2.0.5/easy-rsa;ls -la // переходим в директорию easy-rsa и выводим листинг файлов в ней ls -la. Видим там папку 2.0

    8) mv /usr/share/doc/openvpn-2.0.5/easy-rsa/2.0 /etc/openvpn/easy-rsa // копируем папку 2.0 в директорию /etc/openvpn/ и переименовываем её в easy-rsa. После этой команды всё будет именно так :)

    9) cd /etc/openvpn/easy-rsa;chmod 777 *;ls -la // переходим в папку easy-rsa и наделяем на все файлы в этой папке правами 777 и делаем листинг. Видем там файл vars !!!

    10) vi vars // редактируем этот файл

    export KEY_SIZE=2048
    и
    export KEY_COUNTRY="UA"
    export KEY_PROVINCE="UA"
    export KEY_CITY="Kiev"
    export KEY_ORG="OpenVPN"
    export KEY_EMAIL="[email protected]"

    можно просто
    export KEY_SIZE=2048
    export KEY_ORG="OpenVPN"
    export KEY_EMAIL="[email protected]"

    11) . ./vars // выполняем в директории /etc/openvpn/easy-rsa

    12) ./clean-all // выполняем в директории /etc/openvpn/easy-rsa

    13) ./build-ca // выполняем в директории /etc/openvpn/easy-rsa
    Видим ПРИМЕРНО такой вывод

    Country Name (2 letter code) [US]: - !!!! жмём ENTER !!!!
    State or Province Name (full name) [CA]: - !!!! жмём ENTER !!!!
    Locality Name (eg, city) [SanFrancisco]: - !!!! жмём ENTER !!!!
    Organization Name (eg, company) [OpenVPN]: - !!!! жмём ENTER !!!!
    Organizational Unit Name (eg, section) []:OpenVPN - !!!! вписываем OpenVPN !!!!
    Common Name (eg, your name or your server's hostname) [OpenVPN CA]: server - !!!! вписываем server !!!!
    Email Address [[email protected]]: - !!!! жмём ENTER !!!!

    14) ./build-key-server server // выполняем в директории /etc/openvpn/easy-rsa
    ВИДИМ СЛЕДУЮЩЕЕ:

    Country Name (2 letter code) [US]: - !!!! жмём ENTER !!!!
    State or Province Name (full name) [CA]: - !!!! жмём ENTER !!!!
    Locality Name (eg, city) [SanFrancisco]: - !!!! жмём ENTER !!!!
    Organization Name (eg, company) [OpenVPN]: - !!!! жмём ENTER !!!!
    Organizational Unit Name (eg, section) []:OpenVPN - !!!! вписываем OpenVPN !!!!
    Common Name (eg, your name or your server's hostname) [server]:server - !!!! вписываем server !!!!
    Email Address [[email protected]]: - !!!! жмём ENTER !!!!
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []: - !!!! жмём ENTER !!!!
    An optional company name []: - !!!! жмём ENTER !!!!
    Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName :pRINTABLE:'US'
    stateOrProvinceName :pRINTABLE:'CA'
    localityName :pRINTABLE:'SanFrancisco'
    organizationName :pRINTABLE:'OpenVPN'
    organizationalUnitName:pRINTABLE:'OpenVPN'
    commonName :pRINTABLE:'server'
    emailAddress :IA5STRING:'[email protected]'
    Certificate is to be certified until Oct 1 05:22:28 2019 GMT (3650 days)
    Sign the certificate? [y/n]: - !!!! пишим 'y' жмём ENTER !!!!
    1 out of 1 certificate requests certified, commit? [y/n] - !!!! пишим 'y' жмём ENTER !!!!

    15) ./build-dh // выполняем в директории /etc/openvpn/easy-rsa и ждём когда закончиться генерация сертификата. Может генерить и 40 минут, а если произойдёт дисконект с сервером во время генерации серта, то повторно заходим на сервер и выполням заного именно этот ключ.

    16) ./build-key-pkcs12 client1 // выполняем в директории /etc/openvpn/easy-rsa
    ВИДИМ СЛЕДУЮЩЕЕ:

    Generating a 2048 bit RSA private key
    .....................+++
    ..........................................+++
    writing new private key to 'client1.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]: - !!!! жмём ENTER !!!!
    State or Province Name (full name) [CA]: - !!!! жмём ENTER !!!!
    Locality Name (eg, city) [SanFrancisco]: - !!!! жмём ENTER !!!!
    Organization Name (eg, company) [OpenVPN]:OpenVPN - !!!! вписываем OpenVPN !!!!
    Organizational Unit Name (eg, section) []: - !!!! жмём ENTER !!!!
    Common Name (eg, your name or your server's hostname) [client1]:client1 - !!!! вписываем client1 !!!!
    Email Address [[email protected]]: - !!!! жмём ENTER !!!!

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []: - !!!! жмём ENTER !!!!
    An optional company name []: !!!! жмём ENTER !!!!
    Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName :pRINTABLE:'US'
    stateOrProvinceName :pRINTABLE:'CA'
    localityName :pRINTABLE:'SanFrancisco'
    organizationName :pRINTABLE:'OpenVPN'
    commonName :pRINTABLE:'client1'
    emailAddress :IA5STRING:'[email protected]'
    Certificate is to be certified until Oct 1 05:46:57 2019 GMT (3650 days)
    Sign the certificate? [y/n]: y - !!!! пишим 'y' жмём ENTER !!!!

    1 out of 1 certificate requests certified, commit? [y/n]y - !!!! пишим 'y' жмём ENTER !!!!
    Write out database with 1 new entries
    Data Base Updated
    Enter Export Password: - !!!! жмём ENTER !!!!
    Verifying - Enter Export Password: - !!!! жмём ENTER !!!!

    17) cd /etc/init.d/;ls -la // идём в назначеную директорию и видим там файл openvpn

    18) chkconfig --add openvpn // добавляем чтобы при загрузке системы он загружался

    19) vi openvpn // там же /etc/init.d/ редактируем файл openvpn
    Ищем строку
    echo 1 > /proc/sys/net/ipv4/ip_forward
    и раскоментируем её !!!
    а ниже следующей стройкой добавляем
    iptables -t nat -A POSTROUTING -s 10.10.200.0/24 -j SNAT --to 127.0.0.1 // 127.0.0.1 , меняем на IP своего сервера где устанавливается VPN !!!

    20) vi /etc/syslog.conf // отключаем логирование !!! ЗАКОМЕНТИРУЙ ВСЁ !!!!
    Должно быть так:

    # Log all kernel messages to the console.
    # Logging much else clutters up the screen.
    #kern.* /dev/console

    # Log anything (except mail) of level info or higher.
    # Don't log private authentication messages!
    # *.info;mail.none;authpriv.none;cron.none /var/log/messages

    # The authpriv file has restricted access.
    # authpriv.* /var/log/secure

    # Log all the mail messages in one place.
    # mail.* -/var/log/maillog


    # Log cron stuff
    # cron.* /var/log/cron

    # Everybody gets emergency messages
    # *.emerg *

    # Save news errors of level crit and higher in a special file.
    # uucp,news.crit /var/log/spooler

    # Save boot messages also to boot.log
    # local7.* /var/log/boot.log
    # local6.* /var/log/vzagent.log

    21) /etc/init.d/syslogd restart // перезапускаем syslogd

    22) /etc/init.d/openvpn restart // запускаем openvpn, если везде напишет ОК , то все нормально и верно.

    23) cd /etc/openvpn/easy-rsa/keys/;ls -la // тут лежит клиентский ключь. Называется client1.p12
    24) cat /etc/openvpn/easy-rsa/keys/client1.p12 | mail -s "client1.p12" [email protected] // сливаем серты на мыло или по фтп
    ftp tvoi.server.ru
    дальше вбиваешь логин
    дальше вбиваешь пароль
    cd httpdocs/
    ls
    put /etc/file.txt

    P.S.
    Весь этот процесс можно сократить путём совмещения команд!!! Написан начинающим для начинающих!!!
    Благодарю 0депта Nova за проявленое терпение в передачи знаний в области настройки VPN из своей головы в мою :)
     
    2 people like this.
  10. .Love

    .Love Banned

    Joined:
    17 Jan 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Пальм спасибо..
    Сейчас протестирую...
     
  11. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    PSalm69 спс!
    Но еще хотел бы узнать, как это сделать на винде.
     
  12. Stev_Z

    Stev_Z New Member

    Joined:
    13 Jan 2010
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Полезно))) а на Winows можно?
     
  13. Nova

    Nova Green member

    Joined:
    15 Jul 2005
    Messages:
    1,233
    Likes Received:
    420
    Reputations:
    280
    Настройка под винду ничем не отличается , просто меняем пути в конфиге.
    Сертификаты генерируются аналогично под винду.
    только рекомендую использовать tap | tcp , а не tun tcp
     
    _________________________
  14. dimhee

    dimhee Member

    Joined:
    8 Mar 2007
    Messages:
    129
    Likes Received:
    63
    Reputations:
    6
    CyberHunter,Stev_Z
    https://forum.antichat.ru/thread108741-openvpn.html
    http://www.onecomputerguy.com/networking/xp_vpn_server.htm
     
    #14 dimhee, 3 Feb 2010
    Last edited: 3 Feb 2010
  15. Troop

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

    Joined:
    1 Feb 2008
    Messages:
    32
    Likes Received:
    20
    Reputations:
    10
    Palm спасибо полезно !
    просто твой ман по редхату а у меня под дебиан, да еще под виртуозом
    так что это разные вещи )))
    Кстати видел тут статью про опенвпн под вендами,
    думаю можно прикрепить в одну тему
    Будет более полноценней
     
  16. dimhee

    dimhee Member

    Joined:
    8 Mar 2007
    Messages:
    129
    Likes Received:
    63
    Reputations:
    6
    настраиваю openvpn , есть файлик .vars его я вижу но когда прописываю путь к нему причём по идее верный /etc/openvpn/easy-rsa и потом ./vars пишет no such ... что не так делаю :?
     
  17. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    Нужно точку поставить перед ./vars
    . ./vars
     
  18. j0ker13

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

    Joined:
    28 Jul 2008
    Messages:
    199
    Likes Received:
    16
    Reputations:
    5
    помогите настроить опенвпн)
    делал по первому посту)
    куда копать?
    server config
    client config
    client log
    server log
     
  19. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Установил я опенВПН(на винду), но в папке с ним нет файла "сервер.конф" создать его самому и ввести что написано в первом посте(для винды тоже самое) ?
    Еще в папке sample-config в файлах server.ovpn и client.ovpn куча все написано, на что все это изменить? на "remote my-server-1 1194 (тут выбираеться порт я у себя ставил 5000)" ? это куда в клиент?
    Напишите пожалуста, что должно быть в файлах: client.ovpn ; sample.ovpn ; server.ovpn .
    Заранее спс!
     
  20. CyberHunter

    CyberHunter Active Member

    Joined:
    6 Jan 2010
    Messages:
    601
    Likes Received:
    116
    Reputations:
    37
    Ответьте плз.