Как установить и настроить сервер 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