Настройка OpenVPN Centos 7

Обновлено: 02.07.2024

Сервер OpenVPN Access полностью совместим с CentOS. Репозиторий программного обеспечения OpenVPN Access Server содержит следующие три компонента:

  • Популярное программное обеспечение VPN-сервера с открытым исходным кодом OpenVPN.
  • Удобный и интуитивно понятный веб-интерфейс.
  • Клиентское программное обеспечение для Windows, macOS, Android, iOS и Linux.

1. Установите обновления и установите правильное время

Мы рекомендуем начать с обновления операционной системы до последней версии и убедиться, что в ней установлено правильное время:

  1. Войдите в свою систему Linux с консоли или через SSH и получите привилегии суперпользователя.
  2. Выполните приведенные ниже команды, чтобы установить обновления и правильно установить время и дату:

Примечание. Мы предполагаем, что в вашей ОС есть инструмент синхронизации времени, обеспечивающий правильную дату и время. Если это не так, вы должны убедиться, что они верны, и рассмотреть возможность установки клиентской программы Network Time Protocol (NTP), чтобы поддерживать точное время на вашем сервере. Сервер доступа использует точное время для одноразовых паролей на основе времени для многофакторной проверки подлинности и управления сертификатами.

2. Установите OpenVPN Access Server из репозитория программного обеспечения

  1. Нажмите на ссылку ниже и следуйте инструкциям для вашей операционной системы.
  2. Убедитесь, что вы выбрали правильную операционную систему и версию. Затем скопируйте и вставьте инструкции на свой сервер, чтобы установить пакет openvpn-as и завершить установку.

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

3. Обратите внимание на доступ к веб-интерфейсу и учетные данные для входа

После установки пакета openvpn-as запишите адреса пользовательского интерфейса администратора и пользовательского интерфейса клиента, а также случайно сгенерированный пароль для вашего административного пользователя openvpn. Они отображаются на экране, как в этом примере:

4. Завершите настройку и настройте пользователей в веб-интерфейсе

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

Веб-интерфейс администратора сервера доступа предоставляет интуитивно понятный инструмент для управления настройками сервера доступа OpenVPN. Но при первом доступе к нему вы получите предупреждение о том, что безопасность или конфиденциальность веб-сайта не может быть определена. Это ожидаемо. Сервер доступа поставляется с самозаверяющим, ненадежным SSL-сертификатом, чтобы веб-служба работала. Вы можете отменить это предупреждающее сообщение и продолжить. Мы рекомендуем вам настроить действительное имя хоста DNS для вашего сервера доступа и установить действительный подписанный сертификат SSL, чтобы устранить это сообщение.


Подробнее об этом шаге см. в разделе Завершение настройки сервера доступа.

Рекомендуемые дальнейшие действия

Советы по установке

Чтобы получить доступ к серверу доступа OpenVPN через Интернет, установите имя хоста или IP-адрес так, чтобы он был обращен к общедоступному Интернету. Если вы настроили свой сервер в частной сети, он может использовать частный IP-адрес, недоступный из Интернета. Вы можете изменить это, настроив DNS-имя хоста, которое разрешается в общедоступный IP-адрес, по которому можно получить доступ к вашему серверу доступа, и настроив его в веб-интерфейсе администратора. Предполагая, что нужные порты открыты, ваши VPN-клиенты могут получить доступ к серверу доступа из-за пределов вашей частной сети. Установка DNS-имени хоста также позволяет установить действительный подписанный SSL-сертификат, соответствующий этому DNS-имени хоста.

Подсеть по умолчанию для внутренней подсети VPN сервера доступа OpenVPN — 172.27.224.0/20. Вы можете изменить подсеть на ту, которая лучше подходит для вашей текущей сети.

Клиент OpenVPN Connect

На клиентских устройствах VPN должна быть установлена ​​программа, например OpenVPN Connect, для установления VPN-подключения к серверу доступа. Вы можете получить необходимое программное обеспечение и сведения о подключении в пользовательском интерфейсе клиента. Это тот же адрес, что и в веб-интерфейсе администратора, за исключением части /admin.

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

Виртуальная частная сеть (VPN) позволяет вам проходить через ненадежные сети, как если бы вы были в частной сети. Это дает вам возможность безопасного и надежного доступа в Интернет со смартфона или ноутбука при подключении к ненадежной сети, такой как Wi-Fi в отеле или кафе.

OpenVPN – это полнофункциональное VPN-решение с открытым кодом Secure Socket Layer (SSL), поддерживающее широкий спектр конфигураций. В этом руководстве вы настроите OpenVPN на сервере CentOS 7, а затем настроите его так, чтобы он был доступен с клиентского компьютера.

Примечание. Если вы планируете настроить сервер OpenVPN в дроплете DigitalOcean, имейте в виду, что мы, как и многие хостинг-провайдеры, взимаем плату за превышение пропускной способности.По этой причине обратите внимание на объем трафика, который обрабатывает ваш сервер.

Дополнительную информацию см. на этой странице.

Предпосылки

Чтобы следовать этому руководству, вам потребуется:

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

Домен или поддомен, разрешающий ваш сервер, который вы можете использовать для сертификатов. Чтобы настроить это, вам сначала нужно зарегистрировать доменное имя, а затем добавить запись DNS через панель управления DigitalOcean. Обратите внимание, что простое добавление записи A будет соответствовать требованиям этого руководства.

Клиентский компьютер, который вы будете использовать для подключения к серверу OpenVPN. Для целей этого руководства рекомендуется использовать локальный компьютер в качестве клиента OpenVPN.

Установив эти предварительные условия, вы готовы приступить к установке и настройке сервера OpenVPN в CentOS 7.

Шаг 1 — Установка OpenVPN

Для начала мы установим OpenVPN на сервер. Мы также установим Easy RSA, инструмент управления инфраструктурой открытых ключей, который поможет нам настроить внутренний центр сертификации (ЦС) для использования с нашей VPN. Позже мы также будем использовать Easy RSA для создания пар ключей SSL для защиты VPN-соединений.

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

Репозиторий Extra Packages for Enterprise Linux (EPEL) — это дополнительный репозиторий, управляемый проектом Fedora, содержащий нестандартные, но популярные пакеты. OpenVPN недоступен в репозиториях CentOS по умолчанию, но доступен в EPEL, поэтому установите EPEL:

Далее установите OpenVPN и wget, которые мы будем использовать для установки Easy RSA:

С помощью wget загрузите Easy RSA. Для целей этого руководства мы рекомендуем использовать easy-rsa-2, поскольку для этой версии доступно больше документации. Вы можете найти ссылку для скачивания последней версии easy-rsa-2 на странице релизов проекта:

Затем извлеките сжатый файл с помощью tar:

Это создаст новый каталог на вашем сервере с именем easy-rsa-old-2.3.3. Создайте новый подкаталог в /etc/openvpn и назовите его easy-rsa:

Скопируйте извлеченные файлы Easy RSA в новый каталог:

Затем измените владельца каталога на пользователя sudo без полномочий root:

После того как эти программы будут установлены и перемещены в нужное место в вашей системе, следующим шагом будет настройка конфигурации OpenVPN на стороне сервера.

Шаг 2 — Настройка OpenVPN

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

В каталоге документации OpenVPN есть несколько примеров файлов конфигурации. Сначала скопируйте пример файла server.conf в качестве отправной точки для вашего собственного файла конфигурации.

Откройте новый файл для редактирования в текстовом редакторе по вашему выбору. В нашем примере мы будем использовать nano, который вы можете загрузить с помощью команды yum install nano, если он еще не установлен на вашем сервере:

В этом файле нам нужно изменить несколько строк, большинство из которых нужно просто раскомментировать, удалив точку с запятой, ; , в начале строки. Функции этих и других линий, не упомянутых в этом руководстве, подробно объясняются в комментариях над каждой из них.

Для начала найдите и раскомментируйте строку, содержащую push "redirect-gateway def1 bypass-dhcp" . Это скажет вашему клиенту перенаправить весь свой трафик через ваш сервер OpenVPN. Имейте в виду, что включение этой функции может вызвать проблемы с подключением к другим сетевым службам, таким как SSH:

Поскольку ваш клиент не сможет использовать DNS-серверы по умолчанию, предоставленные вашим интернет-провайдером (поскольку его трафик будет перенаправлен), вам необходимо сообщить ему, какие DNS-серверы он может использовать для подключения к OpenVPN. Вы можете выбрать разные DNS-серверы, но здесь мы будем использовать общедоступные DNS-серверы Google с IP-адресами 8.8.8.8 и 8.8.4.4 .

Установите это, раскомментировав строки push "dhcp-option DNS . " и обновив IP-адреса:

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

Далее раскомментируйте строку топологии подсети. Это, вместе с строкой сервера 10.8.0.0 255.255.255.0 под ней, настраивает вашу установку OpenVPN для работы в качестве подсети и сообщает клиентскому компьютеру, какой IP-адрес он должен использовать. В этом случае сервер станет 10.8.0.1, а первый клиент станет 10.8.0.2:

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

Наконец, OpenVPN настоятельно рекомендует пользователям включить аутентификацию TLS, криптографический протокол, обеспечивающий безопасную связь по компьютерной сети. Для этого вам потребуется сгенерировать статический ключ шифрования (названный в нашем примере как myvpn .tlsauth, хотя вы можете выбрать любое имя). Перед созданием этого ключа закомментируйте строку в файле конфигурации, содержащую tls-auth ta.key 0, поставив перед ней точку с запятой. Затем добавьте tls-crypt myvpn .tlsauth в строку ниже:

Сохраните и выйдите из файла конфигурации сервера OpenVPN (в nano нажмите CTRL – X , Y , затем ENTER, чтобы сделать это), а затем сгенерируйте статический ключ шифрования с помощью следующей команды:

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

Шаг 3 — Генерация ключей и сертификатов

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

Мы начнем процесс создания ключей и сертификатов с создания каталога, в котором Easy RSA будет хранить все созданные вами ключи и сертификаты:

Переменные сертификата по умолчанию задаются в файле vars в /etc/openvpn/easy-rsa, поэтому откройте этот файл для редактирования:

  • KEY_CN : здесь введите домен или поддомен, который разрешается на ваш сервер.
  • KEY_NAME: здесь нужно указать сервер. Если вы введете что-то еще, вам также придется обновить файлы конфигурации, которые ссылаются на server.key и server.crt .
  • KEY_COUNTRY : для этой переменной введите двухбуквенное сокращение страны вашего проживания.
  • KEY_PROVINCE: название или аббревиатура штата, в котором вы проживаете.
  • KEY_CITY: введите здесь название города, в котором вы живете.
  • KEY_ORG : это должно быть название вашей организации или компании.
  • KEY_EMAIL: введите адрес электронной почты, который вы хотите подключить к сертификату безопасности.
  • KEY_OU : это должно быть название «Организационного подразделения», к которому вы принадлежите, обычно либо название вашего отдела, либо команды.

Остальные переменные можно безопасно игнорировать за пределами конкретных случаев использования. После внесения изменений файл должен выглядеть следующим образом:

Сохраните и закройте файл.

Чтобы начать генерировать ключи и сертификаты, перейдите в каталог easy-rsa и введите новые переменные, которые вы установили в файле vars:

Запустите сценарий очистки Easy RSA, чтобы удалить все ключи и сертификаты, уже находящиеся в папке, и создать центр сертификации:

Затем создайте центр сертификации с помощью сценария build-ca. Вам будет предложено ввести значения для полей сертификата, но если вы установили переменные в файле vars ранее, все ваши параметры уже будут установлены по умолчанию. Вы можете нажать ENTER, чтобы принять значения по умолчанию для каждого из них:

Этот скрипт создает файл с именем ca.key . Это закрытый ключ, используемый для подписи сертификатов вашего сервера и клиентов. Если он будет утерян, вы больше не сможете доверять никаким сертификатам этого центра сертификации, и если кто-то сможет получить доступ к этому файлу, он сможет подписать новые сертификаты и получить доступ к вашей VPN без вашего ведома. По этой причине OpenVPN рекомендует хранить ca.key в месте, которое может быть максимально удалено от сети, и его следует активировать только при создании новых сертификатов.

Затем создайте ключ и сертификат для сервера с помощью скрипта build-key-server:

Как и при построении CA, вы увидите значения, которые вы установили в качестве значений по умолчанию, поэтому вы можете нажать ENTER в этих запросах. Кроме того, вам будет предложено ввести контрольный пароль и необязательное название компании. Если вы введете контрольный пароль, он будет запрошен при подключении к VPN с вашего клиента. Если вы не хотите устанавливать контрольный пароль, просто оставьте эту строку пустой и нажмите ENTER. В конце введите Y, чтобы зафиксировать изменения.

Последняя часть создания ключей и сертификатов сервера — создание файла обмена ключами Диффи-Хеллмана. Для этого используйте скрипт build-dh:

Это может занять несколько минут.

После того, как ваш сервер завершит создание файла обмена ключами, скопируйте ключи и сертификаты сервера из каталога ключей в каталог openvpn:

Каждому клиенту также потребуется сертификат, чтобы сервер OpenVPN мог его аутентифицировать.Эти ключи и сертификаты будут созданы на сервере, а затем вам придется скопировать их на свои клиенты, что мы и сделаем на следующем этапе. Рекомендуется создавать отдельные ключи и сертификаты для каждого клиента, которого вы собираетесь подключить к VPN.

Поскольку здесь мы настроим только один клиент, мы назвали его client , но при желании вы можете изменить его на более описательное имя:

Наконец, скопируйте файл конфигурации OpenSSL с версией OpenSSL, openssl-1.0.0.cnf, с именем без версии, openssl.cnf. Если этого не сделать, может возникнуть ошибка, из-за которой OpenSSL не сможет загрузить конфигурацию, поскольку не может определить ее версию:

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

Шаг 4 — Маршрутизация

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

Предполагая, что вы выполнили предварительные требования в начале этого руководства, у вас уже должен быть установлен и запущен firewalld на вашем сервере. Чтобы разрешить OpenVPN через брандмауэр, вам нужно знать, какая у вас активная зона firewalld. Найдите это с помощью следующей команды:

Затем добавьте службу openvpn в список служб, разрешенных firewalld в вашей активной зоне, а затем сделайте этот параметр постоянным, выполнив команду еще раз, но с добавленным параметром --permanent:

Вы можете проверить правильность добавления службы с помощью следующей команды:

Затем добавьте маскарад к текущему экземпляру среды выполнения, а затем добавьте его снова с параметром --permanent, чтобы добавить маскарад ко всем будущим экземплярам:

Вы можете проверить правильность добавления маскарада с помощью этой команды:

Затем перенаправьте маршрутизацию в свою подсеть OpenVPN. Вы можете сделать это, сначала создав переменную (SHARK в нашем примере), которая будет представлять основной сетевой интерфейс, используемый вашим сервером, а затем используя эту переменную для постоянного добавления правила маршрутизации:

Обязательно внесите эти изменения в правила брандмауэра, перезагрузив firewalld:

Затем включите IP-переадресацию. Это направит весь веб-трафик от вашего клиента на IP-адрес вашего сервера, а общедоступный IP-адрес вашего клиента будет эффективно скрыт.

Откройте sysctl.conf для редактирования:

Затем добавьте следующую строку вверху файла:

Наконец, перезапустите сетевую службу, чтобы IP-переадресация вступила в силу:

Установив правила маршрутизации и брандмауэра, мы можем запустить службу OpenVPN на сервере.

Шаг 5 — Запуск OpenVPN

OpenVPN управляется как служба systemd с помощью systemctl . Мы настроим OpenVPN для запуска при загрузке, чтобы вы могли подключиться к VPN в любое время, пока работает ваш сервер. Для этого включите сервер OpenVPN, добавив его в systemctl :

Затем запустите службу OpenVPN:

Дважды проверьте, активна ли служба OpenVPN, с помощью следующей команды. В выводе вы должны увидеть активное (работающее):

Теперь мы завершили настройку OpenVPN на стороне сервера. Далее вы настроите свой клиентский компьютер и подключитесь к серверу OpenVPN.

Шаг 6 — Настройка клиента

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

Найдите следующие файлы на своем сервере. Если вы сгенерировали несколько клиентских ключей с уникальными описательными именами, то имена ключей и сертификатов будут разными. В этой статье мы использовали клиент .

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

Далее создайте на клиентском компьютере файл с именем client.ovpn. Это файл конфигурации для клиента OpenVPN, который сообщает ему, как подключиться к серверу:

Затем добавьте следующие строки в client.ovpn . Обратите внимание, что многие из этих строк отражают строки, которые мы раскомментировали или добавили в файл server.conf, или которые уже были в нем по умолчанию:

При добавлении этих строк обратите внимание на следующее:

  • Вам нужно будет изменить первую строку, чтобы она отражала имя, которое вы дали клиенту в своем ключе и сертификате; в нашем случае это просто клиент
  • Вам также необходимо обновить IP-адрес с your_server_ip на IP-адрес вашего сервера; порт 1194 может остаться прежним
  • Убедитесь, что пути к файлам ключей и сертификатов указаны правильно.

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

Windows:

В Windows вам потребуются официальные двоичные файлы OpenVPN Community Edition, которые поставляются с графическим интерфейсом. Поместите файл конфигурации .ovpn в соответствующий каталог, C:\Program Files\OpenVPN\config и нажмите «Подключиться» в графическом интерфейсе. Графический интерфейс OpenVPN в Windows должен запускаться с правами администратора.

macOS:

В macOS приложение с открытым исходным кодом Tunnelblick предоставляет интерфейс, аналогичный графическому интерфейсу OpenVPN в Windows, и поставляется с OpenVPN и необходимыми драйверами TUN/TAP. Как и в случае с Windows, единственный необходимый шаг — поместить файл конфигурации .ovpn в каталог ~/Library/Application Support/Tunnelblick/Configurations. Кроме того, вы можете дважды щелкнуть файл .ovpn.

Линукс:

В Linux вам следует установить OpenVPN из официальных репозиториев вашего дистрибутива. Затем вы можете вызвать OpenVPN, выполнив:

После того, как вы успешно установили клиентское соединение, вы можете убедиться, что ваш трафик направляется через VPN, проверив Google, чтобы раскрыть ваш общедоступный IP-адрес.

Заключение

Теперь у вас должна быть полностью рабочая виртуальная частная сеть, работающая на вашем сервере OpenVPN. Вы можете просматривать веб-страницы и загружать контент, не беспокоясь о том, что злоумышленники отслеживают ваши действия.

Есть несколько шагов, которые можно предпринять для дальнейшей настройки установки OpenVPN, например, настроить клиент для автоматического подключения к VPN или настроить правила и политики доступа для конкретного клиента. Чтобы узнать об этих и других настройках OpenVPN, обратитесь к официальной документации OpenVPN. Если вас интересуют другие способы защитить себя и свои компьютеры в Интернете, ознакомьтесь с нашей статьей «7 мер безопасности для защиты ваших серверов».

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Виртуальная частная сеть – это технологическое решение, используемое для обеспечения конфиденциальности и безопасности межсетевых соединений. Самый известный случай связан с подключением людей к удаленному серверу с трафиком, проходящим через общедоступную или небезопасную сеть (например, Интернет).

Представьте себе следующие сценарии:

Сеть OpenVPN Диаграмма

В этой статье мы объясним, как настроить VPN-сервер в системе RHEL/CentOS 8/7 с помощью OpenVPN, надежного и очень гибкого приложения для туннелирования, использующего функции шифрования, аутентификации и сертификации библиотеки OpenSSL. Для простоты мы рассмотрим только случай, когда сервер OpenVPN действует как безопасный интернет-шлюз для клиента.

Для этой настройки мы использовали три машины, первая из которых действует как сервер OpenVPN, а две другие (Linux и Windows) действуют как клиент для подключения к удаленному серверу OpenVPN.

На этой странице

Примечание. Эти же инструкции также работают в системах RHEL 8/7 и Fedora.

Установка OpenVPN-сервера в CentOS 8

<р>1. Чтобы установить OpenVPN на сервер RHEL/CentOS 8/7, вам сначала нужно включить репозиторий EPEL, а затем установить пакет. Он поставляется со всеми зависимостями, необходимыми для установки пакета OpenVPN.

<р>2. Далее мы загрузим сценарий установки OpenVPN и настроим VPN. Перед загрузкой и запуском скрипта важно найти общедоступный IP-адрес вашего сервера, поскольку он пригодится при настройке сервера OpenVPN.

Проще всего это сделать с помощью команды curl, как показано ниже:

 Проверьте IP-адрес сервера CentOS

В качестве альтернативы вы можете вызвать команду dig следующим образом:

 Найдите IP-адрес сервера CentOS

Если вы получаете сообщение об ошибке «dig: команда не найдена», установите утилиту dig, выполнив команду:

Это должно решить проблему.

Примечание об общедоступных IP-адресах

Облачные серверы обычно имеют два типа IP-адресов:

  • Один общедоступный IP-адрес. Если у вас есть VPS на облачных платформах, таких как Linode, Cloudcone или Digital Ocean, к нему обычно прикреплен один общедоступный IP-адрес.
  • Частный IP-адрес за NAT с общедоступным IP-адресом: это случай с экземпляром EC2 в AWS или вычислительным экземпляром в Google Cloud.

Какой бы ни была схема IP-адресации, сценарий OpenVPN автоматически обнаружит настройку вашей сети VPS, и все, что вам нужно сделать, это указать соответствующий общедоступный или частный IP-адрес.

<р>3. Теперь давайте продолжим и загрузим скрипт установки OpenVPN, запустив указанную команду.

Загрузить скрипт OpenVPN

<р>4. Когда загрузка будет завершена, назначьте разрешения на выполнение и запустите сценарий оболочки, как показано.

Установщик проведет вас через ряд подсказок:

<р>5. Сначала вам будет предложено указать общедоступный IP-адрес вашего сервера. После этого рекомендуется использовать параметры по умолчанию, такие как номер порта по умолчанию (1194) и используемый протокол (UDP).

 Установите OpenVPN в CentOS 8

<р>6. Затем выберите сопоставители DNS по умолчанию и выберите параметр «Нет» ( n ) для параметров сжатия и шифрования.

Настроить DNS для OpenVPN

<р>7. После этого сценарий инициализирует установку сервера OpenVPN вместе с установкой других программных пакетов и зависимостей.

 Установка OpenVPN на CentOS 8

<р>8. Наконец, файл конфигурации клиента будет создан с использованием пакета easy-RSA, который представляет собой инструмент командной строки, используемый для управления сертификатами безопасности.

Просто укажите имя клиента и используйте параметры по умолчанию. Файл клиента будет храниться в вашем домашнем каталоге с расширением .ovpn.

Конфигурация клиента OpenVPN с Easy-RSA

<р>9. После того, как скрипт завершит настройку сервера OpenVPN и создаст файл конфигурации клиента, будет создан туннельный интерфейс tun0. Это виртуальный интерфейс, через который весь трафик с клиентского ПК будет туннелироваться на сервер.

OpenVPN Tunnel Interface

<р>10. Теперь вы можете запустить и проверить состояние сервера OpenVPN, как показано на рисунке.

Проверить OpenVPN Состояние сервера

Как настроить клиент OpenVPN в Linux

<р>11. Теперь перейдите в клиентскую систему и установите репозиторий EPEL и программные пакеты OpenVPN.

<р>12. После установки вам необходимо скопировать файл конфигурации клиента с сервера OpenVPN в вашу клиентскую систему. Вы можете сделать это с помощью команды scp, как показано

Копировать OpenVPN Конфигурация клиента» width=

<р>13. После загрузки файла клиента в вашу систему Linux вы можете инициализировать подключение к VPN-серверу с помощью команды:

Вы получите вывод, подобный тому, что мы имеем ниже.

Подключение к OpenVPN

<р>14. Создается новая таблица маршрутизации и устанавливается соединение с VPN-сервером. Опять же, в клиентской системе создается интерфейс туннеля виртуального интерфейса tun0.

Как упоминалось ранее, это интерфейс, который будет безопасно туннелировать весь трафик на сервер OpenVPN через туннель SSL. Интерфейсу динамически назначается IP-адрес VPN-сервером. Как видите, сервер OpenVPN назначил нашей клиентской системе Linux IP-адрес 10.8.0.2.

Подтвердить OpenVPN Сетевое подключение

<р>15. Чтобы убедиться, что мы подключены к серверу OpenVPN, мы проверим общедоступный IP-адрес.

Подтвердите IP-адрес клиента OpenVPN

И вуаля! наша клиентская система выбрала общедоступный IP-адрес VPN, подтверждая, что мы действительно подключены к серверу OpenVPN. Кроме того, вы можете запустить браузер и выполнить поиск в Google «Какой у меня IP-адрес», чтобы убедиться, что ваш общедоступный IP-адрес изменился на IP-адрес сервера OpenVPN.

Проверьте свой IP-адрес

Как настроить клиент OpenVPN в Windows

<р>16. В Windows вам потребуется загрузить официальные двоичные файлы OpenVPN Community Edition, которые поставляются с графическим интерфейсом.

<р>17. Затем загрузите файл конфигурации .ovpn в каталог C:\Program Files\OpenVPN\config и в качестве администратора запустите графический интерфейс OpenVPN из Пуск –> Все программы –> OpenVPN, и он будет запущен в фоновом режиме.

Обзор

В этой статье мы объяснили, как установить и настроить VPN-сервер с помощью OpenVPN, а также как настроить два удаленных клиента (компьютер с Linux и компьютер с Windows). Теперь вы можете использовать этот сервер в качестве VPN-шлюза для защиты своих действий в Интернете. С небольшими дополнительными усилиями (и доступным другим удаленным сервером) вы также можете настроить безопасный файловый сервер/сервер базы данных, чтобы назвать несколько примеров.

Мы с нетерпением ждем вашего ответа, поэтому не стесняйтесь написать нам, заполнив форму ниже. Комментарии, предложения и вопросы по этой статье приветствуются.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

install_openvpn_centos_tutorial

Защитите свои данные просмотра: установите OpenVPN на CentOS 7

И хотя есть несколько платных VPN-сервисов, которые довольно просты для вашего кошелька.

Если вы пытаетесь защитить свои данные, то зачем доверять их сверхсекретной компании, которая может иметь или не иметь связи с операциями по анализу данных?

Сэкономьте 10% на любом плане VPS, используя код PERFORMANCE10 при оформлении заказа

Ответ: не стоит.

Особенно, когда так просто и доступно настроить собственный быстрый VPN на VPS с SSD-узлами.

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

Необходимые условия для установки OpenVPN на Centos 7

  • Два VPS под управлением CentOS 7, один для размещения службы OpenVPN, а другой для использования в качестве центра сертификации (ЦС). Не рекомендуется использовать сервер OpenVPN в качестве ЦС, так как это делает вашу VPN уязвимой для безопасности.
  • Обычная учетная запись (без полномочий root) с правами sudo. Дополнительную информацию см. в нашем руководстве по ключам SSH.

ПРИМЕЧАНИЕ. Если вы отключите аутентификацию по паролю при настройке этих серверов, вы можете столкнуться с трудностями при передаче файлов между ними позже в этом руководстве. Чтобы решить эту проблему, вы можете повторно включить аутентификацию по паролю на каждом сервере. Или вы можете сгенерировать пару ключей SSH для каждого сервера, а затем добавить открытый ключ SSH сервера OpenVPN в файл author_keys компьютера ЦС и наоборот.

Какое ЛУЧШЕЕ ПРЕДЛОЖЕНИЕ на облачном хостинге?

Разрабатывайте с максимальной скоростью с помощью высокопроизводительного VPS на основе SSD-узлов. Мы УДВОИЛИ объем молниеносно быстрого хранилища NVMe в нашем самом популярном плане и увеличили предложение ЦП в этих планах. На рынке нет ничего подобного, по крайней мере, по таким ценам.

Выиграйте высокопроизводительный VPS объемом 16 ГБ с хранилищем NVMe объемом 160 ГБ всего за 99 долларов США в год в течение ограниченного времени!

Шаг 1. Установите OpenVPN и EasyRSA

Давайте начнем с обновления нашего кэша apt и установки репозитория EPEL.

Обновите список пакетов еще раз.

Затем установите OpenVPN, wget и nano (или ваш любимый текстовый редактор).

OpenVPN использует SSL/TLS для аутентификации и обмена ключами для шифрования трафика между сервером и клиентами.

Чтобы выдавать доверенные сертификаты, необходимо настроить простой центр сертификации (ЦС). Для этого мы загрузим последнюю версию EasyRSA, которую мы будем использовать для создания нашей инфраструктуры открытых ключей CA (PKI), из официального репозитория проекта GitHub.

ПРИМЕЧАНИЕ. В качестве дополнительной меры предосторожности рекомендуется отключать сервер ЦС, если он не используется для подписи ключей.

Чтобы приступить к созданию инфраструктуры CA и PKI, используйте wget для загрузки последней версии EasyRSA как на свой компьютер CA, так и на сервер OpenVPN.

Затем распакуйте архив:

Вы успешно установили все необходимое программное обеспечение на свой сервер и машину ЦС.

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

Шаг 2. Настройте центр сертификации

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

На своем компьютере CA перейдите в каталог EasyRSA:

Мы можем использовать шаблон easy-rsa, сделав копию существующего файла vars.example в этом каталоге и переименовав его в vars :

Нам нужно отредактировать некоторые переменные, которые помогают решить, как создавать сертификаты. Используйте nano или другой любимый редактор, чтобы открыть файл. Мы будем редактировать некоторые переменные ближе к концу файла.

Найдите настройки, задающие поля по умолчанию для новых сертификатов. Это будет выглядеть примерно так:

Раскомментируйте эти строки и измените выделенные значения на нужные, но не оставляйте их пустыми:

Сохраните и закройте файл после редактирования.

В каталоге EasyRSA находится скрипт easyrsa, который используется для выполнения различных задач, связанных с созданием и управлением ЦС. Запустите этот сценарий с параметром init-pki, чтобы инициировать инфраструктуру открытого ключа на сервере ЦС:

После этого снова вызовите скрипт easyrsa, указав в нем параметр build - ca. При этом создается центр сертификации и два важных файла — ca.crt и ca.key, которые составляют общедоступную и частную части сертификата SSL.

Если вы не хотите, чтобы при каждом взаимодействии с центром сертификации у вас запрашивался пароль, вы можете запустить команду build - ca с параметром nopass:

В выходных данных вам будет предложено подтвердить общее имя для вашего центра сертификации:

Общее имя — это имя, используемое для ссылки на этот компьютер в контексте центра сертификации. Вы можете ввести любую строку символов для общего имени ЦС, но для простоты нажмите ENTER, чтобы принять имя по умолчанию.

После этого ваш ЦС создан и готов начать подписывать запросы на сертификаты.

Шаг 3. Создайте сертификат сервера и открытый/закрытый ключи

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

Перейдите в каталог EasyRSA на вашем сервере OpenVPN:

Здесь запустите скрипт easyrsa с параметром init - pki. Хотя вы уже выполнили эту команду на машине ЦС, необходимо выполнить ее здесь, поскольку ваш сервер и ЦС будут иметь отдельные каталоги PKI:

Затем снова вызовите сценарий easyrsa, на этот раз с параметром gen - req, за которым следует общее имя машины.
Это может быть что угодно, но для этого урока мы выбираем vpnserver . Включите параметр nopass, в противном случае файл запроса будет защищен паролем, что впоследствии может привести к проблемам с разрешениями:

Примечание. Если вы выберете здесь имя, отличное от «сервер», вам придется изменить некоторые приведенные ниже инструкции. Например, при копировании сгенерированных файлов в каталог /etc/openvpn вам придется подставлять правильные имена. Вам также придется позже изменить файл /etc/openvpn/server.conf, чтобы он указывал на правильные файлы .crt и .key.

При этом будет создан закрытый ключ для сервера и файл запроса сертификата с именем vpnserver.req. Скопируйте ключ сервера в каталог /etc/openvpn/:

Используя безопасный метод (например, SCP в нашем примере ниже), перенесите файл vpnserver.req на свой компьютер CA:

Затем на своем компьютере CA перейдите в каталог EasyRSA:

Снова используя сценарий easyrsa, импортируйте файл vpnserver.req, указав путь к файлу с его общим именем:

Затем подпишите запрос, запустив скрипт easyrsa с параметром sign - req, за которым следует тип запроса и общее имя. Тип запроса может быть клиентским или серверным , поэтому для запроса сертификата сервера OpenVPN обязательно используйте тип запроса сервера:

Если вы зашифровали ключ ЦС, на этом этапе вам будет предложено ввести пароль.

Затем передайте подписанный сертификат обратно на VPN-сервер безопасным способом:

Прежде чем выйти из системы ЦС, также перенесите файл ca.crt на свой сервер:

Затем снова войдите на свой сервер OpenVPN и скопируйте файлы server.crt и ca.crt в каталог /etc/openvpn/:

Затем перейдите в каталог EasyRSA:

Оттуда создайте надежный ключ Диффи-Хеллмана для использования во время обмена ключами, набрав:

Это может занять несколько минут. Как только это произойдет, сгенерируйте подпись HMAC, чтобы усилить возможности проверки целостности TLS сервера:

По завершении команды скопируйте два новых файла в каталог /etc/openvpn/:

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

Шаг 4. Генерация сертификата клиента и пары ключей

Создайте структуру каталогов в своем домашнем каталоге для хранения сертификата клиента и файлов ключей:

Затем вернитесь в каталог EasyRSA и запустите скрипт easyrsa с параметрами gen-req и nopass, а также общим именем клиента:

ПРИМЕЧАНИЕ. Вам нужно будет передать скрипту уникальное значение имени для каждого клиента. В этом руководстве первая пара сертификат/ключ называется clienta

Нажмите ENTER, чтобы подтвердить общее имя. Затем скопируйте файл clienta.key в созданный ранее каталог /client - configs/keys/:

Затем безопасно перенесите файл clienta.req на свой компьютер CA:

Войдите на свой компьютер CA, перейдите в каталог EasyRSA и импортируйте запрос сертификата:

Затем подпишите запрос, как вы сделали это для сервера на предыдущем шаге. Однако на этот раз обязательно укажите тип запроса клиента:

В ответ на приглашение введите yes, чтобы подтвердить, что вы намерены подписать запрос на сертификат и что он поступил из надежного источника. вы получите следующий вывод

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

При этом будет создан файл сертификата клиента с именем clienta.crt . Передайте этот файл обратно на сервер:

SSH обратно на ваш сервер OpenVPN и скопируйте сертификат клиента в каталог /client - configs/keys/:

Затем скопируйте файлы ca.crt и ta.key в каталог /client - configs/keys/:

Сертификаты и ключи вашего сервера и клиента сгенерированы и сохранены в соответствующих каталогах на вашем сервере.

Шаг 5. Настройте службу OpenVPN

Теперь, когда сертификаты и ключи вашего клиента и сервера сгенерированы, вы можете приступить к настройке службы OpenVPN для работы в CentOS 7, используя эти учетные данные.

Начните с копирования образца файла конфигурации OpenVPN в каталог конфигурации, а затем извлеките его, чтобы использовать его в качестве основы для вашей настройки:

Откройте файл конфигурации сервера в предпочитаемом вами текстовом редакторе:

Найдите раздел HMAC по директиве tls - auth. Эта строка уже должна быть раскомментирована, но если нет, то удалите ";" чтобы раскомментировать его. Ниже этой строки добавьте параметр key - direction, установите значение «0»:

Далее найдите раздел о криптографических шифрах, выполнив поиск закомментированных строк шифра. Шифр AES-256-CBC предлагает хороший уровень шифрования и хорошо поддерживается. Опять же, эта строка уже должна быть раскомментирована, но если это не так, просто удалите ";" перед ним:

Ниже добавьте директиву auth, чтобы выбрать алгоритм дайджеста сообщения HMAC. Для этого SHA256 — хороший выбор:

Если, как и в этом руководстве, вы ранее выбрали другое имя во время команды ./build-key-server, измените строки сертификата и ключа, чтобы они указывали на соответствующие файлы .crt и .key. По умолчанию используется server , а в этом руководстве используется vpnserver.

Далее найдите строку, содержащую директиву dh, определяющую параметры Диффи-Хеллмана. Из-за некоторых недавних изменений, внесенных в EasyRSA, имя файла для ключа Диффи-Хеллмана может отличаться от того, что указано в примере файла конфигурации сервера. При необходимости измените имя файла, указанное здесь, удалив 2048, чтобы оно совпадало с ключом, созданным на предыдущем шаге:

Наконец, найдите настройки пользователя и группы и удалите ";" в начале каждой, чтобы раскомментировать эти строки:

Изменения, которые вы внесли в образец файла server.conf до этого момента, необходимы для работы OpenVPN.
По завершении сохраните и закройте файл.

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

Шаг 6. Запуск и включение службы OpenVPN

Прежде чем настраивать наши клиенты, давайте удостоверимся, что сервер OpenVPN работает так, как мы надеемся.

Обязательно включите TUN/TAP на панели управления SSD-узлами.

Вы можете дважды проверить, работает ли OpenVPN, с помощью команды systemctl status:

Вам также потребуется настроить iptables для правильного направления трафика. Сначала найдите интерфейс по умолчанию.

Ваш вывод будет выглядеть следующим образом:

Поле eth0 — это то, что нам нужно.Затем настраиваем iptables. Чтобы убедиться, что это правило сохраняется между перезагрузками, установите пакет iptables — persistence, который предложит вам сохранить существующие правила. Выберите «Да», и ваши правила будут сохранены в дальнейшем.

Шаг 7. Настройка клиентов

Наконец, вам нужно создать конфигурации клиента. Вы можете хранить их в любой папке — их не нужно держать в секрете — если это не папка /etc/openvpn. Для этой цели мы создадим домашний каталог.

Теперь скопируйте образец конфигурации клиента в этот новый каталог, а затем откройте его в nano для редактирования.

Ищите следующий блок строк. Вам нужно будет изменить my-server-1 на общедоступный IP-адрес этого VPS. Вы можете найти эту информацию на панели инструментов SSD Nodes или введя команду ifconfig и найдя поле inet, которое не похоже на 127.0.0.x.

Далее раскомментируйте следующие две строки, удалив точку с запятой.

После:

Поскольку мы будем добавлять ключи и сертификаты непосредственно в файл .ovpn, давайте закомментируем следующие строки, добавив точку с запятой в начале.

После:

Наконец, перейдите в конец файла и добавьте следующие строки. Первые два отражают параметры шифрования/аутентификации, которые мы ранее добавили в файл server.conf, а третий устанавливает, что эти файлы будут использоваться для подключения к серверу, а не наоборот.

Мы также добавляем три закомментированных файла, которые следует раскомментировать для систем на базе Linux, использующих update-resolv-conf .

Наконец, вам нужно встроить ключи и сертификаты в файл .ovpn, используя base.conf в качестве основы. Скопируйте всю эту команду и выполните ее, чтобы внедрить ключи и создать окончательный файл client1.ovpn.

В этом руководстве не будут подробно рассматриваться конфигурации клиента, но мы расскажем об одном простом способе передачи файла .ovpn на ваш клиент Linux или OS X. Эта команда подключится к вашему VPS по ssh, а затем с помощью команды cat запишет новый файл client1.ovpn на ваш локальный компьютер.

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

Теперь вы используете OpenVPN на CentOS 7, чтобы сохранить конфиденциальность ваших данных в браузере

Поздравляем! Теперь вы можете просматривать Интернет в основном анонимно. Ваш VPN может скрыть от вашего интернет-провайдера данные о ваших просмотрах и добавить дополнительный уровень шифрования для важной информации.

Однако VPN не является полным плащом-невидимкой.

Это не означает, что вы перестали существовать. Некоторую деятельность все еще можно отследить, особенно со стороны правоохранительных органов. Поэтому узнайте, что он может и чего не может сделать для вас, чтобы не навлечь на себя неприятности.

Если вам нужен более автоматизированный метод установки OpenVPN, а также несколько других вариантов VPN, рассмотрите возможность попробовать наш учебник Streisand, чтобы узнать о другом популярном VPN, который вы можете использовать на своем VPS.

Читайте также: