5W site logo 5W - мой домашний сайт-блог с картинками, кино и плюшками.

open-vpn-proxy.txt


TM Feed
Хабрахабр
Geektimes
Тостер
Мой круг
Фрилансим
Мегапосты:

Публикации
Пользователи
Хабы
Компании
Песочница

Денис4er
Пользователь
14 февраля 2013 в 13:45
Использование домашнего интернета на работе, обходим ограничения контента из песочницы tutorial
Open source*
Введение

Здравствуйте, товарищи!
Сразу оговорюсь, что статья не рассчитана на профессионалов, но и на блондинок она не рассчитана, а скорее предназначена для людей нуждающихся в полноценном доступе к интернету с прямыми руками и энтузиазмом.
Началось все с того, что у меня на работе ввели ограничения по ресурсам, на которые можно заходить. А посещать всякого рода сайты естественно хочется, ну и не хочется палиться в логах.
Вариантов решения проблемы несколько:

Тор сети
Покупка VPN сервиса
Настройка домашнего OpenVPN сервера для обхода ограничений рабочей сети.


О последнем варианте и пойдет речь, кого заинтересовал прошу под кат.


Установка, настройка и проверка


Что нам нужно

Так как нагрузка на наш мини-сервер будет не большая, вся моя серверная часть находится на виртуальной машине в VirtualBox.
Операционная система Debian, вся настройка будет проводиться под нее (Описание установки я приводить не буду, мануалов и так полно).
В случае, если вы используете роутер, то необходимо настроить проброс портов на IP ОС в VirtualBox.
Замечание: Для того, чтобы IP сервера пинговался из локальной сети в настройках машины VirtualBox, во вкладке Сеть нужно указать Тип подключения: Сетевой мост
Внешний статический IP желателен, но не обязателен, можно использовать DynDNS или один из способов представленных в этой статье.

Установка и настройка


Сервер

Будем считать, что Вы установили чистый, голый Debian в терминальном или графическом режиме, на Ваш вкус.
Тогда первое, что нужно сделать, это установить необходимые пакеты: OpenVPN, OpenSSL, LibLzo для сжатия траффика и MC удобный файловый менеджер.

sudo apt-get install openvpn openssl liblzo2-2 mc


Копируем примеры создания ключей в корневую папку и переходим в нее:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa


Создаем ключи и сертификаты, попутно отвечая на задаваемые вопросы:

. ./vars
./clean-all
./build-ca


Затем необходимо создать ключ сервера:

./build-key-server servername


Опять же вопросы и в результате получаем два файла: server.key и server.crt
Теперь нужно создать ключи для клиентов:

./build-key clientname


И снова куча вопросов, повторять данную операцию по количеству людей, которых вы собираетесь допускать к своему серверу.
Clientname и Servername могут быть любыми.
Теперь необходимо создать ключ Diffie Hellman:

./build-dh


Процесс может занять продолжительное время.
В итоге после всех этих манипуляций в папке keys у нас должны быть следующие ключи: ca.crt, servername.crt, servername.key, clientname.crt, clientname.key, dh1024.pem. Все кроме клиентских мы благополучно копируем в папку /etc/openvpn/:

cp ./keys/ca.crt /etc/openvpn
cp ./keys/server.crt /etc/openvpn
cp ./keys/server.key /etc/openvpn
cp ./keys/dh1024.pem /etc/openvpn


С созданием ключей покончено, осталось настроить сервер. Для этого в папке /etc/openvpn/ создаем файл server.conf

port 1194
proto tcp
dev tun # используем тип тунеля для интернет, tap для eternet
ca ca.crt # наши сертификаты
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0 # собственно наша виртуальная сеть
ifconfig-pool-persist ipp.txt
keepalive 10 120 # пинг каждые 10 секунд для поддержания канала связи
comp-lzo # сжатие трафика
persist-key
persist-tun
status openvpn-status.log #лог
push "redirect-gateway" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать.
client-to-client
route 10.8.0.0 255.255.255.0
verb 3 # уровень болтливости записей в логи
push "dhcp-option 8.8.8.8"


Осталось дело за малым, пустить интернет через наш сервер:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
/etc/init.d/openvpn restart


Все! Наш сервер готов к использованию.
Клиент

Приступим к настройке клиенской части.
У меня все настроено так же на Debianе, но под Windows тоже можно переделать инструкцию.
Повторяем первые шаги по установке OpenVPN, ключи создавать больше не требуется, нужно скопировать уже созданные ключи ca.crt, clientname.crt, clientname.key в папку /etc/openvpn/
Теперь осталось создать конфигурационный файл client.conf и можно будет работать:

port 1194 # ip и порт нашего сервера
client
dev tun
ping 10
comp-lzo
proto tcp
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key
ns-cert-type server
push "dhcp-option DNS 8.8.8.8"
route 10.8.0.0 255.255.255.0
verb 3
pull


Если у Вас выделенный IP то его можно также прописать в конфигурационном файле, у меня динамический, поэтому ввожу его при подключении.
Сохраняем файл и пробуем подключиться:

sudo openvpn --remote Ваш домашний IP --config /etc/openvpn/client.conf


Все! Можно работать! Помимо доступа в интернет, Вы так же имеете доступ в Вашу домашнюю локальную сеть.
Надеюсь кому-то это оказалось полезным.

openvpn, debian, tutorial, доступ в интернет, настройка, для начинающих, вредные советы

Реклама помогает поддерживать и развивать наши сервисы

Реклама



0
32,4k
157

Денис @4er
карма
12,0
рейтинг 0,0
Похожие публикации

5 апреля 2014 в 13:33 A/B Анализ для начинающих. Как понять, что именно работает на вас?
+24 19,9k 203 4
18 октября 2012 в 14:22 Учебник jQuery для начинающих
+122 188k 1654 55
28 мая 2008 в 18:18 Вредные советы: как нужно заказывать сайты
+52 1,6k 16 42

Самое читаемое
Разработка

Сутки
Неделя
Месяц

Комментарии (37)

dMetrius 14 февраля 2013 в 13:52 (комментарий был изменён)
0
Так я для себя и делал на предыдущем месте работы.

Несмотря на тотальный контроль и жесткую фильтрацию, я имел полный и ничем не ограниченный доступ в интернет на своём рабочем месте, а также наружу мне были открыты все порты, вместо только 80-го через прокси для остальных сотрудников.

Главное не забыть используемые локальные сети маршрутизировать через внутренний шлюз компании, а всё остальное пускать через OpenVPN туннель.

Как бонус к этому я получал возможность из дома зайти на рабочий компьютер с помощью RDP.
4er 14 февраля 2013 в 13:55
0

Главное не забыть используемые локальные сети маршрутизировать через внутренний шлюз компании, а всё остальное пускать через OpenVPN туннель.


Хм, у меня автоматом рабочие локальные ресурсы работают и локальные домашние, так что никаких проблем с этим не возникало.
k4shik 14 февраля 2013 в 14:17
+3
статья не рассчитана на профессионалов?
Это у вас шутки такие?
4er 14 февраля 2013 в 14:22
+1
Это я чтоб на меня профессионалы не налетели, ведь наверняка какие-то ошибки есть. А вообще тут кроме установки ОС все по шагам расписано, только копируй и вставляй в терминал.
anton1234 14 февраля 2013 в 14:57
0
Ваше решение с openvp требует установку клиента на рабочем месте.
Как вам ограничивают контент? Неужто вы думаете что ваш впн останется незамеченным?
Как минимум будет бросаться в глаза что у вас весь трафик по одному направлению идет.
Есть способ проще. Прокси сервер дома + foxyproxy плагин, чтобы использовать прокси только для запрещенного контента.
PS/Статье не помешает добавить тег «вредные советы». Ибо нельзя значит нельзя.
4er 14 февраля 2013 в 15:04
0
У нас конент ограничен на уровне провайдера, вроде NetPolice-ом. Домашний прокси не пробовал, а вот по сравнению с Тором скорость работы значительно быстрее.
P.S. спасибо, поправлю тег, не знал про такой.
anton1234 14 февраля 2013 в 15:11
0
И вправду есть такой тег? Я это в шутку.
Openvpn на голом линуксе из любви к контактику) Я бы простил это любому сотруднику. Куда лучше чем анонимайзеры.
4er 14 февраля 2013 в 15:22 (комментарий был изменён)
+1
:D Как видите есть :D Ну, кстати, дело не во вконтактике, а много различных полезных ресурсов режется, которые могут понадобиться при работе.
Кстати, насчет

Как минимум будет бросаться в глаза что у вас весь трафик по одному направлению идет.


Если динамический IP то его закрыть не смогут, а порт мы можем сами поменять. Другое дело, что могут прийти дяди свыше и надавать по балде за такие проделки.
Sterhel 14 февраля 2013 в 15:03
+7

Сразу оговорюсь, что статья не рассчитана на профессионалов, а скорее предназначена для людей нуждающихся в полноценном доступе к интернету.



Подумалось, что статья для секретарей и бухгалтеров, которым закрыли соцсети, а тут

Будем считать, что Вы установили чистый, голый Debian в терминальном или графическом режиме, на Ваш вкус.



Это 5.
4er 14 февраля 2013 в 15:06
0
Повторюсь, имелось ввиду не сервер промышленных масштабов, например, для компании, а просто домашнее баловство =)
Если очень сильно захотеть, то это не будет большой трудностью, все расписано по шагам.
NickyX3 14 февраля 2013 в 16:17
+1
Офигеть какие народ схемы придумывает.
Существенно проще (раз уж дома linux) прицепиться к домашней тачке по SSH с помощью Bitwise Tunnelier (который умеет поднимать локальную SOCKS5 поверх SSH), ну а прокси уже как хотите пользуете.
4er 14 февраля 2013 в 16:22
0

Существенно проще (раз уж дома linux) прицепиться к домашней тачке по SSH с помощью Bitwise Tunnelier (который умеет поднимать локальную SOCKS5 поверх SSH), ну а прокси уже как хотите пользуете.


Ну линукс у меня вынужденно на виртуалке для решения данной проблемы. Ваше решение не показалось мне таким уж простым, но залезу почитаю об этом способе, может и вправду проще.
sistemshik 14 февраля 2013 в 19:10
+3
1. ssh -D 9999 my.home.box
2. Настроить в браузере SOCKS5 прокси на localhost:9999

Куда уж проще?
aik 14 февраля 2013 в 16:38
0
А у вас разрешено ставить собственный софт и открыты все порты в мир?
4er 14 февраля 2013 в 16:42
0
Да, с этим проблем нет, как я уже писал, фильтрация проходит на уровне провайдера.
aik 14 февраля 2013 в 16:50
0
Тогда какой смысл возиться с vpn? Подняли прокси дома — и развлекаетесь.
4er 14 февраля 2013 в 16:56
0
Выше уже говорили об этой возможности, не догадался использовать ее.
TIgorA 14 февраля 2013 в 17:20
0
У меня дома без палева sstp на 443 порту.
fleaump 14 февраля 2013 в 17:25 (комментарий был изменён)
+4
Проще всего сделать всё на ssh, и ставить ничего не надо.
Качаем putty, распаковываем и делаем батник:

plink -P 22 USER@HOST -D 3010

и в настройках у FireFox Дополнительно->Сеть выставляем socks прокси:
127.0.0.1:3010

поздравляю, вы в сети из дома.

А так это велосипед который описывают по традиции раз в полгода
ищем по тегам ssh или openVPN.
siniysv 14 февраля 2013 в 17:40
+1
Все подобные системы обхода упрутся в прокси(HTTPS MitM) с фаерволом.
iXF 14 февраля 2013 в 18:49 (комментарий был изменён)
0
Большинство текущих роутеров ( на ум приходит тот же бюджетный ASUS N12 c1 за 1200р прошитый последнеи бета прошивкой) умеют из коробки VPN сервером быть, главное подсеть у него ставить не такую как на работе, а то при одинаковом ip адресе шлюза и DNS рискуете не получить профита.
Требование лишь в наличии «белого» аипишника.
4er 14 февраля 2013 в 21:24
0
Кстати на роутере пробовал настраивать, но он только в домашнюю локалку пускал, интернет все равно шел через рабочую сеть. ASUS N66-RT, кажется этот.
iXF 14 февраля 2013 в 21:43 (комментарий был изменён)
0
Сделаите дома подсеть 10.0.0.x, видимо получается, что рабочий шлюз 192.168.1.1 и шлюз у впна один и тот же и он ломится через рабочий. У меня тоже он же, все ок
4er 14 февраля 2013 в 22:20
0
Хм, попробую, спасибо.
cepera_ang 14 февраля 2013 в 19:06
0
Статью не читал, но на 100% уверен, что её содержание сводится к тому, что можно поставить на рабочей тачке любой софт, поставить дома/в облаке линукс-сервер с openvpn на 443-порту и смело подключаться сквозь всякие прокси. Банально до ужаса.
WildShadow 14 февраля 2013 в 20:47 (комментарий был изменён)
0
Разве для установки клиента не нужны администраторские права на компьютере? а у обычных пользователей как правило их нет.
Ограничение не через прокси сервер с фаерволом где обычно закрыты все лишние порты(в статье предлагается использовать 1194 порт)?
4er 14 февраля 2013 в 21:30
0
Ну естественно у каждого индивидуальные случае, я описал, как я справился с проблемой, у меня админские права на компьютере, а ограничение происходит на уровне провайдера.
kodi 14 февраля 2013 в 21:55
0
а зачем провайдеру закрывать вам развлекательные ресурсы?
4er 14 февраля 2013 в 22:21
0
Я работаю в госучреждении.
kodi 14 февраля 2013 в 21:44
+2
имхо, ваш случай — исключение.
и зачем на винду ставить виртуалку+линукс, если есть openvpn под win?
как многие заметили, в большенстве случаев:
— если все это возможно запустить в работу, то ваш трафик спалят
— порты по-умолчанию закрыты, на 80 порт его вешать?
— обычно у пользователя нет прав на уставку софт

(все это относится к организациям, где делают закрытие «вконтакте» не для галочки)
4er 14 февраля 2013 в 22:24
0
Ну возможно, просто у меня нет возможности протестировать в серьезной организации. Спасибо за отзыв.
Levor 14 февраля 2013 в 22:36
+2
Всегда считал все эти блокировки ресурсов результатами приступов административного недержания у неадекватного руководства. Исключение — компании, где серьёзно стоит вопрос безопасности (я таких не видел, но наверное, они где-то существуют), но там всплеск трафика непонятно куда быстро спалит соответствующая служба и автор выгребет по полной.
Для контор, где вконтактик закрыт ради прихоти начальника-самодура, решение сойдёт. Хотя непонятно, зачем нужна виртуалка, да и в случае доступа в интернеты только через проксю работать ничего не будет.
foxmuldercp 14 февраля 2013 в 23:36
+1
моё мнение, что решение неадекватное, если честно.
1. Девочка бухгалтер явно дома не поднимет [виртуалку [с дебианом]].

2. Я не очень представляю себе, как девочка бухгалтер без админских прав сменит себе DNS, настройки прокси.

3. А то и запустит неподписанный переносимый на флешке броузер, есть правильно настроены политики безопасности. И вообще запустит что-либо из домашнего каталога.

4. DNS траффик на левые сервера обычно запрещают, соответственно смена DNS не поможет, в hosts прописать нужные айпишники вконтактику/одноглазникам по отсутствию админ-прав тоже, кхм, маловероятно.

5. Обычно все левые порты закрыты, разрешён только http(s) траффик,

6. Система анализа траффика в нормально настроенной сети впн, торенты, файлопомойки и stream (flash видео или ютубы) и ftp обычно блокирует для всех, кроме избранных, тоже самое может касаться, например, асек и скайпов, а в случае появления нехарактерного траффика идёт уведомление сотрудников ИТ безопасности.

7. На одном из последних семинаров слышал про п/о, которое позволяет, допустим, пользоваться вконтактом/фейсбуком, но при этом запрещает смотреть оттуда видео, пересылать через них файлы и играть в тамошние игрушки.

8. И ни слова про прокси.

Единственный самый нормальный вариант — свой не корпоративный и не контролируемый компанией телефон с планшетом, где можно творить всё, что дуще угодно, если гайки сильно закручены.

Если не очень — можно попробовать пообщаться с админами. При правильном подходе, я думаю, что можно договориться.
cepera_ang 15 февраля 2013 в 08:48
+1
Иногда уровень безопасности параноидальный, но сделан для галочки — всё закрыто и зарезано, однако трафик не анализируется и openvpn на 443 или 80-порту вполне себе работает годами :)
timukas 15 февраля 2013 в 11:59
0
Bluecoat proxy умеет делеть пункт 7. Там есть большой список (около 100) сайтов/соцсетей и для каждого типа можно настраивать свои правила. Например на youtube можно смотреть смотреть видео, но нельзя логиниться или заливать их. Или в жж можно логиниться и постить, но нельзя заливать фотки-видео.
Nem427 17 февраля 2013 в 15:25
0
вставлю свои семь копеек
— про порт 1194 уже сказали, придётся поднимать vpn на порту 80 (а лучше 443)
— правильные поцоны используют роутер или RaspberryPi для этих целей, а не какие-то виртуалбоксы
— и самое главное моё возмущение: на работе нужно работать!!! Если я у себя такого умника поймаю, то за изобретение «пять», а вот в премию «кол с минусом» и бан на доступ в инет. Вы б попробовали начальству обосновать необходимость отмены запретов, и если это действительно для пользы, то Вам на встречу пойдут, а если для развлечений, то «кол с минусом» и я уже написал за что.
Stas911 17 февраля 2013 в 17:15 (комментарий был изменён)
0
Мне одному пришла в голову банальная мысль, что это элементарно непорядочно — сперва подписать кучу бумаг и полиси об использовании служебных ресурсов при устройстве на работу, а потом бесцеремонно проковыривать дырки в безопасности?

В большинстве мест, где я работал (из них два банка мирового уровня), были закрыты всякие дропбоксы и внешние почты\одноклассники\контакты и твиттеры. Дык в чем проблема — все это работает прекрасно и со смартфона: зашел на кухню, налил кофе и почитал чего хочется. Для чего весь этот цирк?