Как создать собственный бесплатный VPN с помощью Amazon Web Services

Carding

Professional
Messages
2,829
Reputation
17
Reaction score
2,087
Points
113
ЧТО В ЭТОЙ СТАТЬЕ?
  • Ведение
  • SSH-туннелирование (необязательно)
  • Настроить OpenVPN на сервере и клиенте
  • Дополнительные примечания
  • Жесткое программирование DNS-серверов в вашей VPN

Интернет-пользователи избалованы выбором, когда дело доходит до услуг VPN, но они либо требуют ежемесячной подписки, либо небезопасны, либо работают просто медленно. К счастью, существуют альтернативы. Они требуют немного больше технических знаний, но если вы хотите, чтобы что-то было сделано правильно, вы должны сделать это сами.

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

Введение
Amazon Web Services предлагает один год бесплатного пространства на виртуальном сервере при условии, что вы используете меньше заранее определенных объемов пропускной способности, времени и пространства. Даже если вы превысите этот предел, стоимость запуска образа сервера в Amazon Elastic Compute Cloud, вероятно, будет меньше, чем вы заплатили бы за подписку на VPN.

Здесь мы объясним два различных способа использования сервиса Amazon Elastic Cloud, также называемого EC2, для перенаправления вашего соединения через частное местоположение по вашему выбору: SSH-туннелирование и OpenVPN. У каждого есть свои преимущества и недостатки, поэтому используйте тот, который вам больше подходит. Независимо от того, что вы выберете, вам потребуется следующее:
  • Учетная запись Amazon Web Services. Для этого требуется кредитная карта, но с вас будет взиматься плата только за то, что вы используете, что, вероятно, не будет ничего, если вы будете осторожны в том, что делаете.
  • PuTTy, если у вас Windows. OpenSSH через Cygwin - еще один вариант, но я обнаружил, что это больно. Компьютеры Linux и Mac уже имеют подсказки SSH, встроенные в коробки и терминалы. Вам также понадобится родственная программа генерации ключей PuTTy, PuttyGen. Вы также можете использовать альтернативу PuTTY, некоторые из которых также включают SCP и FTP.
  • WinSCP или эквивалентный FTP-клиент для перемещения файлов между локальным компьютером и экземпляром EC2.
  • Базовые практические знания команд Unix и того, как серверы работают с клиентами, будут очень полезны при устранении неполадок, если что-то пойдет не так, как планировалось.
  • Графический интерфейс OpenVPN, установленный в папку по умолчанию и с настройками по умолчанию на вашем ПК.

Настройка AWS
После того, как вы зарегистрировали учетную запись Amazon Web Services, вот как запустить сервер, который мы будем использовать для нашей VPN:
  1. Войдите в свою учетную запись Amazon Web Service и перейдите на панель управления EC2.
    aws-vpn-update-1.png
  2. В правом верхнем углу вы можете выбрать место, где мы будем настраивать вашу VPN. Щелкните Запустить экземпляр.
    ec2-vpn-1-1024x449.png
  3. Выберите любой Linux AMI, указанный как «подходящий уровень бесплатного пользования». На момент написания этой статьи это AMI Amazon Linux. Переходите к следующему шагу.
    ec2-vpn-2-1024x357.png
  4. Здесь выберите экземпляр t2.micro, который также имеет право на бесплатный уровень. Нажмите «Просмотреть и запустить».
    ec2-vpn-3-1024x391.png
  5. На следующей странице щелкните Изменить группы безопасности.
    aws-vpn-update-2.png
  6. Вам нужно будет отредактировать группу безопасности, чтобы разрешить трафик с вашего компьютера только для доступа к VPN или прокси. У вас уже должно быть одно правило для подключения к вашему серверу через SSH, которое мы будем использовать позже. Нам нужно будет добавить еще один, чтобы разрешить соединения OpenVPN, которые по умолчанию используют порт 1194. Для простоты на вкладке Входящие нажмите кнопку Добавить правило. Установите Тип на Пользовательский UDP, Диапазон портов на 1194 и Источник на Anywhere .
    EC2 кнопка добавления правила группы безопасности
  7. Нажмите "Сохранить".
    EC2-security-group-anywhere-to-port-1194-1024x242.jpg
  8. Нажмите «просмотреть и запустить», затем «запустить» на следующей странице.
  9. Теперь вам нужно создать пару ключей, которая работает как пароль, который вы будете использовать для подключения к виртуальному серверу, который вы создаете. В раскрывающемся меню выберите «создать новую пару ключей» и назовите как хотите. Нажмите кнопку, чтобы загрузить пару ключей. Храните его в безопасном месте.
    ec2-vpn-5.png
  10. Следующая страница должна предупредить вас о запуске экземпляра. Прокрутите вниз и нажмите «Просмотреть экземпляры». Здесь вы увидите список всех запущенных вами экземпляров, которые, если вы впервые используете EC2, будут только одним экземпляром.

Подключитесь к серверу с помощью PuTTy
Мы можем подключиться к нашему экземпляру EC2 с помощью PuTTy, но сначала нам понадобится соответствующий файл ключа для подключения. Когда вы установили PuTTy, вы также должны были установить PuTTygen. Давай, запустим его сейчас. И PuTTy, и PuTTygen запускаются прямо из коробки в виде файлов .exe и не требуют установки.
ec2-vpn-7.png

  1. Откройте PuTTygen, нажмите Загрузить.
  2. Перейдите к файлу пары ключей .pem, который вы скачали ранее, и загрузите его в Puttygen. Вам нужно будет выбрать параметр, чтобы отображать все типы файлов для ключа .pem. Нажмите «Сохранить закрытый ключ». Имя файла должно совпадать с ключом .pem. Вы можете создать кодовую фразу для закрытого ключа, если хотите.
    ec2-vpn-6.png
  3. Теперь закройте PuTTygen и откройте PuTTy. Скопируйте общедоступный IP-адрес вашего экземпляра из консоли EC2 в PuTTy. Введите имя сеанса и нажмите "Сохранить".
    ec2-vpn-8.png
  4. На левой панели перейдите к «Auth» в SSH. Нажмите кнопку обзора внизу и перейдите к только что сгенерированному закрытому ключу.
  5. Вернувшись на главную страницу сеанса, назовите и сохраните свой профиль сеанса, чтобы вы могли быстро подключиться в следующий раз, когда будете использовать PuTTy. Затем нажмите "Открыть".
  6. Появится запрос с запросом имени пользователя. Это зависит от того, какой тип сервера вы настроили в начале. Для AMI Amazon Linux это «пользователь ec2».

SSH-туннелирование (необязательно)
Для начала мы просто перенаправим веб-трафик через экземпляр, который мы создали, используя SSH-туннелирование и прокси. Это быстрый и грязный способ обойти брандмауэр или географическую блокировку. Это не совсем VPN - он лучше всего подходит для небольшого веб-трафика и не будет работать со всем, - но его гораздо проще настроить. Однако настройка SSH-туннелирования не является обязательной , поэтому не стесняйтесь переходить к следующему разделу.

ec2-vpn-9.png


Откройте PuTTy и перейдите к Tunnels in the left pain. Добавьте порт 8080, выбрав Авто и Динамический. Вернитесь на страницу сеанса и снова нажмите «Сохранить», чтобы вам не пришлось делать все это снова. Затем нажмите "Открыть".

ec2-vpn-10.png


Теперь вы подключены к своему серверу, но вам все еще нужно направлять трафик вашего веб-браузера через него. Если вы используете Firefox, это можно сделать в настройках вашего браузера. Если вы используете Chrome, скачайте расширение Proxy Switchy. Если вы предпочитаете создать полнофункциональную VPN, а не просто прокси для своего браузера, перейдите к следующему разделу.

В Firefox:
  • Перейдите в Инструменты> Параметры> Дополнительно> Сеть> Подключение> Настройки> Настройка прокси вручную.
  • Установите для хоста SOCKS значение 127.0.0.1, а для порта - 8080 (или то, что вы установили для порта туннеля на PuTTy).
  • Нажмите ОК, чтобы сохранить

В Chrome Proxy Switchy
  • Страница установки должна появиться, как только вы установите расширение, или щелкните значок в правом верхнем углу Chrome и выберите Параметры.
  • Назовите профиль как хотите. В разделе «Ручная настройка» установите для хоста SOCKS значение 127.0.0.1, а для порта - 8080 (или то, что вы установили для порта туннеля в PuTTy. Все остальное оставьте пустым.
  • Нажмите «Сохранить», затем нажмите значок еще раз, чтобы выбрать свой прокси-профиль.
ec2-vpn-11.png


Вуаля! Трафик вашего браузера теперь направляется через ваш экземпляр EC2. Это будет хорошо работать для базового просмотра, но на некоторых веб-сайтах могут возникать проблемы, и приложения, отличные от вашего веб-браузера, по-прежнему будут использовать прямое соединение. Чтобы создать полноценную VPN, которая перенаправляет весь ваш интернет-трафик, читайте дальше.

Настроить OpenVPN на сервере и клиенте
OpenVPN - это бесплатный инструмент с открытым исходным кодом, который позволит вам запустить полноценную VPN через свой экземпляр Amazon EC2. Это означает, что через него проходит весь ваш интернет-трафик, а не только трафик вашего веб-браузера, как указано выше. Настольные программы, такие как Steam или Spotify, лучше работают с этим подходом.

ec2-vpn-12.png


Подключитесь к своему экземпляру EC2 с помощью PuTTy в соответствии с приведенными выше инструкциями. Перед вами должна появиться командная строка с надписью Amazon Linux AMI. Выполните следующие команды (введите или скопируйте / вставьте их и нажмите ввод):

Code:
sudo yum install -y openvpn
sudo modprobe iptable_nat
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Просто небольшое примечание здесь. Вы могли заметить на скриншоте, что я неправильно пытался загрузить и установить OpenVPN, используя команду «apt-get» вместо «yum». В некоторых других версиях Linux по-прежнему используется apt-get, поэтому, если yum у вас не работает, попробуйте вместо этого эту команду:

Code:
sudo apt-get install -y openvpn

Текст будет мигать в командной строке во время установки OpenVPN. Остальные три команды настраивают переадресацию IP, которая необходима для работы VPN.

Метод №1: настройка аутентификации PKI с помощью easy-rsa (рекомендуется)
В исходной версии этого руководства мы настроили OpenVPN со статическим шифрованием и файлом .ovpn. Хотя это работает, оно позволяет одновременно подключать только одно устройство, а тот факт, что вы всегда используете только один ключ, означает, что это менее безопасно. Теперь мы рекомендуем читателям использовать easy-rsa для настройки аутентификации, которая более безопасна и позволяет одновременно подключать любое количество устройств. Однако, если вам нужна старая версия со статическим шифрованием, перейдите к ней.

Настройка OpenVPN и easyrsa сервера
В идеале вы должны сгенерировать все необходимые ключи и сертификаты на отдельном устройстве с сервера VPN для максимальной безопасности. Однако это может быть довольно утомительно, поэтому мы просто собираемся сгенерировать учетные данные клиента и сервера на сервере, а затем переместить файлы туда, где они нам нужны.

  1. Easy-rsa недоступен в списке пакетов yum по умолчанию, поэтому нам нужно включить репозиторий EPEL для его установки. Введите в терминал PuTTy следующее и нажмите Enter:
    Code:
    sudo yum install easy-rsa -y --enablerepo = epel
  2. Создайте каталог easy-rsa в каталоге установки OpenVPN. Скопируйте файлы из вашей установки easy-rsa (последняя версия 3.0.3 на момент написания) в новый каталог:
    Code:
    sudo mkdir /etc/openvpn/easy-rsa
    cd /etc/openvpn/easy-rsa
    sudo cp -Rv /usr/share/easy-rsa/3.0.3/*
  3. Теперь мы готовы настроить наш центр сертификации. Начните с инициализации нового каталога PKI (инфраструктуры открытых ключей), затем создайте пару ключей центра сертификации.
    Code:
    sudo ./easyrsa init-pki
    sudo ./easyrsa build-ca
  4. Введите кодовую фразу PEM. Это не обязательно, но рекомендуется. Если кто-то каким-то образом завладеет вашим ЦС, он не сможет создавать ключи или подписывать сертификаты без пароля.
  5. Вам будет предложено ввести обычное имя. Называйте его как хотите или просто нажмите Enter, чтобы оставить значение по умолчанию.
  6. Затем мы сгенерируем ключ Диффи-Хеллмана, который обеспечивает идеальную прямую секретность:
    Code:
    sudo ./easyrsa gen-dh
  7. Эта команда может занять некоторое время. Будет создан файл с именем dh.pem. По завершении мы переходим к учетным данным сервера. Для удобства мы не будем защищать их паролем, но вы, безусловно, можете это сделать, если хотите еще более надежную защиту.
    Code:
    sudo ./easyrsa gen-req server nopass
  8. Нажмите Enter, чтобы оставить общее имя в качестве сервера. После создания пары ключей подпишите сертификат:
    Code:
    sudo ./easyrsa sign-req server server
  9. Введите yes для подтверждения и введите пароль CA, если вы установили его ранее.
  10. Теперь настроим клиента. Опять же, мы не будем устанавливать для этого пароль, но вы можете это сделать. Обратите внимание: если вы хотите настроить автоматический запуск VPN, лучше не устанавливать пароль.
    Code:
    ./easyrsa gen-req client nopass
  11. Нажмите Enter, чтобы оставить обычное имя в качестве client. А теперь подпиши:
    Code:
    sudo ./easyrsa sign-req client client
  12. Введите yes для подтверждения и введите свой пароль CA, если вы его установили.
  13. Затем мы сгенерируем ключ TLS для идеальной прямой секретности в OpenVPN, который гарантирует, что данные прошлого сеанса не могут быть расшифрованы, даже если злоумышленник получит наш закрытый ключ.
    Code:
    cd / etc / openvpn
    openvpn --genkey --secret pfs.key
  14. Мы сгенерировали все необходимые нам файлы учетных данных. Далее мы создадим файл конфигурации сервера OpenVPN. У нас уже есть один для вас, написанный ниже, поэтому все, что вам нужно сделать, это скопировать и вставить, если вы следовали за ним с самого начала. Начните с перехода в каталог OpenVPN и создания нового файла:
    Code:
    cd / etc / openvpn
    sudo nano server.conf
  15. Теперь вы находитесь в текстовом редакторе nano. Скопируйте и вставьте следующую конфигурацию, затем нажмите CTRL + O для сохранения, Enter для подтверждения и CTRL + X для выхода. (Подсказка: вы можете вставить текст из буфера обмена в PuTTy, просто щелкнув правой кнопкой мыши)
    Code:
    port 1194proto udp
    dev tun
    ca /etc/openvpn/easy-rsa/pki/ca.crt
    cert /etc/openvpn/easy-rsa/pki/issued/server.crt
    key /etc/openvpn/easy-rsa/pki/private/server.key
    dh /etc/openvpn/easy-rsa/pki/dh.pem
    cipher AES-256-CBC
    auth SHA512
    server 10.8.0.0 255.255.255.0
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 8.8.8.8"
    push "dhcp-option DNS 8.8.4.4"
    ifconfig-pool-persist ipp.txt
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    status openvpn-status.log
    log-append openvpn.log
    verb 3
    tls-server
    tls-auth /etc/openvpn/pfs.key
  16. Теперь сервер настроен. Нам просто нужно запустить OpenVPN. Мы запустим его как службу, чтобы даже после того, как вы закроете PuTTy, он продолжал работать до тех пор, пока сервер не будет отключен или вы не завершите службу вручную.
    Code:
    sudo service openvpn start
Примечание: некоторые пользователи отметили, что их VPN-серверы перестают работать после перезагрузки или обслуживания сервера. Иногда это происходит с инстансами EC2 на микроуровне. Чтобы предотвратить это, мы будем использовать команду и сценарий bash. Начните с этой команды:
Code:
sudo chkconfig openvpn on

Пока вы все еще находитесь в etc / openvpn, используйте nano server.sh для создания нового текстового файла и вставьте в него следующее:
Code:
#!/bin/sh
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Используйте CTRL + O для сохранения и CTRL + X для выхода.

Команда обеспечит запуск OpenVPN при загрузке сервера, а сценарий обеспечит настройку необходимых маршрутов в iptables для разрешения трафика OpenVPN.

Настройка клиента OpenVPN и easyrsa
Теперь, когда сервер настроен, нам нужно настроить клиента. Для этого нам нужно переместить необходимые файлы сертификатов и ключей с нашего сервера на наше клиентское устройство. Поскольку PuTTy все еще открыт и работает от имени пользователя root, нам сначала нужно изменить разрешения для этих файлов, чтобы мы могли получить к ним доступ. Мы также поместим их все в одно место, чтобы упростить задачу.
  1. Чтобы получить доступ к некоторым из этих файлов, нам нужно быть пользователем root. Для этого введите:
    Code:
    sudo su
  2. Это сделает вас пользователем root и предоставит административные привилегии. Теперь введите следующие команды. Последняя команда снижает необходимые разрешения для доступа к этим файлам. Обратите внимание, что по завершении важно вернуть их обратно.
    Code:
    cd /etc/openvpnmkdir keys
    cp pfs.key keys
    cp /etc/openvpn/easy-rsa/pki/dh.pem keys
    cp /etc/openvpn/easy-rsa/pki/ca.crt keys
    cp /etc/openvpn/easy-rsa/pki/private/ca.key keys
    cp /etc/openvpn/easy-rsa/pki/private/client.key keys
    cp /etc/openvpn/easy-rsa/pki/issued/client.crt keys
    chmod 777 *
  3. Чтобы перенести файлы с нашего сервера на наш ПК, мы воспользуемся бесплатной программой WinSCP. Просто используйте параметры установки по умолчанию. Как только это будет сделано, должно появиться окно с предложением импортировать данные аутентификации сервера из PuTTy. Выберите тот, который мы сделали выше, и продолжайте.
    ec2-vpn-14.png
  4. Выберите myvpn (или как вы его назвали) и нажмите кнопку «Изменить». Введите ec2-user под именем пользователя. Щелкните "Войти".
  5. Если вы не впервые используете WinSCP, вы можете установить файл .ppk, который вы использовали в PuTTy, нажав «Правка» и «Дополнительно». Перейдите в SSH > Аутентификация > Файл закрытого ключа и перейдите к своему файлу PPK.
  6. В поле имени хоста на главной странице вы можете ввести IP-адрес или домен вашего экземпляра EC2. Обязательно сохраните настройки, затем нажмите «Войти».
    easyrsa-6.jpg
  7. На правой панели перейдите в каталог, содержащий файлы ключей, в данном случае / etc / openvpn / keys.
    easyrsa-7-1024x546.jpg
  8. Выделите шесть файлов, которые вам понадобятся: client.crt, client.key, ca.crt, dh.pem, pfs.key и ca.key (не показаны в связи с обновлением статьи). Нажмите зеленую кнопку " Загрузить" . На самом деле не имеет значения, где они находятся на левой панели, если вам не нужны права администратора для доступа к нему. Для простоты помещаем файлы на рабочий стол. Однако вы захотите сохранить файл ca.key в безопасном месте, например, на USB-накопителе.
  9. Последнее, что нам нужно сделать, это удалить файл ca.key с сервера. ЦС или центр сертификации используется для подписи клиентских сертификатов, и, если он когда-либо будет скомпрометирован, вы больше никогда не сможете доверять сертификатам, выпущенным этим ЦС. Хотя это не обязательно для работы VPN, мы настоятельно рекомендуем это сделать, особенно если вы не устанавливали пароль для центра сертификации. Перед удалением файла убедитесь, что у вас есть все ключи и сертификаты для каждого устройства, которое вы хотите подключить. Если вы хотите добавить что-то еще, вам придется переместить файл ca.key обратно на сервер.
  10. Как только у вас есть ключ CA, надежно сохраненный где-то кроме сервера, войдите в PuTTy и удалите как исходный ca.key, так и копию, которую мы сделали с сервера:
    Code:
    sudo rm /etc/openvpn/easy-rsa/pki/private/ca.key
    sudo rm /etc/openvpn/keys/ca.key
  11. После загрузки файлов нам необходимо восстановить их более строгие разрешения на сервере, чтобы не каждый мог получить к ним доступ. Вернемся в PuTTy:
    Code:
    cd /etc/openvpn/keys
    sudo chmod 600 *
  12. На своем ПК вырежьте и вставьте эти пять файлов из того места, где вы их скачали, в папку конфигурации OpenVPN. В данном случае это C: // Program Files // OpenVPN // config .
  13. Наконец, нам нужно создать файл конфигурации клиента. Откройте свой любимый редактор открытого текста (Блокнот отлично работает), щелкнув правой кнопкой мыши и выбрав Запуск от имени администратора, и вставьте следующую конфигурацию, заменив YOUR.EC2.INSTANCE.IP IP-адресом вашего экземпляра EC2:
    Code:
    clientdev tun
    proto udp
    remote YOUR.EC2.INSTANCE.IP 1194
    ca ca.crt
    cert client.crt
    key client.key
    tls-version-min 1.2
    tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
    cipher AES-256-CBC
    auth SHA512
    resolv-retry infinite
    auth-retry none
    nobind
    persist-key
    persist-tun
    ns-cert-type server
    comp-lzo
    verb 3
    tls-client
    tls-auth pfs.key
  14. Это файл конфигурации Windows для графического интерфейса OpenVPN, поэтому мы сохраним его как client.ovpn . Другие клиенты OpenVPN могут вместо этого использовать расширение .conf. В любом случае убедитесь, что ваш текстовый редактор не добавляет расширение .txt после сохранения. Сохраните его в том же месте, что и ваш ключ и файлы сертификации: C: \ Program Files \ OpenVPN \ config.
    easyrsa-8.jpg
  15. Теперь запустите графический интерфейс OpenVPN в режиме администратора, щелкнув его правой кнопкой мыши и выбрав Запуск от имени администратора . Щелкните правой кнопкой мыши значок на панели задач и подключитесь к только что настроенной конфигурации клиента . Экран состояния с большим количеством текста будет мигать поперек экрана, а затем значок станет зеленым.
Поздравляю! Теперь вы подключены к домашней VPN.

Метод № 2: Статическое шифрование (проще, но не рекомендуется)
В этом методе мы создадим общий ключ для аутентификации. Это что-то вроде файла, который действует как пароль. Его проще настроить, но он позволяет одновременно подключать к VPN только одно устройство, и он менее безопасен, чем описанный выше метод easy-rsa.
  1. В PuTTy введите следующие команды и нажмите Enter:
    Code:
    cd / etc / openvpn
    sudo openvpn --genkey --secret ovpn.key
  2. Теперь мы собираемся создать файл конфигурации сервера для нашей VPN. Введите следующую команду, чтобы создать пустой текстовый файл в очень простом текстовом редакторе внутри терминала:
    Code:
    sudo nano openvpn.conf
  3. Введите следующую конфигурацию. Вы можете найти больше вариантов на веб-сайте OpenVPN, если хотите поиграть с этим позже, но сначала убедитесь, что вы знаете, что делаете.
    ec2-vpn-13.png

    Code:
    port 1194proto tcp-server dev tun1
    ifconfig 10.4.0.1 10.4.0.2
    status server-tcp.log
    verb 3
    secret  ovpn.key
  4. Теперь нажмите CTRL + O (это буква «O» не ноль) и нажмите Enter, чтобы сохранить файл. Затем нажмите CTRL + X, чтобы выйти из текстового редактора. Вернувшись в командную строку, пора запустить OpenVPN:
    Code:
    sudo service openvpn start
  5. Далее нам нужно получить общий ключ с сервера на ваш локальный компьютер. Сначала нам нужно изменить разрешения для этого файла, чтобы мы могли получить к нему доступ, используя следующую команду:
    Code:
    sudo chmod 777 ovpn.key
  6. Если в какой-то момент вы случайно закроете PuTTy или он просто выйдет из строя, вы можете вернуться в свой открытый каталог установки VPN после повторного подключения с помощью этой команды:
    Code:
    cd / etc / openvpn
  7. Чтобы сделать это как можно проще, загрузите и установите это бесплатное приложение WinSCP (пользователям Mac придется найти другой FTP-клиент. Не волнуйтесь, их много). Просто используйте параметры установки по умолчанию. Как только это будет сделано, должно появиться окно с предложением импортировать данные аутентификации сервера из PuTTy. Выберите тот, который мы сделали выше, и продолжайте.
    ec2-vpn-14.png
  8. Выберите myvpn (или как вы его назвали) и нажмите кнопку «Изменить». Введите «ec2-user» под именем пользователя. Щелкните "Войти".
    ec2-vpn-15-1024x658.png
  9. Теперь вы можете перемещать файлы между сервером экземпляра EC2 и локальным компьютером. На правой панели пройдите вверх как можно дальше, затем перейдите в etc / openvpn. Здесь вы найдете нужный нам файл ovpn.key. Щелкните и перетащите его в папку по вашему выбору, но помните, куда вы его положили, поскольку мы захотим переместить его позже.
    ec2-vpn-16.png
  10. Теперь, когда у вас есть ключ, нам нужно повторно применить старые разрешения, чтобы не каждый мог его получить. Вернувшись в свой терминал PuTTy, введите:
    Code:
    sudo chmod 600 ovpn.key
  11. Пришло время загрузить клиент OpenVPN и графический интерфейс для вашего локального компьютера. Перейдите на страницу загрузок OpenVPN и выберите версию, подходящую для вашей операционной системы. Установите его с настройками по умолчанию.
  12. Запустите OpenVPN, и он должен появиться в виде значка на панели задач. Откройте файловый менеджер и перейдите туда, где вы установили OpenVPN, возможно, в папке Program Files. Переместите файл opvn.key, который мы загрузили с сервера, в папку config, которая находится здесь (C: / Program Files / OpenVPN / config… если вы использовали каталог установки по умолчанию в Windows).
  13. Затем нам нужно создать файл конфигурации для локальной машины, чтобы он соответствовал тому, который мы создали на нашем сервере. Откройте Блокнот и вставьте следующее, заменив IP-адрес после «удаленного» на IP-адрес своего экземпляра EC2 (если вы его забыли, найдите его в консоли AWS в разделе «Экземпляры EC2»). Кроме того, дважды проверьте правильность полного пути к файлу, указывающего на ваш ключ.
    Code:
    proto tcp-client
    remote <your EC2 IP here>   
    port 1194   
    dev tun   
    secret "C:\\Program Files\\OpenVPN\\config\\ovpn.key"   
    redirect-gateway def1   
    ifconfig 10.4.0.2 10.4.0.1
  14. Сохраните его как myconfig.ovpn (убедитесь, что ваш текстовый редактор не добавил его по ошибке как myconfig.ovpn.txt) в папке config вашей установки OpenVPN, в том же месте, что и ваш файл opvn.key.
    ec2-vpn-17.png
  15. Щелкните правой кнопкой мыши значок OpenVPN на панели задач и нажмите «Выход», чтобы выйти. Теперь запустите его снова - либо с ярлыка на рабочем столе, либо из папки Program Files, но на этот раз щелкните правой кнопкой мыши и выберите «Запуск от имени администратора». Если вы не запустите OpenVPN в Windows от имени администратора, он, вероятно, не сработает.
    ec2-vpn-18.png
  16. Щелкните правой кнопкой мыши значок на панели задач и выберите «Подключиться». Должен появиться графический интерфейс OpenVPN, показывающий статус подключения. Если это сработало, значок на панели задач станет зеленым. Перейдите в Google и введите «Какой у меня IP?», И он должен вернуть IP-адрес вашего инстанса Amazon EC2.
    ec2-vpn-19.png

Поздравляем, вы только что создали собственный VPN!

Дополнительные примечания
Если вы хотите защитить свой VPN от глубокой проверки пакетов, метода, используемого режимами цензуры в таких местах, как Китай и Сирия, для блокировки соединений OpenVPN, ознакомьтесь с руководством по настройке Obfsproxy. Обратите внимание, что этот учебник был написан как своего рода продолжение более старого метода №2 в этой статье, поэтому, если вы использовали easy-rsa, он потребует некоторой дополнительной настройки.

Не забудьте сохранить пропускную способность в пределах бесплатного уровня Amazon. Самый простой способ сделать это - щелкнуть правой кнопкой мыши свой экземпляр в консоли AWS и щелкнуть ссылку «Добавить / изменить сигналы тревоги». Вы можете настроить сервер так, чтобы он останавливался или даже прекращал работу после нескольких часов бездействия. Уровень бесплатного пользования позволяет использовать 750 часов в месяц (что покрывает весь месяц), поэтому вам не нужно этого делать. Тем не менее, пользователи, прошедшие первый год бесплатного обслуживания или выполняющие больше работы со своим сервером, могут предотвратить ненужные расходы за неиспользованное время сервера.

Где-то в этом уроке у вас, вероятно, что-то пойдет не так. Если вам действительно нужен VPN, но вы не готовы делать свою долю устранения неполадок, вероятно, лучше всего выбрать платную услугу VPN. Они также позволяют направлять ваш интернет-трафик через несколько географических местоположений, тогда как экземпляр EC2 ограничен только одним.

Жесткое программирование DNS-серверов в вашей VPN
Если вам нужно настроить определенные DNS-серверы для использования с вашим VPN, есть несколько вариантов.

Чтобы «протолкнуть» DNS-сервер клиенту, добавьте эту строку в конфигурацию сервера. Это повлияет на все устройства, которые подключаются к вашей VPN (включая кавычки):

Code:
push "dhcp-option DNS 45.56.117.118"

В качестве альтернативы вы можете установить DNS в индивидуальной конфигурации клиента, используя:

Code:
dhcp-option DNS 45.56.117.118

В этих примерах я использовал общедоступный DNS-сервер OpenNIC с анонимным ведением журнала, расположенный в США. Вы можете найти OpenNIC сервера в стране вашего выбора и фильтра на таких функциях, как анонимная вырубка и DNSCrypt здесь.

comparitech.com
 
Last edited:
Top