Бесплатно пошаговая инструкция по поднятию vpn на vds

Тема в разделе "Безопасность и анонимность", создана пользователем Hermanicus, 16 мар 2017.

  1. Почему именно на VDS/VPS? Это самый доступный на сегодняшний день хостинг с неограниченными возможностями и недорогой (купить VPN дороже раза в 2, хоть в покупке и есть свои плюсы и довольно таки немалые, но не об этом тема). Поехали:


    1. Выбираем хостера с VDS/VPS. Я рекомендую ЭТОГО , поскольку у них поставил не один OpenVPN, да и привык к ним как-то
    2. Регистрируемся. ОС выбираем CentOS ибо на нем лучше всего делать VPN
    3. Для фёрста просим сразу же активировать TUN и NAT (пишем в билинге что-то типа Активизируйте, пожалуйста, TUN/TAP-устройства для сервера {IP вашего сервера}, а так же включите NAT). Для других хостеров может быть не актуально, поскольку это все может быть включено, но скорей всего - нет
    4. Лезем через ssh на сервер. Редактируем /etc/yum.conf. Ищем строчку plugins=1. Если стоит 0 то все нормально, если нет то правим.
    5. Командуем

    Код:
    # yum install openvpn
    Соглашаемся на установку. Если же послали куда подальше, то либо не выполнили пункт 4, если не помогло то меняем репозиторий юма
    6. Ну вот поставили... Теперь создаем конфигурационные файлы

    Код:
    # touch /etc/openvpn/openvpn.conf
    # mkdir /etc/openvpn/ccd
    # mkdir /etc/openvpn/keys
    # cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
    # cp /usr/share/doc/openvpn-2.0.9/easy-rsa/openssl.cnf /etc/openvpn
    # cd /etc/openvpn/easy-rsa
    # chmod +x clean-all
    # chmod +x build*
    7. Редактируем /etc/openvpn/easy-rsa/vars

    Код:
    export KEY_COUNTRY=RU
    export KEY_PROVINCE=MSK
    export KEY_CITY=MOSCOW
    export KEY_ORG="OpenVPN-TEST-INSTALLATION"
    export KEY_EMAIL="[email protected]"
    8. Создаем ключи

    Код:
    # cd /etc/openvpn/easy-rsa
    # . ./vars
    # ./clean-all
    Будут спрашивать данные для сертификата, лучше отвечать ближе к правде, хотя и не обязательно:

    Код:
    # ./build-ca
    Аналогично, отвечать нужно на все вопросы. Common name должно быть server. На 2 вопроса отвечать y:

    Код:
    # ./build-key-server server
    Создаем ключ шифрования:

    Код:
    # ./build-dh
    Создаем клиентский сертификат. Если у нас несколько клиентов, то повторяем этот шаг несколько раз, меняя номер клиента. В Common name указываем то же самое что и в параметре запроса (client1 - прим.):

    Код:
    # ./build-key client1
    9. Топаем в /etc/openvpn. И редактируем конфиг openvpn.conf. Итак!!! То чего все так долго ждали!!! Рабочий конфиг сервера

    Код:
    port указываем нужным нам порт
    proto tcp
    dev tun
    local указываем внешний айпишник сервера
    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
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "route 10.8.0.1"
    push "redirect-gateway def1"


    push "dhcp-option DNS 10.8.0.1"
    push "dhcp-option WINS 10.8.0.1"
    keepalive 10 320
    tun-mtu 1500
    comp-lzo
    user nobody
    max-clients 10


    client-to-client
    group nobody
    persist-key
    persist-tun
    mssfix 1450
    status /etc/openvpn/openvpn-status.log
    log /etc/openvpn/openvpn.log
    verb 4
    Если нужно в ручную указывать айпишник для клиента то редактируем файл ipp.txt в директории /etc/openvpn на клиента строчку следующего вида:

    Код:
    client1,10.8.0.4
    10. Прокидываем нат для выхода на внешку:

    Код:
    # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    На VPS на базе Virtuozzo вместо первой команды надо выполнить (если не знаете че за хуета то устанавливаем опытным путем... не соединяется со страницами - значит эта хрень стоит ):

    Код:
    # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source IP_АДРЕС_ВАШЕГО_ВДС
    Выполнять нужно либо ту, либо эту комманду... хотя ниче не будет если обе выполнтие... После чего чтоб все вступило в силу выполняем:

    Код:
    # echo 1 > /proc/sys/net/ipv4/ip_forward
    11. Запускаем openvpn

    Код:
    # service openvpn start
    Либо

    Код:
    # /etc/init.d/openvpn start
    Разницы нет. Если все нормально сделали то выдаст OK


    12. Сервак настроили. Теперь настраиваем клиента. Описывать не буду как че делать - выложу один конфиг и какие ключи слить надо. Итак сливаем файлы ca.crt, client01.crt, client01.key (все находятся в /etc/openvpn/easy-rsa/keys). А вот и конфиг клиента для OpenVPN :

    Код:
    client
    port указываем порт на котором работаем
    dev tun
    proto tcp
    remote сервак порт
    resolv-retry infinite
    nobind
    route-method exe
    route-delay 2
    persist-key
    persist-tun
    mute-replay-warnings
    ca "ca.crt"
    cert "client2.crt"
    key "client2.key"


    ping 15
    ping-restart 45
    ping-timer-rem


    tun-mtu 1500


    ifconfig 10.8.0.4 255.255.255.0
    dhcp-option DNS 10.8.0.1
    dhcp-option WINS 10.8.0.1


    comp-lzo
    ns-cert-type server
    cipher BF-CBC
    verb 4
    mute 20
    Все... цепляемся и радуемся. Если происходит ситуация, что при загрузке страниц висит ожидание открытия страницы... короче сервак найден, но страницы не грузит то меняем значение mtu (строка tun-mtu) в конфигах как сервака (после изменений перезагрузить не забудьте командой service openvpn restart) так и клиента на меньшее значение, например на 1000. У меня именно такая ситуация была, поскольку сетевое оборудование передавало пакеты меньше 1500, поставив 1000 - я избавился от геморроя ) Кому интересно что такое MTU читайте документацию и учите матанализ.
     
  2. всем новичкам прочесть понять задать вопросы этого умного тс и главное разобраться что но написал много букв это не самое сложное в его постах когда сможите разложить все по полочкам от а до я ваше мышление и понимание измениться от уровня макаки до прошаренного человека
     

Поделиться этой страницей