Поиск по сайту:

Как установить и настроить сервер OpenVPN на CentOS 6


Статус: устарело

В этой статье рассматривается версия CentOS, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением CentOS 6, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию CentOS.

Причина:

См. вместо этого:

Следующий учебник DigitalOcean может представлять непосредственный интерес, поскольку в нем описывается установка и настройка OpenVPN на сервере CentOS 7:

  • Как установить и настроить сервер OpenVPN в CentOS 7

Введение

Эта статья поможет вам установить и настроить сервер OpenVPN на вашем облачном сервере CentOS 6. Мы также расскажем, как настроить клиент Windows, OS X или Linux для подключения к только что установленному серверу OpenVPN.

Прежде чем мы начнем, вам нужно включить репозиторий Extra Packages for Enterprise Linux (EPEL) на вашем облачном сервере. Это сторонний репозиторий, предлагаемый проектом Fedora, который предоставит пакет OpenVPN.

wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm

Начальная конфигурация OpenVPN

Сначала установите пакет OpenVPN от EPEL:

yum install openvpn -y

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

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Теперь, когда у нас есть файл в правильном месте, откройте его для редактирования:

nano -w /etc/openvpn/server.conf

Нашим первым изменением будет раскомментировать параметр «push», который заставляет трафик в наших клиентских системах маршрутизироваться через OpenVPN.

push "redirect-gateway def1 bypass-dhcp"

Кроме того, вы хотите изменить раздел, который сразу следует за маршрутом DNS-запросов к общедоступным DNS-серверам Google.

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Кроме того, для повышения безопасности убедитесь, что OpenVPN сбрасывает привилегии после запуска. Раскомментируйте соответствующие строки \user\ и \group\.

user nobody
group nobody

Генерация ключей и сертификатов с помощью easy-rsa

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

mkdir -p /etc/openvpn/easy-rsa/keys
cp -rf /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/easy-rsa

С файлами в нужном местоположении хорошо отредактируйте файл \vars\, который предоставляет сценариям easy-rsa необходимую информацию.

nano -w /etc/openvpn/easy-rsa/vars

Хотели изменить переменные \KEY_\, расположенные в нижней части файла. Имена переменных достаточно информативны и должны быть заполнены применимой информацией.

После завершения нижняя часть вашего файла \vars\ должна выглядеть примерно так:

export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York"
export KEY_ORG="Organization Name"
export KEY_EMAIL="administrator@example.com"
export KEY_CN=droplet.example.com
export KEY_NAME=server
export KEY_OU=server

OpenVPN может не определить правильно версию OpenSSL в CentOS 6. В качестве меры предосторожности вручную скопируйте требуемый файл конфигурации OpenSSL.

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Что ж, теперь перейдите в наш рабочий каталог и создайте наш центр сертификации или ЦС на основе информации, предоставленной выше.

cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca

Теперь, когда у нас есть наш CA, создайте наш сертификат для сервера OpenVPN. На запрос build-key-server ответьте «да» для фиксации.

./build-key-server server

Нам также потребуется сгенерировать наши файлы обмена ключами Диффи Хеллмана с помощью скрипта build-dh и скопировать все наши файлы в /etc/openvpn следующим образом:

./build-dh
cd /etc/openvpn/easy-rsa/keys
cp dh1024.pem ca.crt server.crt server.key /etc/openvpn

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

cd /etc/openvpn/easy-rsa
./build-key client

Настройка маршрутизации и запуск сервера OpenVPN

Создайте правило iptables, чтобы разрешить правильную маршрутизацию нашей подсети VPN.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save

Затем включите IP-переадресацию в sysctl:

nano -w /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

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

sysctl -p
service openvpn start
chkconfig openvpn on

Теперь у вас есть работающий сервер OpenVPN. В следующих шагах хорошо обсудите, как правильно настроить ваш клиент.

Настройка клиента OpenVPN

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

Чтобы продолжить, нам нужно будет получить файлы ca.crt, client.crt и client.key с удаленного сервера. Просто используйте свой любимый клиент SFTP/SCP (Secure File Transfer Protocol/Secure Copy) и переместите его в локальный каталог. В качестве альтернативы вы можете открыть файлы в nano и вручную скопировать содержимое в локальные файлы. Имейте в виду, что файлы client.crt и client.key будут автоматически названы на основе параметров, использованных ранее с \./build-key\. Все необходимые файлы находятся в /etc/openvpn/easy-rsa/keys

nano -w /etc/openvpn/easy-rsa/keys/ca.crt
nano -w /etc/openvpn/easy-rsa/keys/client.crt
nano -w /etc/openvpn/easy-rsa/keys/client.key

Теперь, когда наши сертификаты находятся в нашей клиентской системе, создайте еще один новый файл с именем client.ovpn, где \клиент\ должен совпадать с именем развертываемого клиента (из ключа сборки), содержимое должно быть следующим, заменяя\x.x.x.x\ с IP-адресом вашего облачного сервера и соответствующими файлами, вставленными в указанные области. Включите только содержимое, начинающееся со строки заголовка \BEGIN\ до строки \END\, как показано ниже. Убедитесь, что эти файлы так же конфиденциальны, как и любой токен аутентификации.

client
dev tun
proto udp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
<ca>
Contents of ca.crt
</ca>
<cert>
Contents of client.crt
</cert>
<key>
Contents of client.key
</key>

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

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

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

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

sudo openvpn --config ~/path/to/client.ovpn