Различия
Здесь показаны различия между двумя версиями данной страницы.
|
склад:обживание:linux:openvpn [2017/06/17 21:31] will создано |
склад:обживание:linux:openvpn [2017/06/17 21: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 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
