образовательная корпорация
Создать
Править
Отменить
Вверх

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

склад:обживание:linux:openvpn [2017/06/18 01:31]
will создано
склад:обживание:linux:openvpn [2017/06/18 01:38] (текущий)
will
Строка 1: Строка 1:
 **openvpn** **openvpn**
 +
 +https://​1cloud.ru/​help/​linux/​kak-ustanovit-i-nastroit-openvpn-na-centos7
 +http://​debian-help.ru/​articles/​ustanovka-nastroika-openvpn-servera-debian-6/​
 +http://​www.umgum.com/​openvpn-client-iphone-ipad-ipod
 +https://​zorrovpn.com/​howto/​openvpn/​ios?​lang=ru
 +--
 +https://​serveradmin.ru/​nastroyka-openvpn-na-centos-7/​
 +https://​habrahabr.ru/​post/​250859/​
 +
 +Подключаем репу
 +
 +yum install epel-release
 +
 +Прежде всего, необходимо установить OpenVPN. Также мы установим инструмент Easy RSA — он будет использоваться для создания пар SSL-ключей,​ которые обеспечат безопасность VPN-соединений.
 +
 +yum install openvpn easy-rsa –y
 +
 +В директории документации OpenVPN содержатся файлы с тестовыми конфигурациями программы. Скопируем файл server.conf — на его основе мы создадим свою конфигурацию.
 +
 +cp /​usr/​share/​doc/​openvpn-*/​sample/​sample-config-files/​server.conf /​etc/​openvpn
 +
 +Подредактируем
 +dh dh2048.pem
 +push "​redirect-gateway def1 bypass-dhcp"​
 +push "​dhcp-option DNS 8.8.8.8"​
 +push "​dhcp-option DNS 8.8.4.4"​
 +user nobody
 +group nobody
 +
 +
 +
 +
 +Шаг #3: Создание ключей и сертификатов
 +Создадим директорию,​ в которой будут храниться ключи:
 +mkdir -p /​etc/​openvpn/​easy-rsa/​keys
 +В эту директорию нужно скопировать скрипты для генерации ключей и сертификатов:​
 +cp -rf /​usr/​share/​easy-rsa/​2.0/​* /​etc/​openvpn/​easy-rsa
 +
 +редактируем
 +/​etc/​openvpn/​easy-rsa/​vars
 +
 +
 +    KEY_NAME: Следует указать значение server, иначе придется вносить изменения в конфигурационные файлы, в которых упоминается server.key и server.crt.
 +    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="​Moscow"​
 +export KEY_CITY="​Moscow"​
 +export KEY_ORG="​OOO Romashka"​
 +export KEY_EMAIL="​ivan@example.com"​
 +export KEY_OU="​Community"​
 +
 +# X509 Subject Field
 +export KEY_NAME="​server"​
 +
 +export KEY_CN=openvpn.example.com ​
 +
 +
 +Также следует предотвратить возможность сбоя загрузки конфигурации SSL из-за невозможности определения версии программы. Для скопируем нужный конфигурационный файл и удалим из названия номер версии:​
 +
 +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
 +
 +Указываем информацию об организации,​ выдавшей сертификат:​
 +./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
 +
 +iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
 +iptables-save > /​etc/​sysconfig/​iptables
 +
 +
 +/​etc/​sysctl.conf
 +net.ipv4.ip_forward = 1
 +
 +systemctl restart network.service
 +
 +Шаг 5: Запуск OpenVPN
 +
 +Теперь все готово к запуску OpenVPN. Добавим этот сервис в systemctl:
 +systemctl -f enable openvpn@server.service
 +
 +Запускаем OpenVPN:
 +systemctl start openvpn@server.service
 +
 +
 +
 +Шаг 6: Настройка клиента
 +Необходимые сертификаты (в нашем случае для клиента "​client"​) хранятся в директории /easy-rsa:
 +/​etc/​openvpn/​easy-rsa/​keys/​ca.crt
 +/​etc/​openvpn/​easy-rsa/​keys/​client.crt
 +/​etc/​openvpn/​easy-rsa/​keys/​client.key
 +
 +
 +Теперь создадим файл под client.ovpn - конфигурационный файл для клиента OpenVPN. В нем содержатся параметры подключения к серверу. Ниже представлено содержимое этого файла, в котором необходимо заменить имя клиента (в нашем случае client), указать корректный ip-адрес сервера и верный путь к файлам сертификатов и ключей:​
 +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
 +
 +
 +Теперь этот файл можно использовать для подключения к серверу.
 +
 +
 +
 +
 +-A INPUT -p udp -i enp1s0 --dport 1194 -j ACCEPT
 +-A POSTROUTING -s 10.8.0.0/24 -o enp1s0 -j MASQUERADE
 +
 +-A INPUT -i lo -j ACCEPT
 +
 +-A INPUT -i tun+ -j ACCEPT
 +-A INPUT -i tap+ -j ACCEPT
 +-A INPUT -j REJECT
 +-A FORWARD -m state --state RELATED,​ESTABLISHED -j ACCEPT
 +-A FORWARD -s 10.8.0.0/24 -j ACCEPT
 +-A FORWARD -i tun+ -j ACCEPT
 +-A FORWARD -i tap+ -j ACCEPT
 +-A FORWARD
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +