Этот расклад помогает работать даже в анально огороженых странах, типа Сирии, Китая, ну и им подобным Настройка ведется на debian 7.0 1.apt-get update 2.apt-get upgrade 3.убираем из списка источников ебучий диск nano /etc/apt/sources.list и ставим # перед deb cdrom:[Debian.... 4.apt-get install mc - ставим mc(что-то типа тотал командера) 5. apt-get install openssl - ставим openssl 6. apt-get install openvpn - ставим openvpn 7. cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/ 7. # редактируем переменные nano ./vars там по сути можете менять, или не менять всякую хуйню 8. # инициализируем переменные и чистим папку keys и создаем сертификаты . ./vars . ./clean-all ./build-ca # корневой сертификат ./build-key-server server # сертификат сервера ./build-dh # ключ Диффи Хельман 9. # если вы планируете использовать tls-auth, который позволит скрыть порт на котором сервер слушает vpn подключения, защитить от DoS атак и кое чего еще, то выполните еще и эту строку: openvpn --genkey --secret ./keys/ta.key 10. # перенесем полученные сертификаты в рабочую папку cp ./keys/ca.crt /etc/openvpn cp ./keys/server.crt /etc/openvpn cp ./keys/server.key /etc/openvpn cp ./keys/dh1024.pem /etc/openvpn # Для tls-auth, выполните и эту строку: cp ./keys/ta.key /etc/openvpn 11. # создадим сертификаты пользователей, сколько вам нужно (вводить данные не обязательно, поля будут принимать значения переменных по-умолчанию, достаточно просто нажимать Enter. В конце будет предложено ввести пароль (Enter export password), он защитит ваш сертификат от импорта недоброжелателями, хорошенько его запомните) ./build-key-pkcs12 vpn.android 12. Ваяем конфиг сервака zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf nano /etc/openvpn/server.conf там меняем local IP_АДРЕС_ВАШЕГО_СЕРВЕРА и место tun, ставим tap push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" вот пример с моего тестового сервака 13. # применим настройки файрвола через rc.local, можно сделать иначе, но я остановился на этом варианте. nano /etc/rc.local # добавляем строки до exit 0 iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # сохраняем 14. nano /etc/sysctl.conf # раскомментируем строчку net.ipv4.ip_forward=1 15. reboot 16. ставим ftp серва apt-get install vsftpd 17. перебрасываем ключи для выгрузки в паблик папку фтп cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/testvpn.p12 /srv/ftp/ cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ta.key /srv/ftp/ cd /srv/ftp/ 18. chmod -R 755 testvpn.p12 chmod -R 755 ta.key права для выгрузки ставим 19. удаляем оба ключа из паблик папки фтп rm -rf /srv/ftp/ 20. ребутаем сервак reboot 21. По умолчанию сервер OpenVPN пишет логи обо всех подключениях в /var/log/daemon.log и /var/log/syslog. Если нужно, логи можно полностью отключить. 21.1.nano /etc/default/openvpn добавляем daemon_log_redirect=1 Теперь 21.2 nano /etc/openvpn/server.conf добавляем log /dev/null применяем новую конфигурацию service openvpn restart 22. делаем конфиг впн для компа client dev tap remote localhost 1194 ping 10 comp-lzo proto tcp tls-client remote-cert-tls server pkcs12 tapvpn.p12 verb 3 pull tls-auth ta.key 1 23. И так впн настроен, но сейчас не работает, т.к. конфиги сделаны под работу вместе с stunnel, который мы сейчас и поставим, чтобы скрыть от провайдеров факт использования vpn. ставим его apt-get install stunnel4 24. идем в папку с установленным cd /etc/stunnel/ 25. создаем сертификаты в 5 команд openssl genrsa -out server.key 4096 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt cat server.key > server.pem && cat server.crt >> server.pem 26. начнем править конфиг stunnel mv /etc/stunnel/stunnel.conf stunnel.conf.old nano /etc/stunnel/stunnel.conf 27. вставляем данный конфиг и правим ip на свой sslVersion = all options = NO_SSLv2 chroot = /var/lib/stunnel4/ ; PID is created inside the chroot jail pid = /stunnel4.pid ; Debugging stuff (may useful for troubleshooting) ; debug = 7 ; output = /var/log/stunnel4/stunnel4.log setuid = stunnel4 setgid = stunnel4 socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 compression = zlib [openvpn] accept = 111.111.111.111:11446 #тут ебашим любой понравившийся и не занятый порт connect = 111.111.111.111:1194 # тут прописываем порт на которую повесили OpenVPN cert=/etc/stunnel/server.pem key=/etc/stunnel/server.key 28. дальше правим тут nano /etc/default/stunnel4 меняем: ENABLED=0 На ENABLED=1 29. запускаем /etc/init.d/stunnel4 start 30. рестартим openvpn 31. chkconfig stunnel4 on 32. Идем на сайт stunnel и качаем версию для себя 33. Ставим его, там на отъебись жмем все кнопки, при генерации сертификата опять же на отъебись все делаем, кроме пароля 34. запускаем от администратора 35. правой кнопкой в трее жмем на запущенную софтину и выбираем Edit stunnel.conf 36. вписываем туда данный конфиг (ip на свой не забываем менять. compression = zlib [openvpn] client = yes accept = 127.0.0.1:1194 connect = 111.111.111.111:11446 37. все) можете скачать wireshark и поснифать траффик в этой связке и без нее, без нее будет палево с типом трафа Openvpn, с ней траф будет TCP P.S. бывает что openvpn барахлит и не подхватывает настройки ip с сервака, в этом случае перезапустите службу DHCP на компе.