Настройка OpenVPN, VPN через http (https) прокси
В некоторых сетях единственным доступным сервисом является веб через прокси-сервер. Многие сервисы (ssh, почта, некоторые IM) не могут работать через прокси, но существуют способы пробросить vpn на какой-либо удаленных хост.
Итак, после проведения некоторого исследования, выбор пал на openvpn. И вот как я его настраивал:
1: установка OpenVPN
У меня было две машины: мой ноутбук (note) и домашний сервер vpn.mydomain.ru (который выполняет у меня функции интернет-шлюза, кешрующего прокси, тестового веб-сервера, файлохранилища, и многого чего другого).
Установка и на том и на другом прошла очень легко (строго говоря, он у меня уже был установлен «на всякий случай»):
emerge -av1 openvpn
Отмечу полезный USE-флаг: examples. Он включает установку примеров конфигурационных файлов, которыми можно воспользоваться как основой для написания своих.
2: конфигурация сервера
Первое что нужно сделать, это сгенерировать все необходимые ключи, это можно сделать с помощью скриптов, входящих в комплект openvpn:
cd /usr/share/openvpn/easy-rsa/
# инициализация
. ./vars
./clean-all
# эта команда создает Certificate Authority, выполняется интерактивно (т.е. вам нужно будет
#ответить на несколько вопросов). Можно оставить все по умолчанию, изменив лишь данные о
#географическом положении.
# Единственный вопрос, на который следует обратить внимание — Common Name. Не так важно, что вы
#туда введте, но он должен быть установлен.
./build-ca
# генерация пары ключей для сервера
./build-key-server server
# генерация пары ключей для клиента
./build-key note
# генерация Diffie Hellman:
./build-dh
После этого в поддиректории keys появятся все необходимые ключи.
Переместите их в какое-нибудь надежное и защищеное место.
Скопируйте файлы ca.crt и note.* на клиент.
Строго говоря, можно было сгенерировать пару ключей на клиенте и передать на сервер публичный ключ для подписи. Но поскольку у меня был защищеный канал (ssh) между клиентом и сервером, я сгенерировал все в одном месте.
Далее нужно написать конфигурационный файл для openvpn. У меня получилось так:
# биндимся к порту 443, т.к. это единственный порт, на который разрешено делать CONNECT на том прокси-сервере
#port 1194
port 443
# TCP or UDP server?
proto tcp
;proto udp
dev tun
# пути к файлам сертификатов
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
# тут важно выбрать такую подсеть, которая не пересекалась бы ни с одной другой используемой вами
server 192.168.120.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# так можно указывать клиенту, какие сети нужно маршритизировать через этот vpn
;push «route 192.168.1.0 255.255.255.0»
# а так можно указать, что этот vpn следует сделать шлюзом по умолчанию (что нам и нужно)
push «redirect-gateway»
# Разрешаем клентам взаимодействовать друг с другом, по умолчанию отключено
client-to-client
# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120
# включаем компрессию
comp-lzo
# так можно указать максимально количество клиентов
;max-clients 100
# так можно заставить openvpn сбросить права
;user nobody
;group nobody
# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun
# лог-фай
status openvpn-status.log
Запуск сервера происходит командой openvpn /etc/openvpn/server.conf.
Перед запуском надо подгрузить модуль tun.
3: Конфигурация клиента
Вот конфигурационный файл:
client
dev tun
# указываем протокол и прокси
proto tcp
http-proxy proxy 3128
;http-proxy-retry # retry on connection failures
# указываем адрес и порт удаленного сервера
remote vpn.mydomain.ru 443
resolv-retry infinite
nobind
# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody
persist-key
persist-tun
# пути к сертификатам и ключам
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/note.crt
key /etc/openvpn/keys/note.key
# разрешаем компрессию
comp-lzo
После подгрузки модуля tun и запуска клиента, можно убедиться что интерфейс поднимается, и сервер пингуется.
Внимание: после поднятия vpn, openvpn перепишет шлюз по умолчнию, так что нужно заранее добавить статические маршруты (если таковых нету) к прокси-серверу и местной локальным ресурсам.
Однако после поднятия vpn, внешние ресурсы все еще не будут работать. А все потому что нужно выполнить шаг
4: настройка NAT
Во-первых, разрешаем серверу маршрутизировать пакеты. Для этого пишем в /etc/sysctl следующее:
net.ipv4.ip_forward = 1
net.ipv4.ip_dynaddr = 1
После чего выполняем sysctl -a.
Далее нужно средствами iptables настроить правила маскарадинга. Для этого удобно написать sh-скриптик, который в дальнейшем будет удобно пополнять и редактировать. У меня он имеет примерно такой вид (сокращено):
#!/bin/sh
# маски используемых сетей
IP_LAN=»192.168.1.1/24″ # моя домашняя сеть
IP_PROVIDER=»10.0.0.1/8″ # локальная сеть провайдера
# интерфейсы
IF_EXT=»eth1″ # сюда подключен Ethernet от провайдера
IF_LAN=»eth0″ # сюда подключена локальная сеть
IF_INET=»ppp0″ # сюда «подключен» интернет
IF_VPN=»tun0″ # это интерфейс нашего vpn
IPT=»iptables»
# cleaning:
$IPT —flush
$IPT -t nat —flush
$IPT -t mangle —flush
$IPT -X
# тут по желанию и степени паранои
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
# allow loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
###
# local host:
# allow outgoing connections:
$IPT -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
# разрешаем подключения к vpn
$IPT -A INPUT -p tcp —dport 443 -j ACCEPT
# разрешаем NAT из локальной сети и VPN:
$IPT -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $IF_INET -j MASQUERADE
$IPT -A FORWARD -i $IF_LAN -o $IF_EXT -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_EXT -o $IF_LAN -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_LAN -o $IF_INET -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_INET -o $IF_LAN -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_VPN -o $IF_EXT -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_EXT -o $IF_VPN -m state —state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_VPN -o $IF_INET -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_INET -o $IF_VPN -m state —state ESTABLISHED,RELATED -j ACCEPT
После выполнения скрипта достаточно сделать /etc/init.d/iptables save и добавить iptables в runlevel: rc-update add iptables default
Как настроить прокси-сервер

Прокси-сервер – это специальный сервер или устройство, которое выступает в роли посредника для устройства пользователя при взаимодействии с внешними серверами, к которым пользователь получает доступ. Он выполняет функции пересылки запросов и обратных ответов между клиентом (пользовательским устройством) и конечным сервером, а еще способен выполнять различные дополнительные операции в зависимости от его настроек и задач.
Отладка прокси-сервера и грамотное применение всех его функций – сложные задачи, которые лучше доверять профессионалам. Конечно, получить доступ через удаленный рабочий стол к подобному серверу и пытаться его отладить под свои задачи может каждый заинтересованный пользователь, но все же лучше, чтобы этим занимался опытный администратор. При этом традиционно более простыми считаются системы на Windows, а вот если работать Linux, то здесь точно понадобятся приличные знания.
Как работает прокси
Эта функция выступает в роли своеобразного посредника, когда необходимо сделать так, чтобы пользователь заходил на сайты и в веб-приложения не напрямую, а через определенный адресный фильтр. Необходимость в таком механизме может быть по разным причинам:
- Контроль. Прокси можно применять для регулирования допуска к выбранным сайтам или сервисам. С его участием необходимые сайты можно запретить, что полезно для ограничения использования ресурсов сотрудниками в офисе или детьми, к примеру, чтобы школьники имели возможность заходить только на образовательные ресурсы;
- Фильтрация контента. Прокси может производить фильтрацию веб-содержимого, запрещая доступ к различным категориям ресурсов, нежелательному контенту и сомнительным материалам. Это повышает безопасность компьютеров, предотвратить доступ к нежелательным ресурсам для своих пользователей, сотрудников;
- Кэширование. Такие серверы способны кэшировать все страницы сайтов и другие ресурсы из сети, сохраняя их у себя. Это позволяет ускорить загрузку повторного контента для пользователей, ведь они могут получать данные из кэша, вместо выполнения однотипных запросов к удаленному серверу.
Помимо этого, есть и другие важные задачи, для которых используется рассматриваемый инструмент.

Чем проски отличается от VPN
Те, кто не приемлет ограничения в сети знают, что почти любые запреты можно обходить. К примеру, используя VPN, который доступен практически всем. Если говорить про разницу между прокси-сервером и VPN, то вот основные моменты:
- Тип соединения. Прокси включается лишь на уровне отдельного приложения и пересылает только определенные типы трафика, такие как, к примеру, HTTP, HTTPS или FTP. VPN же создает зашифрованное соединение между смартфоном/ПК и сайтами, включая весь интернет-трафик с устройства. Все проходит через защищенный туннель, что обеспечивает максимальную анонимность и конфиденциальность;
- Варианты применения. Прокси можно активировать для контроля доступности некоторых сайтов, фильтрации содержимого, кэширования данных и оптимизации сетевого трафика в довольно узких приделах. А VPN широко применяется для обеспечения конфиденциальности при использовании общественного Wi-Fi, преодоления блокировок по стране, доступа к корпоративным ресурсам из удаленных мест и обеспечения анонимности при просмотре сайтов.
Существуют и многие другие отличия, например, в объеме доступного трафика, тарифах на услуги и т.д.
Как настроить прокси на разных платформах
Если вы хотите самостоятельно попробовать запустить прокси имеющимися встроенными в операционку возможностями, то сделать это можно, детальнее изучив процесс. Рассмотрим особенности процесса для следующих распространенных систем.
Windows
Для настройки в этой популярной ОС, необходимо выполнить такие шаги:

- Перейти в «Настройки», потом вкладка «Сеть и интернет», выбираем вкладку «Прокси»;
- В подразделе «Ручная настройка прокси-сервера» надо активировать опцию «Использовать прокси-сервер» и ввести данные (адрес, порт) для прокси. Найти данные различных прокси можно в интернете. Однако, скорее всего они будут платными.
Android и iOS
Чтобы настроить на телефоне или планшете прокси-сервер, выполните такие действия:

- Откройте «Настройки», далее «Сеть и интернет», выберите вкладку «Wi-Fi»
- Выполните долгое нажатие на вашей сети Wi-Fi, затем выберите «Изменить сеть»
- Перейдите в раздел «Дополнительные параметры» и введите параметры имеющегося прокси-сервера, следя за тем, чтобы не допустить ошибок с вводом данных.
Также можно настроить прокси-сервер и на устройствах с iOS. Для этого также надо зайти в настройки гаджета, зайти во вкладку информации про действующий Wi-Fi, перейти в специальную вкладку «Прокси», выбрать ручные настройки и ввести данные сервера.
Если вам необходимо повысить свою анонимность в интернете, быть более защищенным или гибко настроить доступ к тем или иным ресурсам для подчиненных в своей компании, прокси вполне может стать отличным решением для достижения указанных целей. Можно найти очень много бесплатных ресурсов, которые предлагают информацию по подключению к таким серверам.
Конечно, очень важно пользоваться проверенными источниками, чтобы в итоге не оказаться в руках каких-то мошенников, поэтому для начала рекомендуем почитать отзывы о разных прокси, а уже потом принимать решение об их применении.
Настройка прокси в Google Chrome на Windows
Для настройки HTTP или Socks прокси в браузере Google Chrome на Windows зайдите в раздел Настройки.

В строке поиска введите «прокси» и откройте настройки прокси-сервера.

Внешний вид следующего окна может отличаться в зависимости от версии Windows. Нажмите на кнопку.

Выполните следующие шаги:
- Включите прокси
- IP адрес подключения
- Порт подключения
- Отметьте галку
- Сохраните прокси

Прокси с авторизацией по логину и паролю
Если используется прокси с авторизацией, то окно с вводом логина и пароля появится сразу, как только откроете любой сайт в Интернете.

Рекомендации от сервиса TheSafety.US
Хотим обратить внимание на то, что настройка прокси производится непосредственно в самой операционной системе Windows.
Если вы используете VPN, то возникнет нежелательная ситуация, когда трафик сначала пойдет на прокси сервер и только затем на VPN (цепочка: прокси + VPN). Хотя оптимальным вариантом с точки зрения безопасности и анонимности считается цепочка: VPN + прокси.
Socks прокси с авторизацией может не работать в Windows.
VPN и прокси сервис защищает своих клиентов с 2006 года, используя надежные технологии в области анонимности передачи данных в Интернете.
Как настроить прокси-сервер
В киберсетях прокси-сервер — это сервер, который находится между клиентом, запрашивающим ресурс (вашим ПК), и сервером, который его предоставляет. Он действует как посредник между вашим браузером и онлайн-сервисами, например, поставщиками SaaS. Прокси-серверы могут повысить вашу безопасность и конфиденциальность в интернете и ускорить передачу трафика.
Прокси-серверы были разработаны для структурирования и концентрации работы распределенных систем. Поэтому они работают от имени клиента при запросе услуги, скрывая фактический источник запроса.
Прокси-сервер функционирует таким образом, что вместо прямого подключения к серверу для выполнения запроса клиент передает запрос прокси-серверу. Оценив запрос, прокси-сервер выполняет транзакции. Этот метод позволяет справиться со сложностью и длиной запроса и обеспечивает конфиденциальность и безопасность.
Настройка прокси-сервера для различных операционных систем и браузеров
Прокси не может гарантировать, что вы будете в безопасности в сети, особенно если вы используете прокси, который находится в свободном доступе в интернете. Публичные прокси могут замедлить ваш трафик и даже подвергнуть вас опасности. Вместо этого мы рекомендуем понять, как работают прокси-серверы и как настроить их на своем устройстве, используете ли вы Windows, Mac, Ubuntu или просто веб-браузер.
Если вы хотите настроить свой браузер для использования прокси-сервера, управляемого какой-либо организацией, вам, вероятно, следует обратиться к IT-специалистам. Это особенно актуально, если вам приходится вводить имя сценария вручную. Вам также может понадобиться использовать данные IP и порта прокси-сервера. В любом случае, обратитесь к своему IT-специалисту, если у вас нет этой информации или если вы не уполномочены предпринимать такие действия.
Настройка прокси-сервера в Windows
Перед установкой прокси-сервера необходимо проверить настройки прокси в Windows. Информация в настройках прокси поможет решить, какой тип прокси-сервера вы можете установить. Найти эти данные можно, перейдя в меню Start (Пуск), затем Settings (Настройки), далее Network & Internet (Сеть и Интернет) и, наконец, Proxy (Прокси). Вот как настроить прокси-сервер в Windows вручную:
- Чтобы попасть в меню Настройки Windows, удерживайте клавишу Windows и нажмите клавишу I.
- Перейдите в Settings (Настройки), затем выберите Network & Internet (Сеть и Интернет) и нажмите Proxy (Прокси).
- Перейдите к пункту Manual proxy setup (Ручная настройка прокси) и нажмите Use a Proxy Server (Использовать прокси-сервер).
- Введите IP-адрес и номер порта прокси-сервера в соответствующие поля.
- Если ваш прокси-сервер защищен учетными данными, установите флажок Proxy server requires password (Прокси-сервер требует пароль). Введите данные для входа и нажмите Save (Сохранить).
На вашей Windows все готово. В следующий раз, подключаясь к интернету, вы будете работать с прокси-сервером.
Настройка прокси-сервера на Mac
Вот как установить прокси-сервер на MacBook:
- Перейдите в меню, затем в System Preferences (Системные настройки) и нажмите на значок Network (Сеть), чтобы изменить настройки подключения.
- Выберите тип используемой сети (Ethernet/WiFi) и нажмите Advanced (Дополнительно) > Proxies (Прокси).
- Перейдите к пункту Auto Proxy Discovery (Автоматическое обнаружение прокси) и нажмите Secure Web Proxy (Безопасный веб-прокси). Введите адрес прокси-сервера и номер порта в соответствующие поля.
- Чтобы использовать PAC-файл, перейдите в раздел Automatic Proxy Configuration (Автоматическая настройка прокси) и введите адрес прокси в поле URL.
- Если ваш сервер защищен учетными данными, установите флажок Proxy server requires password (Прокси-сервер требует пароль). Используйте ваши данные для входа в систему, а затем нажмите OK, чтобы сохранить конфигурацию прокси.
Теперь вы готовы к выходу в интернет через прокси-сервер на вашем Mac.
Настройка прокси-сервера в Ubuntu
Чтобы получить доступ к настройкам прокси и установить прокси-сервер на Ubuntu, выполните следующие действия:
- Перейдите в основные Settings (Настройки) Ubuntu.
- Нажмите на настройку Network (Сеть) в левом боковом меню и выберите шестеренку в разделе Network Proxy (Сетевой прокси).
- В диалоговом окне Network Proxy (Сетевой прокси) выберите Manual (Вручную) и введите данные прокси в соответствующее поле.
Теперь выйдите из диалогового окна, и Ubuntu автоматически применит новые настройки прокси.
Подключение прокси-сервера через веб-браузер
Google Chrome использует прокси-сервер на Mac или Windows. Выполните следующие действия, чтобы настроить параметры прокси прямо из браузера Chrome.
- Перейдите на панель инструментов Google Chrome, а затем в раздел Settings (Настройки).
- Прокрутите вниз и выберите Show advanced settings (Показать дополнительные настройки).
- Найдите System (Система) и перейдите к Open your computer’s proxy settings (Открыть настройки прокси).
- Теперь выполните инструкции в зависимости от вашей операционной системы, чтобы завершить процесс.
Часто задаваемые вопросы о прокси
Как настроить прокси-сервер дома?
Перейдите в меню Start (Пуск) в Windows, затем перейдите в Settings (Настройки), выберите Network & internet (Сеть и интернет) и, наконец, нажмите на Proxy (Прокси). Вы также можете использовать прокси на своем домашнем роутере.
Зачем устанавливать прокси-сервер?
Прокси-сервер может контролировать использование интернета пользователями. Вы можете использовать его для блокировки сайтов, содержание которых вы считаете неприемлемым. Вы также можете запрограммировать прокси-сервер на регистрацию всех запросов, если хотите узнать, какие сайты посещают ваши сотрудники во время работы.
Таким образом, прокси-сервер имеет определенные преимущества, такие как анонимность и безопасность в сети, но его недостатки серьезны, и мы советуем искать более безопасное решение.
Вопросы безопасности при настройке прокси-сервера
Когда вы используете прокси-сервер для перехода на веб-сайт, данные вашего устройства передаются через сторонний сервер, анонимизируя ваш трафик. Однако прокси-серверы имеют некоторые недостатки в плане безопасности, например:
1. Вирусные атаки
Использование прокси-сервера повышает риск вирусных атак и спама. В тот момент, когда вы подключаетесь к прокси-серверу, провайдер сервера начинает сеанс, сохраняя ваши журналы и показывая баннеры и рекламу.
2. Взлом системы безопасности
Прокси-сервер направляет ваш трафик через сторонний сервер. Совершаете ли вы транзакции или просто работаете в сети, все ваши данные проходят через этот сервер, принадлежащий какому-то незнакомцу.
3. Кража личных данных
Основная проблема с прокси-сервером заключается в регистрации ваших данных и их продаже третьим лицам. Это увеличивает риск утечки данных.
Вы уверены, что ваше подключение к интернету защищено?
Скачайте VPN Unlimited и получите 7-дневную бесплатную пробную версию + дополнительную 30-дневную гарантию возврата денег!