**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