VPN своими руками

Тема в разделе "ВОПРОСЫ ОТ НОВИЧКОВ", создана пользователем Zonder, 25 авг 2010.

  1. Zonder

    Zonder Member

    Сообщения:
    162
    Симпатии:
    0
    Впринципе часто поднимаеться вопрос собственной безопасности в среде андеграунда
    Решения множество но пожалуй сейчас хочу рассказать о самом главном козыре хацкера , это сокрытие следов от провайдера и посторонних глаз
    тоесть сейчас я расскажу как можно сделать собственный сервер OpenVPN
    где вы будете полноправным хозяином и сами будете распоряжаться своими ресурсами
    Статью буду описывать на примере собственного опыта
    так что все описанные решение рабочеспособны и по сей день
    И так жертвой своих истезаний я выбрал простое и очень дешовое решение
    у хостинг провайдера firstvds.ru
    Для начало я арендовал за 160рублей/месяц самый дешовый VPS на базе Linux Debian (другая ось не работает для VPN)

    И собственно после того как ваш новоиспеченный сервер заработает
    мы просто заходим в консоль под рутом и начинаем устанавливать сам дистрибутив
    установка будет производиться чкерез менеджер пакетов - поехали

    HTML:
    apt-get install -y openvpn
    После успешной установки командой apt-get install openvpn необходимо будет создать ключи шифрования, которые будут использоваться для авторизации на OpenVPN сервере

    Создание криптографических ключей

    Скопируйте файлы (утилиты для создания ключей) в папку файлов конфигурации openvpn выполнив команду:

    HTML:
    cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/
    Перейдите в папку с утилитами для создания ключей командой:

    HTML:
    cd /etc/openvpn/
    и выполните следующие команды для инициализации переменных окружения:

    HTML:
    . ./vars
    source ./vars
    Инициализируйте каталог с ключами (ВНИМАНИЕ! Команда удалит старые ключи если они уже были созданы до этого) командой:

    HTML:
    ./clean-all
    Создайте корневой сертификат (Certificate Authority) сервера:

    HTML:
    ./build-ca
    Создайте сертификат и ключ для сервера:

    HTML:
    ./build-key-server server
    При создании указываем все необходимые данные, в поле Common name обязательно указать имя server (оно также указано по-умолчанию).

    Следующим действием, после создания файлов сертификатов сервера, создается файл ключей (параметров) DH (Диффи и Хеллмэна), для его создания следует использовать скрипт build-dh:

    HTML:
    ./build-dh
    Создание сертификатов и ключей для сервера закончено. Теперь необходимо создать ключи и сертификаты для подключения клиентов:

    Указываете имя клиента (например, carder1) при создании сертификата и выполните команду:

    HTML:
    ./build-key carder1
    После завершения создания всех файлов рекомендую сохранить резервную копию папки /etc/openvpn/keys где-либо в безопасном месте

    В каталоге /etc/openvpn/keys нас интересуют 3 файла со следующими именами:
    ca.crt
    carder1.crt
    carder1.key

    Их необходимо будет скопировать на компьютер с которого будет осуществляться подключение. Копирование можно осуществить, например, используя протокол SCP/SFTP, а в качестве клиентского программного обеспечения для операционной системы Microsoft Windows использовать для этого программу WinSCP либо тупо через панель ISPmanager

    Настройка файлов конфигурации OpenVPN

    После создания ключей следует настроить сервер. Скопируйте пример файлов конфигурации в каталог /etc/openvpn/ и разархивируйте его выполнив следующие команды:

    HTML:
    cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
    cd /etc/openvpn
    gunzip server.conf.gz
    Теперь в каталоге /etc/openvpn находится файл конфигурации с именем server.conf

    Внесите в него следующие необходимые изменения (укажите полные пути к файлам ключей):

    HTML:
    ca /etc/openvpn/keys/ca.crt
    cert /etc/openvpn/keys/server.crt
    key /etc/openvpn/keys/server.key
    dh /etc/openvpn/keys/dh1024.pem
    Остальные параметры оставляем такие какие были, то есть по-умолчанию.

    Также для ведения логов (после настройки необходимо отключить) для поиска возможных проблем в работе можно в файле конфигурации OpenVPN сервера /etc/openvpn/server.conf добавить строку

    HTML:
    log /var/log/openvpn.log
    После окончания настройки запустите сервер и убедитесь в том, что он запускается с помощью следующих команд:

    HTML:
    /etc/init.d/openvpn start
    Starting virtual private network daemon: server.

    ps ax|grep openvpn
    5175 ? Ss 0:00 /usr/sbin/openvpn --writepid /var/run/openvpn.server.pid --daemon ovpn-server --cd /etc/openvpn --config /etc/openvpn/server.conf
    Настройка трансляции адресов (NAT) для выхода в интернет через сервер с установленным OpenVPN

    Сервер настроен, однако выход в интернет после подключения к нему невозможен (возможна только установка VPN-тунеля до сервера).
    Необходимо в файле конфигурации /etc/openvpn/server.conf указать необходимые маршруты (для перенаправления default gateway клиента на сервер):

    HTML:
    push redirect-gateway


    также необходимо поменять DNS-сервера, поскольку серверы интернет-провайдера могут запрещать рекурсивные запросы с чужих адресов, например, указав (DNS-сервер предварительно должен быть настроен на VDS) сервер 10.8.0.1 или какие-либо публичные DNS, например, Google Public DNS. Для этого в конфигурационный файл /etc/openvpn/server.conf также следует добавить строки:

    HTML:
    push dhcp-option DNS 8.8.8.8
    push dhcp-option DNS 8.8.4.4


    Если необходимо, чтобы клиенты, которые подключаются к серверу могли видеть друг-друга (отправлять к другу-другу пакеты и тем самым ходить через сервер), то необходимо раскоментировать параметр

    HTML:
    client-to-client


    Для работы NAT (трансляции адресов) необходимо настроить правила в firewall используя интерфейс управления фильтром пакетов iptables.

    Для этого пропишите в файле /etc/rc.local следующие строки:

    HTML:
    /sbin/iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
    /sbin/iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT

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

    Выполните эти команды вручную чтобы применить необходимые правила, либо перезагрузите VDS чтобы убедиться что сервисы openvpn и правила iptables (их можно посмотреть командой iptables-save) запускаются автоматически.

    На этом настройка OpenVPN сервера на VDS с операционной системой Debian Linux закончена непалитесь господа ))
  2. APTiCT

    APTiCT New Member

    Сообщения:
    19
    Симпатии:
    0
    Zonder, хорошая статья. Вопрос немного не по теме, но все же, как к таким манипуляциям и дальнейшей работе через VPN относятся хостинг-провайдеры? Ведь многие четко прописывают в соглашение на оказание услуг, что размещение прокси-серверов или VPN запрещено. Или это просто один из пунктов, за соблюдением которого не следят?
  3. Zonder

    Zonder Member

    Сообщения:
    162
    Симпатии:
    0
    к примеру на данном хостинг провайдере это разрешено
    обычно такие ограничения (vpn прокси торент трекер и прочие пиринговые сети)
    ставяться с целью экономии и избежании паразитного трафа
    в больших ДЦ к этому относяться нейтрально

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