Процесс установки состоит из четырех этапов:
Шаг 1 — Установите репозиторий EPEL
В общедоступном репозитории Oracle YUM по умолчанию нет всех пакетов, необходимых для установки openvpn. Итак, нам нужно выполнить следующие две команды, чтобы добавить новый репозиторий EPEL:
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
sudo rpm -Uvh epel-release-7*.rpm
Шаг 2 — Установка OpenVPN
Следующие две команды — это все, что нам нужно для установки openvpn и программ для создания сертификатов:
yum install openvpn -y
yum install easy-rsa -y
Шаг 3 — Настройка OpenVPN
Мы можем найти пример файла конфигурации в каталоге его документации. Нам нужно скопировать файл sampleserver.conf с помощью следующей команды.
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
Откройте файл в любимом редакторе, я например использую редактор vi
vi /etc/openvpn/server.conf
Большинство строк нужно просто раскомментировать, а некоторые из них нужно изменить.
Внесите следующие изменения:
local 192.168.1.13
port 1194
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.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"
client-to-client
duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
Шаг 4 — Создание ключей и сертификатов
Теперь, мы должны сгенерировать свои ключи и сертификаты. Easy RSA устанавливает несколько сценариев для генерации этих ключей и сертификатов.
Создайте каталог для ключей с помощью следующей команды:
mkdir -p /etc/openvpn/easy-rsa/keys
Также нам нужно скопировать в каталог скрипты генерации ключей и сертификатов.
cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
Теперь мы собираемся отредактировать значения по умолчанию в скрипте. Таким образом, нам не нужно каждый раз вводить нашу информацию. Откройте файл в редакторе vi.
vi /etc/openvpn/easy-rsa/vars
Измените значений, начинающиеся с KEY_ . Обновите следующие значения, чтобы они были точными для вашей компании или организации
Некоторые из важных значений, к изменению которых стоит серьезно отнестись:
- KEY_NAME: здесь вы должны ввести ваш сервер; вы можете ввести что-то еще, но тогда вам также придется обновить файлы конфигурации
- KEY_CN: введите домен или субдомен, который разрешается для вашего сервера.
См. Образец файла ниже:
. . .
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="RU"
export KEY_PROVINCE="MOSKOW"
export KEY_CITY="Moskow"
export KEY_ORG="fckup.ru"
export KEY_EMAIL="info@fckup.ru"
export KEY_OU="Administration"
# X509 Subject Field
export KEY_NAME="server"
. . .
export KEY_CN="openvpn.fckup.ru"
. . .
Конфигурация OpenSSL может не загружаться из-за того, что не определяется версия. Чтобы избежать этого, удалите номер версии из имени файла openSSl.
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
Далее мы сгенерируем ключи и сертификаты. Перейдите в каталог easy-rsa и укажите source в наших новых переменных.
cd /etc/openvpn/easy-rsa
source ./vars
Затем мы удаляем все ключи и сертификаты, которые могут уже быть в этой папке, и сгенерируем наш собственный центр сертификации.
./clean-all
Когда вы создадите центр сертификации, вам будет предложено ввести всю информацию, которую мы помещаем в файл vars, но вы увидите, что ваши параметры уже установлены по умолчанию. Итак, вы можете просто нажимать ENTER для каждого.
./build-ca
Далее мы сгенерируем ключ и сертификат для сервера. Пожалуйста, нажимайте ENTER для каждого вопроса, как на шаге выше.
./build-key-server server
Теперь мы сгенерируем файл обмена ключами Диффи-Хеллмана. Для выполнения этой команды потребуется немного времени:
./build-dh
Итак, мы завершили процесс генерации серверных ключей и сертификатов. Скопируйте их все в наш каталог OpenVPN.
cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
Для аутентификации нашим клиентам также потребуются сертификаты. Эти ключи и сертификаты будут переданы вашим клиентам, и лучше всего создавать отдельные ключи и сертификаты для каждого клиента, которых вы собираетесь подключать к серверу.
Убедитесь, что, если вы это сделаете, вы дадите им уникальные имена, но пока у нас будет один клиент, поэтому мы просто назовем его client.
cd /etc/openvpn/easy-rsa
./build-key client
That's it for keys and certificates.
Шаг 5 — Маршрутизация
Чтобы использовать firewalld, вы сначала должны добавить службу openvpn в публичную зону с помощью команд:
firewall-cmd --add-service openvpn
firewall-cmd --permanent --add-service openvpn
firewall-cmd --add-masquerade
firewall-cmd --permanent --add-masquerade
Чтобы использовать старые iptales, установите iptables-services и отключите irewalld, выполнив следующие команды:
yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush
Затем нам нужно добавить правило в iptables для перенаправления нашей маршрутизации в нашу подсеть OpenVPN и сохранить это правило. Замените ethXYZ своим собственным сетевым интерфейсом.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ethXYZ -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
Затем включите переадресацию IP в sysctl. Откройте sysctl.conf в редакторе vi.
vi /etc/sysctl.conf
Добавьте следующую строку в шапку файла:
net.ipv4.ip_forward = 1
Или используйте команду
echo 1 > /proc/sys/net/ipv4/ip_forward
Что-бы настройки вступили в силу. Нам нужно перезапустить сетевую службу. Выполните следующую команду:
systemctl restart network.service
Шаг 6 — Запуск OpenVPN
Теперь мы завершили установку и готовы запустить службу openVPN. добавьте его в systemctl с помощью команды:
systemctl -f enable openvpn@server.service
Запуск OpenVPN:
systemctl start openvpn@server.service
Итак, мы успешно завершили всю серверную настройку OpenVPN.
Шаг 6 — Настройка клиента
Для успешного подключения, вам обязательно понадобится копия сертификата CA с сервера, а также клиентский ключ и сертификат.
Найдите на сервере следующие файлы. В этой статье мы использовали «client» в качестве имени для клиентских ключей.
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
Скопируйте эти три файла на свой клиентский компьютер. Для этого откройте файл на сервере и скопируйте содержимое в новый открытый файл вашей клиентской системы и сохраните его, либо используйте SFTP.
Мы собираемся создать файл с именем client.ovpn. Это файл конфигурации для клиента OpenVPN, в котором рассказывается, как подключиться к серверу.
- Вам нужно будет изменить первую строку, чтобы отразить имя, которое вы дали клиенту в вашем ключе и сертификате; в нашем случае это просто client
- Вам также необходимо обновить IP-адрес your_server_ip до IP-адреса вашего сервера; порт 1194 может остаться прежним
- Убедитесь, что пути к вашему ключу и файлам сертификата верны
client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key
Теперь этот файл может использовать любой OpenVPN клиент для подключения к вашему серверу.
Регистрируйтесь и задавайте вопросы на fckup.ru