Использование домашнего интернета на работе, обходим ограничения контента

Введение


Здравствуйте, товарищи!
Сразу оговорюсь, что статья не рассчитана на профессионалов, но и на блондинок она не рассчитана, а скорее предназначена для людей нуждающихся в полноценном доступе к интернету с прямыми руками и энтузиазмом.
Началось все с того, что у меня на работе ввели ограничения по ресурсам, на которые можно заходить. А посещать всякого рода сайты естественно хочется, ну и не хочется палиться в логах.
Вариантов решения проблемы несколько:
  • Тор сети
  • Покупка 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 

Все! Можно работать! Помимо доступа в интернет, Вы так же имеете доступ в Вашу домашнюю локальную сеть.
Надеюсь кому-то это оказалось полезным.
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 37

  • UFO just landed and posted this here
      0
      Главное не забыть используемые локальные сети маршрутизировать через внутренний шлюз компании, а всё остальное пускать через OpenVPN туннель.

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

              Если динамический IP то его закрыть не смогут, а порт мы можем сами поменять. Другое дело, что могут прийти дяди свыше и надавать по балде за такие проделки.
          +7
          Сразу оговорюсь, что статья не рассчитана на профессионалов, а скорее предназначена для людей нуждающихся в полноценном доступе к интернету.


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

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


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

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

                Куда уж проще?
              0
              А у вас разрешено ставить собственный софт и открыты все порты в мир?
                0
                Да, с этим проблем нет, как я уже писал, фильтрация проходит на уровне провайдера.
                  0
                  Тогда какой смысл возиться с vpn? Подняли прокси дома — и развлекаетесь.
                    0
                    Выше уже говорили об этой возможности, не догадался использовать ее.
                0
                У меня дома без палева sstp на 443 порту.
                  +4
                  Проще всего сделать всё на ssh, и ставить ничего не надо.
                  Качаем putty, распаковываем и делаем батник:

                  plink -P 22 USER@HOST -D 3010

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

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

                  А так это велосипед который описывают по традиции раз в полгода
                  ищем по тегам ssh или openVPN.
                    +1
                    Все подобные системы обхода упрутся в прокси(HTTPS MitM) с фаерволом.
                      0
                      Большинство текущих роутеров ( на ум приходит тот же бюджетный ASUS N12 c1 за 1200р прошитый последнеи бета прошивкой) умеют из коробки VPN сервером быть, главное подсеть у него ставить не такую как на работе, а то при одинаковом ip адресе шлюза и DNS рискуете не получить профита.
                      Требование лишь в наличии «белого» аипишника.
                        0
                        Кстати на роутере пробовал настраивать, но он только в домашнюю локалку пускал, интернет все равно шел через рабочую сеть. ASUS N66-RT, кажется этот.
                          0
                          Сделаите дома подсеть 10.0.0.x, видимо получается, что рабочий шлюз 192.168.1.1 и шлюз у впна один и тот же и он ломится через рабочий. У меня тоже он же, все ок
                            0
                            Хм, попробую, спасибо.
                        0
                        Статью не читал, но на 100% уверен, что её содержание сводится к тому, что можно поставить на рабочей тачке любой софт, поставить дома/в облаке линукс-сервер с openvpn на 443-порту и смело подключаться сквозь всякие прокси. Банально до ужаса.
                          0
                          Разве для установки клиента не нужны администраторские права на компьютере? а у обычных пользователей как правило их нет.
                          Ограничение не через прокси сервер с фаерволом где обычно закрыты все лишние порты(в статье предлагается использовать 1194 порт)?
                            0
                            Ну естественно у каждого индивидуальные случае, я описал, как я справился с проблемой, у меня админские права на компьютере, а ограничение происходит на уровне провайдера.
                              0
                              а зачем провайдеру закрывать вам развлекательные ресурсы?
                                0
                                Я работаю в госучреждении.
                            +2
                            имхо, ваш случай — исключение.
                            и зачем на винду ставить виртуалку+линукс, если есть openvpn под win?
                            как многие заметили, в большенстве случаев:
                            — если все это возможно запустить в работу, то ваш трафик спалят
                            — порты по-умолчанию закрыты, на 80 порт его вешать?
                            — обычно у пользователя нет прав на уставку софт

                            (все это относится к организациям, где делают закрытие «вконтакте» не для галочки)
                              0
                              Ну возможно, просто у меня нет возможности протестировать в серьезной организации. Спасибо за отзыв.
                            • UFO just landed and posted this here
                                +1
                                моё мнение, что решение неадекватное, если честно.
                                1. Девочка бухгалтер явно дома не поднимет [виртуалку [с дебианом]].

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

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

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

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

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

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

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

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

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

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

                                      Only users with full accounts can post comments. Log in, please.