Приходилось пару раз ставить сеть VPN. После очередного витка поиска информации появилась инструкция. Задача была следующая: организовать сеть VPN устройств с линухом подключенных за NAT через GSM, так чтобы каждый имел свой индивидуальный IP. Проблема в том, что конфигурация openVPN с хорошим уровнем защиты не очень проста. В помощь приходят скрипты easy-rsa. В качестве сервера openVPN выбрана машина с линуксом и с белым IP.
1. Инсталляция openssl и easy-rsa. Обычно после инсталляции easy-rsa находиться в /usr/share/easy-rsa/ 2. Выбираем на сервере рабочий каталог и генерируем ключи и сертификаты. $ mkdir openvpn $ cp -r /usr/share/easy-rsa/ openvpn/ $ cd openvpn $ openssl dhparam -out /etc/openvpn/dh2048.pem 2048 $ mkdir easy-rsa/keys ------------------------ Правим конфигурацию. easy-rsa/vars export KEY_COUNTRY="RU" export KEY_PROVINCE="DEF_PROVINCE" export KEY_CITY="DEF_CITY" export KEY_ORG="Org" export KEY_EMAIL="kontakt@test.ru" export KEY_OU="OU" export KEY_NAME="server" $ cd easy-rsa $ cp ./openssl-1.0.0.cnf ./openssl.cnf $ source ./vars $ ./clean-all $ ./build-ca $ ./build-key-server server После этого приготовлены ключи и сертификаты для сервера. 3. Подготовка ключей для клиента. $ ./build-key client1 Жмем enter и Y После этого должны появиться ключи и сертификат клиента. client1.crt client1.key 4. Готовим конфигурацию для клиента. Будет работать без изменений как на Вин так и на линух: файл client.ovpn client dev tun proto udp remote test.server.org - ип или днс сервера resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client1.crt key client1.key remote-cert-tls server tls-auth static.key 1 cipher AES-256-CBC #comp-lzo verb 3 keepalive 10 60 5. Конфигурация на стороне сервера файл server.conf dev tun0 topology "subnet" push "topology subnet" mode server tls-server ifconfig 192.168.80.1 255.255.255.0 route 192.168.80.0 255.255.255.0 ifconfig-pool 192.168.80.10 192.168.80.199 255.255.255.0 client-config-dir ./clients push "route 192.168.80.0 255.255.255.0" client-to-client dh dh2048.pem persist-key persist-tun proto udp ca ca.crt cert server.crt key server.key tls-auth static.key 0 cipher AES-256-CBC #comp-lzo verb 3 6. Привязка клиента к ИП. Создаем каталог где будут храниться IP клиентов ./clients. Создаем файл клиента ./clients/client1 ifconfig-push 192.168.80.80 255.255.255.0 iroute 192.168.80.0 255.255.255.0 7. Старт сервера sudo -b openvpn --config ./server.conf