Конфигурация сети192.168.10.0/24 - OpenVPN-server - Ubuntu 13.04; 192.168.0.0/24 - клиенты - Ubuntu 13.04 и Android (HTC Incredible S). 10.8.0.0/29 - Сеть vpn Настройка сервера VPNУстанавливаем пакеты aptitude update aptitude upgrade aptitude install openvpn Создаем директорию и копируем комплект скриптов из примеров mkdir /etc/openvpn/{easy-rsa,clients} cp -r /usr/share/doc/openvpn1/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ mcedit /etc/openvpn/easy-rsa/vars export KEY_COUNTRY="RU" export KEY_PROVINCE="SPb" export KEY_CITY="SPb" export KEY_ORG="Capriccio 24" export KEY_EMAIL="pag@ni.ni" Создаём сертификаты сервера cd /etc/openvpn/easy-rsa/ ln -s openssl-1.0.0.cnf openssl.cnf source vars # задаём переменые ./clean-all # очистка директории /etc/openvpn/easy-rsa/keys ./build-dh # генерируем файла с ключем Диффи-Хелмана (dh1024.pem) ./pkitool --initca # генерируем сертификат и ключ центра сертификации (CA) (ca.crt, ca.key) ./pkitool --server server # генерируем сертификат и ключ сервера (server.crt, server.key) openvpn --genkey --secret ta.key # генерация ключа для tls-аутификации (ta.key) Генерируем сертификаты для клиентов android и ubuntu, обязательно задать пароль на экспорт (Enter export password) для защиты сертификата от импорта недоброжелателями ./build-key-pkcs12 vpn.android ./build-key-pkcs12 vpn.ubuntu Раскидываем готовые файлы по директориям cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt,dh1024.pem} /etc/openvpn/ cp /etc/openvpn/easy-rsa/keys/vpn.*.p12 /etc/openvpn/clients/ cp /etc/openvpn/easy-rsa/ta.key /etc/openvpn/ Создаем server.conf mcedit /etc/openvpn/server.conf mode server port 1199 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh1024.pem server 10.8.0.0 255.255.248.0 # ip и маска виртуальной сети route 192.168.0.0 255.255.254.0 # сети, в которые нужно идти через туннель (сеть клиента) client-to-client # клиенты будут видеть друг друга client-config-dir ccd # где лежат настройки для клиентов ifconfig-pool-persist ipp.txt tls-auth ta.key 0 keepalive 10 120 comp-lzo # сжатие трафика user nobody # понижаем пользовательские привелегии vpn-сервера group nogroup # понижаем пользовательские привелегии vpn-сервера max-clients 10 # максимум клиентов persist-key persist-tun status /var/log/openvpn-status.log # статус-файл log-append /var/log/openvpn.log # лог-файл verb 3 # детальность логирования mute 10 # количество однотипных строк в openvpn.log Создадим файлы с индивидуальными настройками клиентов (на самом деле это задел на будущее, т.к. сейчас настройки для клиентов идентичны) mkdir /etc/openvpn/ccd touch /etc/openvpn/ccd/vpn.android touch /etc/openvpn/ccd/vpn.ubuntu Содержание vpn.android: ifconfig-push 10.8.0.2 10.8.0.1 # назначаем IP-адрес клиенту iroute 192.168.0.0 255.255.254.0 # маршрутизацию от сервера OpenVPN к удаленным клиентам push "route 192.168.10.0 255.255.255.0"# маршрут клиенту в сеть OpenVPN-сервера push "redirect-gateway def1" # клиенту будет установлен новый default-gateway от vpn-сервера push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" Содержание vpn.ubuntu: ifconfig-push 10.8.0.3 10.8.0.1 # назначаем IP-адрес клиенту iroute 192.168.0.0 255.255.254.0 # маршрутизацию от сервера OpenVPN к удаленным клиентам push "route 192.168.10.0 255.255.255.0"# маршрут клиенту в сеть OpenVPN-сервера push "redirect-gateway def1" # клиенту будет установлен новый default-gateway от vpn-сервера push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" Разрешаем форвардинг между сетями: echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf и добавляем правила в файрвол echo "iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE" > /etc/iptables.rules ln -s /etc/iptables.rules /etc/network/if-up.d/iptables chmod +x /etc/iptables.rules /etc/iptables.rules Перезапускаем openvpn-server service openvpn restart Настройка клиента androidКопируем файлы ta.key, vpn.android.p12 на карту памяти смартфона в папку /sdcard/openvpn/ Устанавливаем из Google Play приложение OpenVPN for Android Запускаем приложение. Во вкладке ПРОФИЛИ создаём новый профиль VPN.android со следующими настройками:
Запускаем профиль VPN.android. Настраивать будем через Network Manager. Устанавливаем пакеты aptitude update aptitude upgrade aptitude install openvpn network-manager-openvpn Клиенту ubuntu с сервера OpenVPN необходимо передать следующие файлы /etc/openvpn/clients/vpn.ubuntu.p12 /etc/openvpn/ta.key Создаем vpn.ubuntu.conf mcedit vpn.ubuntu.conf client remote remote.vpn.com # указываем сервер vpn port 1199 # порт такой же, как в server.conf dev tun proto udp redirect-gateway def1 resolv-retry infinite nobind pull user nobody group nogroup persist-key persist-tun tls-client remote-cert-tls server pkcs12 vpn.android.p12 tls-auth ta.key 1 comp-lzo log openvpn.log verb 3 Идем в настройки Network Manager:
Проверяем соединение, зайдя, например, на 2ip.ru. Источники: |
Ubuntu >