VPN в каждый дом



    Всем привет! Желание сделать VPN сервер максимально простым в установке и удобным в использовании назревало уже давно. За основу я взял L2TP/IPsec, эта технология нативно поддерживается всеми устройствами и в отличии от PPTP не вызывает проблем при подключении через сотовых операторов.

    tl;dr
    Для установки нам потребуется машинка с Ubuntu 14.04 на борту и «белым» IP-адресом, любой VPS подойдет. Достаточно ввести эту волшебную строчку:
     curl -sS https://raw.githubusercontent.com/sockeye44/instavpn/master/instavpn.sh | sudo bash 

    и через несколько минут у вас будет рабочий VPN с управлением через браузер (httр://ip-address:8080/) или консоль (instavpn -h).


    Что внутри?


    После загрузки скрипт загружает сам VPN сервер (openswan и xl2tpd), node.js и vnstat, настраивает конфиги и iptables, устанавливает веб-интерфейс. Если вы используете Security Groups или любой другой внешний файрвол, придется открыть следующие порты: 4500/udp, 500/udp, 1701/udp, 8080/tcp

    Это слишком дорого для меня


    Такие провайдеры как DigitalOcean или OVH предоставят вам вполне подходящую машинку за 5 долларов в месяц. Если поискать получше, можно сократить расходы до 2-3$. Имхо, чашка кофе в месяц — не такая уж и большая цена за защиту от меняющих SSL-сертификаты провайдеров, блокировок сайтов, прослушки в публичных точках доступа и прочих «радостей» Интернета

    Ссылки


    Репозиторий на GitHub

    upd от Ernillew: Сидящим за NATом пользователям Windows может понадобится добавить одно значение в реестр. support.microsoft.com/kb/926179

    upd(2): Багрепорты и предложения было бы просто отлично переместить из комментариев в GitHub issues
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 246
    • +4
      Вот тут можно взять OpenVZ VPS за $9/год. Трафик 500GB/месяц, вполне хватает.
      • +1
        Кстати, куча их «недорогих для vpn». К примеру, 10$ в год, habrahabr.ru/post/189564/#comment_6583752

        И вопрос. TUN/TAP для этого нужно?
        • 0
          На всякий случай добавлю, что комментарии ниже про 123systems;
          хотя услугами 123sys я тоже пользовался(правда по другому тарифу) и всё было хотя и не очень хорошо, но не настолько плохо…
          • +22
            image

            Угоняю верхний комментарий, чтобы авторитетно заявить:

            1. Автор — чудак.
            2. Никогда, никогда, никогда так не делайте. Вы! Запускаете! С рутовыми! Правами! Непонятную! Фигню! Из! Интернета! Вслепую! Без восклицательных знаков тут не обойтись. Это осная причина ботнетов на шиндовс!

            Аргумент о том, что знающие пользователи сначала скачают скрипт и посмотрят его глазами, а уже потом запустят, не работает вообще. Т.к. большинство пользователей пользующихся такими советами являются новичками, и лично вы, автор, приучаете их к запредельно ошибочному подходу к работе в системе.

            Что может пойти не так:
            1. Провайдер увидит пост подменит запись в DNS.
            2. С таким подохом к безопасности я не удивлюсь, если ваш сайт сломают и скрипт подменят.
            3. Вы приучаете человека делать огромную глупость. Он потом пойдет, и сделает ее еще раз.

            Выводы:
            1. Автор — поменяйте статью. Не делайте так.
            2. Ребята, не делайте так НИ-КОГ-ДА. Огребете. Зуб даю.

            Экспрессия добавлена исключительно для привлечения внимания. Прошу никого не обижаться.
            • 0
              1. Так ли это необходимо Cloudflare?
              2. Сайт лежит на GitHub Pages. Надежный пароль и двухфакторная авторизация снизит эту вероятность.
              3. Разработчики RVM, NPM, Dokku, Chef делают огромную глупость.
              • +3
                1. Местному провайдеру — да запросто. В соседнем посте рассказывали, как интернет-провайдеры сертификаты на гитхаб меняли.
                2. Из конкретного: homakov.blogspot.ru/2013/03/hacking-github-with-webkit.html Можно было сделать все, совсем недавно. Зуб дадите, что у них больше нет таких уязвимостей?
                3. Если они делают такую фигню, то да, они делают огромную глупость. Если кто-то крупный делает глупость, это не дает никакого основания ее повторять. Аппелировать к авторитету не стоит.

                UNIX и подобные это не шиндовс, не надо учить людей делать глупые вещи.
                • +1
                  Подскажите где именно говорили про провайдеров и сертификаты. В постах информационной безопасности не обнаружил
                  • +1
                    Дом.Ру подменял сертификат для гитхаба, если вам это интересно.
                • +1
                  Понимаете, безопасность не работает по принципу «все или ничего». Мы не можем сделать систему 100% защищенной, но это не повод опускать руки и не стараться сделать ее защищенной. Это называется Defense in depth, и говорит нам о том, что нужно стараться максимально минимизировать риски, хотя и невозможно достигнуть 100%. Запуск скрипта из интернета без проверки глазами это очень большое наплевательство на безопасность.
                  • +2
                    Вы при обновлении пакетов из репов своей оси хотя бы инсталляционные скрипты просматриваете глазами?
                • +2
                  ayambit, полностью поддерживаю
                  Но есть проблема: у статьи рейтинг высокий, многое уже её прочли. А вот Ваш коммент — наверняка намного меньше. Да и смогли ли они понять все проблемы по такому краткому комменту?
                  Лучше напишите отдельную статью с более раскрытой аргументацией и примерами. Чтоб было доступно и для той части аудитории, которые не сильны в технических вопросах, но им нужно доступно объяснить все заблуждения.
                  • 0
                    Его коммент — чушь собачья. Посмотреть весь код — дело на 10 минут. Ничего там криминального нет. Просто белка-истеричка.
                    • +4
                      Вы ничего не поняли. Перечитайте еще раз.
                      • –7
                        Мало того, что белка истеричка, так еще и в карму срете.
                        Аккаунт-то чей-то старый купили, я так понимаю?
                        • 0
                          Нет, это мой настоящий аккаунт, много лет уже.
                  • 0
                    Написал.
                  • 0
                    2. По большому счёту все запускают что-то скачанное из Интернета с рутовыми правами вслепую. Объёмы кода современного софта (от ОС до игр) не позволяют хотя бы бегло просматривать весь запускаемый код, кому-то приходится верить «на слово».
                • +11
                  Ни в коем случае не связывайтесь с этим хостером! Пользовался их «услугами» около 7 месяцев. Очень часто ВДС валялась и не подавала признаков жизни, иногда он сам поднимался, сами они этот момент никак не контролировали и приходилось создавать тикет.
                  Скрин моих обращений в ТП
                  image

                  Недавно мой ВДС как обычно перестал работать, я создал тикет, вот так мне ответили:
                  Gerald P || Staff
                  Hello,
                  Your server was corrupted hence we had to setup it again. I have sent details.
                  Вкратце: они потеряли все данные моего ВДС и восстановить не могут. Уже после этого инцидента обнаружил большое к-во жалоб на них, и в том числе случаями полного удаления ВДС.
                  Они заявляют, что у них RAID10 и «99.9% uptime», но все это лажа. Не тратьте свое время на них и делайте бэкапы. (С FirstVDS тоже не связывайтесь ;-) )
                  • +1
                    Присоединяюсь! С переменным успехом удалось попользоваться сервисом месяц-полтора (было несколько падений на 2-3 дня). После чего он умер окончательно:
                    It appears to be the server has been crashed
                    Unfortunately, we have lost all the data on the server node due to crash
                    • 0
                      Спасибо, буду знать. У самого пока таких проблем не было, да и тариф я взял на распродаже, еще более дешевый ($5 за год). С трудностями, как у вас, не сталкивался, но и не могу сказать, что я его гонял на 100%.
                      • –4
                        Так raid10 ненадежен априори.
                        Вообще любые raid-ы, кроме первого — профанация.
                        • 0
                          А что в 10 не нравится? Что сразу два диска могут вылететь? Ну так и в зеркале с той же вероятностью сразу два диска навернуться могут.
                          • 0
                            Огромная куча случаев в моей практике, когда raid10 разваливался и восстанавливать его не удавалось никому (случаев 30 точно) не нравится.
                            В основном, из-за аппаратных проблем (диски флапали туда-сюда), но от этого не легче — raid1 в любых условиях выживает.
                            • 0
                              диски флапали туда-сюда

                              Что значит «флапали»?
                              • 0
                                Отваливались-включались.
                                • 0
                                  Ни один рэйд не предназначен для работы в таких условиях. Думаете, что зеркало выжило бы, если бы у него попеременно диски дёргали, а то и оба сразу?
                                  • 0
                                    Само по себе зеркало может и не выжило бы. Данные было бы восстановить легко.
                                    • 0
                                      Для восстановления данных нужен бэкап. Рэйд нужен для бесперебойной работы.

                                      • 0
                                        Чушь не порите.
                                        Бэкап никогда не будет на 100% актуальным. Если есть возможность восстановить raid — это намного предпочтительнее. Все бэкапы == потеря данных (сколько — зависит от).
                                        • 0
                                          Ну вообще-то будет, если это репликация в реальном времени с двухфазным коммитом. Другое дело, что назвать это бэкапом скорее всего нельзя.
                        • 0
                          Достойной заменой пожалуй будет cloudmouse. Как считаете?
                          • 0
                            Достойная замена за аналогичные деньги за 10$ есть по ссылке выше.
                            Вообще с удешевлением памяти(оперативки и SSD) достойные альтернативы будут появляться и появляться.
                          • 0
                            Подтверждаю. Имел опыт работы с этим хостером. Под конец года машина вообще не поднималась, не смотря на бесконечное число тикетов.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Сменил их на bluevm.com, пока полёт нормальные (~2 месяца)
                                • 0
                                  Ха! Да BlueVM не лучше.
                                • 0
                                  Ребята, это еще хуже! 45 дней мой ВДС у них не работал, поменяли айпишник, я ребутнул и он вновь не доступен. Я даже не знаю, что сказать…
                              • 0
                                It should be fixed now, please reboot.
                                • 0
                                  FirstVDS не нужен. Обычные реселлеры услуг хецнера.
                                  • +1
                                    У них свой ДЦ, скорее всего вы путаете FirstVDS с FastVPS (fastvps.ru)
                                • 0
                                  Практически все low-end VPS хостеры славятся таким.
                                  ChicagoVPS (тариф 7$ в месяц, акционный) терял мои файлы раза четыре уже, благо за последний год только один раз. При этом VPS при таких вот потерях может неделями лежать. Восстановить они обычно ничего не могут (хотя в последний раз все восстановили нормально, хотя на это и ушло около 7 дней).
                                  Virpus (тариф 5$ в месяц, не акционный) файлы теряли только 1 раз, но VPS валялся пару дней в месяц обязательно.
                                  Urpad (тариф 12$ в год, акционный) терял файлы два раза, один раз восстановили, правда спустя пару недель, правда там ничего особо важного не было и я не заморачивался.
                                  Prefiber (тариф 3 евро в месяц, не акционный) терял файлы несчетное количество раз (никогда не восстанавливали, видимо из принципа), аптайм вообще зависел от фазы луны по всей видимости, в итоге они вообще пропали (биллинг перестал работать, хотя VPS какое-то время еще продержался).
                                  Поэтому с low-end хостерами надо держать ухо в остро. Впрочем, под VPN подойдет.
                                  • 0
                                    ChicagoVPS = 123systems
                                    • 0
                                      А, то-то я смотрю интерфейс какой-то знакомый. Если их задалбывать обращениями каждый час, то через пару дней они все таки что-нибудь сделают.
                                      • 0
                                        Они две недели назад владельца сменили (123systems), вроде лучше стало, говорят.
                                        • 0
                                          Может они починили место из которого можно виртуалку переставить?
                                          А то я на свою у них существующую забил, с момента как понял, что не могу зайти в нужную консоль и сказать, что хочу систему с нуля.
                                    • 0
                                      Слушайте, читаю про потери, и у меня только один вопрос: зачем вы держите там проекты, если есть DO, за который пока только хорошее и слышно?
                                      • 0
                                        Сегодня он тоже лежал днем, но недолго. Я примерно минут 15 не мог в консоль управления зайти и потом еще с час висело предупреждение о проблемах в работе.
                                        • 0
                                          Да? Ну вот, нахвалил на свою голову :) Но видимо я очень редко в консоли бываю у них. Спасибо вам, развеяли :)
                                        • 0
                                          Для личного блога, пары проектов для себя, и VPN DO как-то дороговат по сравнению с этими хостерами. А тут еще и рубль падает. Ну и лень наверное, когда я арендовал эти VPS (по факту остался один), про DO еще не было слышно, а это же переносить надо :)
                                          А так есть бэкапы на бесплатном прокачанном Dropbox, скрипт, позволяющий быстро восстановить конфигурацию, так что все не так страшно.
                                          • 0
                                            Я на тот же DO ушел с хостинга jino.ru. Достало платить за каждую опцию.
                                            И хотя я не великий linux-админ (windows тоже :) ) то VDS мне куда больше нравится… А 200 рублей в месяц не жалко.
                                        • 0
                                          Может просто бесплатно юзать FrootVPN?
                                      • +2
                                        httpzoom.com. Полтора года, проблем нет. Минимальный тариф — 12 фунтов в год. Канал шикарный, смотрел через него HD-видео в реальном времени
                                      • +1
                                        123systems


                                        image
                                        image
                                        • +1
                                          www.serverbox.io/vps
                                          lowendoffer.com/
                                          www.frugalboxes.com/vps
                                          vpsrecord.com/offers/
                                          list.lowendserv.net/
                                          lowendstock.com/
                                          vpsboard.com/forum/10-vps-offers/

                                          Говно за $3-8 в год брать не стоит, но за $15 в год уже хорошие предложения от серьезных компаний.
                                          Могу порекомендовать Ramnode, Hosthatch, BuyVM, YourServer, HTTPZoom.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          • 0
                                            а я только-только от них ушёл (правда у меня там windows был). Windows server иногда падал, периодически я просто не мог зайти даже по vnc, хотя техподдержка отписывала, что всё работает. Пару раз я пропускал оплату, сервер отключали, и потом, после такого отключения, windows не запускалась. Не спорю, может мои кривые руки. Последние пару месяцев работало стабильно. Но снова на ровном месте, когда я не заходил туда даже пару недель, перестало работать. Ушел от них.
                                            И ещё, у меня возникло такое чувство, что ТП у них работает по европейскому времени, т.е. не особо круглосуточная. Т.к. я живу в UTC + 12, например перед обедом пишу тикет — на него ответят лишь когда у меня около 17 часов.

                                            В общем, как-то так я с ними поработал.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0
                                          А этот вариант не требует установки клиента на машину в отличии от того, который тут как-то недавно описывали? Т.е. хоть в XP прописывай IP в качестве VPN и вперед?
                                        • 0
                                          Как вовремя, спасибо! У меня как раз guthub отвалился и повод проверить появился.
                                          • 0
                                            Это гениально!
                                            • 0
                                              зачем в скрипте sudo, если сам скрипт нужно запускать от суперпользователя?
                                               curl -sS https://sockeye.cc/instavpn.sh | sudo bash 
                                              

                                              • 0
                                                Большинство провайдеров выдают root или пользователя с sudo без пароля
                                                • 0
                                                  ну вот у меня он не запустился потому что у меня нет sudo, и я его запускал из под рута
                                                   curl -sS https://sockeye.cc/instavpn.sh | bash 
                                                  
                                                  • 0
                                                    В Ubuntu 14.04 sudo ставится по умолчанию. Если вы его удалили, то придется использовать команду без sudo.
                                                    • 0
                                                      У меня провайдерская убунту. Там нет судо. Я, собственно, сообразил вызывать скрипт без судо. Просто у вас в самом скрипте совсем не нужное судо (скрипт ведь итак должен запускаться от суперпользователя).
                                                      Я просто взял и ручками склонил репозиторий
                                                      • +1
                                                        Что вы имеете в виду под «Ubuntu 14.04 по умолчанию»?
                                                        Если я сделаю debootstrap или поставлюсь с mini.iso, то у меня не будет sudo.
                                                        • +4
                                                          Предлагаю вместо sudo использовать в самом начале скрипта instavpn.sh следующую проверку:

                                                          if [ `whoami` != 'root' ]; then
                                                              echo "$0: only root can do that"
                                                              exit
                                                          fi  
                                                          


                                                          Имхо — намного практичнее.
                                                • 0
                                                  22:41:49 INFO: Checking your OS version...
                                                  Traceback (most recent call last):
                                                    File "install.py", line 53, in <module>
                                                      main()
                                                    File "install.py", line 7, in main
                                                      if util.check_os(log):
                                                    File "/home/username/instavpn/util.py", line 9, in check_os
                                                      logger.log_debug('OS: ' + platform.linux_distribution())
                                                  TypeError: cannot concatenate 'str' and 'tuple' objects
                                                  

                                                  Ubuntu 12.04
                                                  • 0
                                                    >Для установки нам потребуется машинка с Ubuntu 14.04
                                                    Вывод ошибки сейчас поправлю
                                                • +8
                                                  Репозиторий на GitHub

                                                  Чтобы установить драйвер для CD-ROM вставьте CD с драйверами.
                                                  • +1
                                                    Нет смысла ставить VPN в этой стране. А в других вроде как GitHub не блокируют
                                                    • +3
                                                      winrar.rar
                                                      • +2
                                                        а разве не pkunzip.zip?
                                                        • +5
                                                          Кто сейчас помнит про pkzip/pkunzip кроме нескольких олдфагов, вроде нас с вами?
                                                          • +1
                                                            Дык смысл-то как раз и был в самой программе :-D
                                                            Неужели и я теперь могу сказать: вот и выросло поколение, которые…
                                                            • +2
                                                              Думаю, нас не так уж мало.
                                                              Keyboard not found. Press F1 to continue
                                                              — из того же прошлого.
                                                            • +2
                                                              arj.zip
                                                              zip.lh
                                                              lh.arj
                                                              • 0
                                                                OFFTOP: Кстати, вот не припомню, что б пользовался arj и lh.
                                                                Вроде встречал на старых дисках с demoscene, но ни у кого не видел установленного.
                                                                • 0
                                                                  Во времена первых олдфагов, когда FTN еще только начинал шагать, а про Интернет еще не особо и слышали, нужно было записывать MS Office на 13 дискет. А pkzip не умел тома.

                                                                  И да, архиваторы тогда не устанавливались, они копировались в директорию, указанную в PATH. :)
                                                                  • 0
                                                                    Все было… ARJ преподавался как дефолтный архиватор под DOS. LH хорошо сжимал EXE-файлы. А еще был чумовой JAR от авторов ARJ. Он умел делать «главы», в которых хранились только изменившиеся файлы. Я на базе JAR построил глобальный бэкап в офисе, где были все изменения всех файлов всех пользователей за все время…
                                                          • 0
                                                            21:59:50 INFO: Checking your OS version...
                                                            21:59:50 CRITICAL: You must use Ubuntu 14.04
                                                            CRITICAL ERROR!
                                                            Crash report: https://pastee.org/cx3su
                                                            Support: https://github.com/sockeye44/instavpn/issues
                                                            


                                                            uname -a
                                                            Linux home 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
                                                            


                                                            lsb_release -a
                                                            No LSB modules are available.
                                                            Distributor ID: Ubuntu
                                                            Description:    Ubuntu 14.04.1 LTS
                                                            Release:        14.04
                                                            Codename:       trusty
                                                            

                                                          • 0
                                                            На инфобоксовской виртуалке не завелось
                                                            • 0
                                                              Завёл юзера, но через морду не пускает, в чём косяк?
                                                              • 0
                                                                Ответил в лс
                                                                • +1
                                                                  Да-да, надо было внимательней смотреть пост, спасибо огромное! Очень удобный вариант.
                                                              • +1
                                                                Вопрос из любопытства — почему на ранних дистрибутивах убунты не заведется?
                                                                • 0
                                                                  На различных версиях Убунты было достаточно много своих багов. Для демонстрации решил оставить одну ОС, после исправления всех проблем добавлю остальные версии.
                                                                  • 0
                                                                    В первую очередь хотелось бы поддержки 12.04, т. к. только ради vpn обновлять сервер не разумно, а заводить новый — глупо, когда есть не загруженные тестовые сервера.
                                                                • –3
                                                                  Какой-то у вас странный переход в статье случился. Сначала писали про то, как поднять VPN, а потом вдруг ни с того, ни с сего разговор про деньги. Причем не пояснено ни за что собственно платить, ни зачем. Сначало я думал, что вы рассказываете о том, как дома поднять VPN сервер, но только прочитав три раза понял к чему всё это. С этого стоить начинать статью. Потому что тот, кто знает, что так можно победить все перечисленные радости, и так, скорее всего, может поднять VPN сервер. А ваш потенциальный читатель, который этого не знает, или не дочитает до конца статьи, или не поймет нафига козе баян.
                                                                  • +2
                                                                    Деньги за хостинг, где будет VPN. Если хостинг бесплатный, то денег платить не надо.
                                                                    Даже тот, кто «знает как победить все перечисленные радости» обычно платит за хостинг.
                                                                    Автор поста денег не просит.
                                                                  • +2
                                                                    Я писал похожий скрипт для centos/rhel/fedora, интересен ли он общественности? Кстати IPSec не на всех дешевых openvz подымится, по этому можно сделать выбор между IPSec и pptp. Из vps могу посоветовать:
                                                                    cloudatcost.com — Канада, $12/год, сейчас 60% скидка, т.е. $4.8/год.
                                                                    hostmist.com — США, $10/год, бывают скидки, адекватный саппорт — включают нужные модули, если vpn не пашет.
                                                                    • +1
                                                                      всегда, когда есть альтернатива между fedora/ubuntu, я выбираю fedora. Поэтому, если будет такой скрипт — то буду пользоваться, спасибо!
                                                                      • +1
                                                                        Да, под Centos было бы хорошо.
                                                                        • +1
                                                                          PPTP — плохой выбор для параноика. С аутентификацией и шифрованием там всё достаточно плохо.
                                                                          • 0
                                                                            Не каждый openvz провайдер даст вам поддержку ipsec на уровне контейнера. Некоторые жлобохостеры даже нат рубают со всеми вытекающими. А kvm уже других денег стоит, хотя можно поднять на микрике амазоновском и запускать инстанс по надобности пользование vpn (хотя там за хранение инстанса тоже какие-то деньги берут).
                                                                            • 0
                                                                              В момент надобности вы можете не добраться до амазона чтобы поднять инстанс благодаря роскомнадзору :)
                                                                          • +1
                                                                            Присоединяюсь, предпочел бы centos
                                                                            • 0
                                                                              Я правильно понимаю, что в cloudatcost.com можно купить сервер за $4.8 в год или за $14 навсегда? И еще, это смущает
                                                                              • 0
                                                                                Точнее это
                                                                                • 0
                                                                                  Что конкретно вас смущает? Что у них база отвалилась? :-) Или первый пост в блоге о бизнес разведке?
                                                                                  А так все верно, $4.8 за год и $14 навсегда. Я не агитирую за них. Мне просто нужен был канадский айпишник и я купил самый дешевый vps который нашел.
                                                                                  Ничего на нем не храню, vpn поднимается скриптом (моим), и даже если его прикроют, я не сильно буду горевать по тем $3, которые я, пару месяцев назад, им заплатил.
                                                                                  • 0
                                                                                    Угу. Что база отвалилась. А также то что моя купленная заявка уже пару часов Pending. Хотя они там писали, что это в связи с наплывом запросов. Будем смотреть
                                                                                    • 0
                                                                                      Ну кривые руки фронтендщиков никто не отменял :) cloudatcost ведут очень агрессивную рекламную компанию, так что в комплексе с их ценами это превращается в несколько часовой pending. Но, согласитесь, за такие деньги можно и подождать, в том же Kimsufi на сервера еще более не реальная очередь.
                                                                            • +2
                                                                              Эх, захотел посмотреть как вы там быстро разворачиваете, заглядываю в скрипт, а там только клонирование репозитория и запуск чего-то питоновского. Вы это специально, что бы веселей было?
                                                                              Полезу смотреть что у вас там на питоне написано, интересно же!
                                                                              • +1
                                                                                ESP в файрволе уже не надо разрешать для работы IPSec? :)
                                                                                • 0
                                                                                  Если я правильно ошибаюсь, то L2TP был придуман или выбран как раз, чтобы в том числе избежать ESP в файерволе. Применение IPSec поверх голого IP вызывает лютое желание распечатать весь набор RFCей по IPSec и скормить постранично их авторам за то, что придумали без оглядки на практику применения.
                                                                                  • 0
                                                                                    Ммм… я 500/udp увидел, и подумал, что стандартно все: ISAKMP, затем IKEv1/v2 уже криптованное и поехали. Прошу прощения, если что-то не так понял. Хорошо было бы, если бы статья этот момент немного хотя бы разжевала :-)

                                                                                    L2TP/IPSEC uses UDP 500 for the the initial key exchange, protocol 50 for the IPSEC encrypted data (ESP), UDP 1701 for the initial L2TP configuration and UDP 4500 for NAT traversal. L2TP/IPSec is easier to block than OpenVPN due to its reliance on fixed protocols and ports.

                                                                                    Вроде как все как обычно.
                                                                                • 0
                                                                                  Где-то час потратил, чтобы понять, как настроить клиента в Linux (fedora 21, gnome 3)
                                                                                  1) Нужно установить NetworkManager-l2tp пакет
                                                                                  2) Settings -> Networks, добавить VPN подключение с типом L2TP (Layer 2 Tunneling Protocol)
                                                                                  3) ввести туда IP сервера в поле Gateway и юзера + пароль, взятых с веб админки вашего vpn
                                                                                  4) Network Manager -> Vpn -> Connect
                                                                                  • 0
                                                                                    Вообще говоря, ваша инструкция не покрывает те цели, которые заявлены автором поста. Нужен ещё IPSec (openswan).
                                                                                    • 0
                                                                                      Или racoon или strongswan или libreswan
                                                                                      • 0
                                                                                        Хоть что, но только не openSwan, oh god.
                                                                                  • 0
                                                                                    Воспользовался скриптом, и у меня осталась папка instavpn с питоновскими файликами — так и должно быть? :-) они все еще нужны?
                                                                                    • 0
                                                                                      Можно удалять без проблем
                                                                                    • 0
                                                                                      Подскажите, а как бы на этом же VPS ещё чёрные списки доменов прикрутить?
                                                                                      • 0
                                                                                        Что вы имеете в виду под черными списками доменов? Куда через него ходить нельзя или что?
                                                                                        • +1
                                                                                          Ну да, чтоб рекламу заодно фильтровать, раз уж свой сервер.
                                                                                          • +1
                                                                                            Тут есть два варианта. Первый поднимаете на нем прокси, например squid и на squidе рулите этим делом, а веб-траффик прозрачно загоняете на оный сквид. Второй поднимаете на нем ДНС и заворачиваете обращения к ДНСу на него, на ДНСе резолвите что хотите и как хотите. Для резанья рекламы я бы рекомендовал вариант с прокси.
                                                                                      • –2
                                                                                        Установил на DigitalOcean — создал дроплет с убунтой 14.04, на нее установил гит и запустил `curl -sS sockeye.cc/instavpn.sh | sudo bash`. Все работает, спасибо!
                                                                                      • 0
                                                                                        Что-то у меня не заводится, поднимаю на DO, все установилось и запустилось без проблем. Создал через WebUI пользователей, попробовал подключиться, ни с ноута (MacBook Air Mac OS X 10.10), ни с телефона (Nexus 5 Android 5.0) не подключается.
                                                                                        • 0
                                                                                          После пары перезагрузок все завелось, после смены логина и пароля для WebUI и создания новых пользователей, чтобы они заработали, пришлось перезагружать дроплет
                                                                                          • 0
                                                                                            Подтверждаю, также поднял на DO дроплет, сразу на маке не взлетело, хотя проверял все и через гуи и через терминал. Заработало только после ребута дроплета. И так нужно делать каждый раз после редактирования реквизитов эккаунта.
                                                                                            • –1
                                                                                              Все бы вам ребутить сразу.
                                                                                              service xl2tpd restart
                                                                                              service openswan restart
                                                                                              • 0
                                                                                                Эти вещи и так делаются автоматически при работе с юзером в консоли — пруф:
                                                                                                root@testVPNkey:~# instavpn user set homevpn **********
                                                                                                Restarting VPN server…
                                                                                                ipsec_setup: Stopping Openswan IPsec…
                                                                                                ipsec_setup: Starting Openswan IPsec U2.6.38/K3.13.0-37-generic…
                                                                                                Restarting xl2tpd: xl2tpd.
                                                                                                OK!
                                                                                                root@testVPNkey:~# instavpn user list


                                                                                                Так вот, это НЕ ПОМОГАЕТ! Юзер вновь созданный не коннектится через стандартную VPN-оснастку в Mac Os X 10.10, и помогает только полный ребут дроплета. Во всяком случае у меня так.
                                                                                        • +5
                                                                                          А зачем так сложно и велосипедно, какая-то прога на питоне, node.js...? Чем openvpn не угодил? Настриватется элементарно же, везде работает.
                                                                                          • 0
                                                                                            думаю, дело в том, что с точки зрения большинства ОС — как раз openVPN велосипед, тогда как IPSec/L2TP идут, что называется, искаропки.

                                                                                            (в том же андроиде, например, чтоб заставить любой внешний впн стартовать без вопросов при перезагрузке — нужен рут и XPosed Framework с модулями)
                                                                                            • 0
                                                                                              > (в том же андроиде, например, чтоб заставить любой внешний впн стартовать без вопросов при перезагрузке — нужен рут и XPosed Framework с модулями)

                                                                                              Вот эта штука вроде как умеет автозапуск и без доп. извратов.
                                                                                              • 0
                                                                                                там не от клиента зависит. в 4+ система спрашивает «у вас тут впн хочет стартовать, запустить?» при перезагрузке. для этого и нужен модуль XPosed, чтоб не спрашивала.
                                                                                              • 0
                                                                                                А если ориентироваться и на роутеры, тогда надо делать PPTP.
                                                                                                • +1
                                                                                                  роутеры — штука слишком растяжимая, где-то вообще ничего нет, а где-то и ipsec будет…
                                                                                                  • 0
                                                                                                    PPTP есть почти везде.
                                                                                                    • 0
                                                                                                      GRE до удаленного хоста есть не всегда.
                                                                                                    • 0
                                                                                                      Большая часть бытовых роутеров в диапазоне до $150 (в старых ценах) l2tp без шифрования-то еле тянет (хотя микротики за $70 нормально вытягивают ~90Mbit/s). Что уж говорить про ipsec, который куда более ресурсоёмкий.
                                                                                              • 0
                                                                                                И еще SoftEther…
                                                                                                • 0
                                                                                                  Это вообще гениальнейшая штука. настраивается легко, управляется удаленно, можно управлять пользователями, создавать сертификаты, ну и куча протоколов
                                                                                                  • +1
                                                                                                    Ага-ага, только вот сертификаты поддерживаются только собственным протоколом SoftEther, поддержка Radius никакая, IKEv2 нет, OpenVPN кастрированный, L3-туннели кастрированные.
                                                                                                • +1
                                                                                                  А есть ли инструкция по настройке клиентской ubuntu? У меня не хочет работать. Я так понимаю, что-то с ключами клиентскими

                                                                                                  Скрытый текст
                                                                                                  Dec  3 04:48:31 thinkpad NetworkManager[15178]: <error> [1417571311.531706] [nm-vpn-connection.c:1324] plugin_need_secrets_cb(): (97a7b880-d77b-4e5d-b012-0f1cda8a860b/VPN-соединение 1) plugin NeedSecrets request #1 failed: dbus-glib-error-quark Rejected send message, 1 matched rules; type="method_call", sender=":1.447" (uid=0 pid=15178 comm="NetworkManager ") interface="org.freedesktop.NetworkManager.VPN.Plugin" member="NeedSecrets" error name="(unset)" requested_reply="0" destination="org.freedesktop.NetworkManager.l2tp" (uid=0 pid=15585 comm="/usr/lib/NetworkManager/nm-l2tp-service --debug ")
                                                                                                  Dec  3 04:48:31 thinkpad NetworkManager[15178]: <info> Policy set 'Berserk 2' (wlan2) as default for IPv4 routing and DNS.
                                                                                                  Dec  3 04:48:31 thinkpad NetworkManager[15178]: <warn> error disconnecting VPN: Rejected send message, 1 matched rules; type="method_call", sender=":1.447" (uid=0 pid=15178 comm="NetworkManager ") interface="org.freedesktop.NetworkManager.VPN.Plugin" member="Disconnect" error name="(unset)" requested_reply="0" destination="org.freedesktop.NetworkManager.l2tp" (uid=0 pid=15585 comm="/usr/lib/NetworkManager/nm-l2tp-service --debug ")
                                                                                                  
                                                                                                  
                                                                                                  • 0
                                                                                                    Update: на андроид тоже не могу создать VPN подключения без указания каких-то ключей. Может я что-то не понимаю…
                                                                                                    • 0
                                                                                                      Насколько знаю, там есть два варианта, l2tp/IPSec psk и l2tp/IPSec rsa. Нужно выбрать psk
                                                                                                  • 0
                                                                                                    Мне понравился скрипт отсюда habrahabr.ru/company/infopulse/blog/183628/ запускаем, указываем логин и пароль и готово. Можно коннектиться.
                                                                                                    • 0
                                                                                                      тут тоже самое, только ещё и с вэб мордой с указанием трафика + уи для добавления, удаления юзверов
                                                                                                    • +3
                                                                                                      Ссылка на гитхаб в свете последних событий смотрится дерзко.
                                                                                                      • 0
                                                                                                        Периодически проходят посты про настройку VPN на сервере, и при этом мне не попадалось описание настройки на клиентской машине. Т.е. должны соблюдаться какие-то правила, чтобы соблюдать анонимность. Просто есть яркий пример, когда поймали основателя Silk Road, хотя тот пользовался Tor'ом. Говорят, что он попался из-за того, что часть запросов шла обычным путем, в обход шифрованного канала. Что говорить про обывателей, не все являются знатоками сетевых настроек.
                                                                                                        • 0
                                                                                                          Периодически проходят посты про настройку VPN на сервере, и при этом мне не попадалось описание настройки на клиентской машине. Т.е. должны соблюдаться какие-то правила, чтобы соблюдать анонимность. Просто есть яркий пример, когда поймали основателя Silk Road, хотя тот пользовался Tor'ом. Говорят, что он попался из-за того, что часть запросов шла обычным путем, в обход шифрованного канала. Что говорить про обывателей, не все являются знатоками сетевых настроек.

                                                                                                          Для анонимусов не желающих заморачиваться с хардендингом своей персоналки есть Live-CD дистрибутив tails, в нем и браузеры и фаервол (iptables) уже настроены так, что бы ни один пакет не прошел мимо tor/i2p. Весьма познавательно было поковырять их настройки.
                                                                                                        • 0
                                                                                                          Если у вас клиент базируется на MacOS или Linux, вы можете по быстрому активировать VPN без дополнительных программ, так как SSH уже предоставляет эту функциональность.

                                                                                                          На клиенте вам нужно запустит:
                                                                                                          ssh -D 9999 root@YOUR_SERVER_IP_ADDRESS

                                                                                                          После этого в браузере вам нужно указать «localhost» в опции «SOCKS Host» и порт 9999.

                                                                                                          Более подробно читайте на сайте online.esud.info/access-internet-via-ip-of-specified-country/
                                                                                                          • +1
                                                                                                            В винде это тоже делается вообще без проблем, качается kitty и пишется батник
                                                                                                            kitty.exe -D 8080 root@YOUR_SERVER_IP_ADDRESS -pw PASSWORD -send-to-tray
                                                                                                            • 0
                                                                                                              а клиент гита умеет сокс прокси? тот же вопрос про ide
                                                                                                              • 0
                                                                                                                на линуксе\маке можно просто завернуть весь исходящий трафик за исключением коннекта с ссх серверу и т.п. на порт 9999.
                                                                                                                • 0
                                                                                                                  Под Linux можно трафик как угодно и куда угодно заворачивать просто правильно настроив ~/.ssh/config
                                                                                                                  Так например можно организовать подключение по ssh к одному серверу через другой ssh-сервер либо же открыть локальный порт наружу по «белому» ip вашего сервера пробросив туннель.

                                                                                                                  Пушу коммиты на один сервер по первому описанному мной варианту — проблем вообще никаких.
                                                                                                                • 0
                                                                                                                  Я бы рекомендовал добавить флаг -C для включения сжатия. Выйдет такая команда
                                                                                                                  ssh -С -D 9999 root@YOUR_SERVER_IP_ADDRESS
                                                                                                                  • 0
                                                                                                                    Ещё, большая часть софта при этом будет продолжать делать dns-запросы в открытую. В случае firefox лечится с помощью foxyproxy, которая умеет завернуть dns в socks за компанию.
                                                                                                                    • 0
                                                                                                                      В firefox есть встроенное перенаправление dns трафика.
                                                                                                                      network.proxy.socks_remote_dns

                                                                                                                      По умолчанию вроде на true и стоит.
                                                                                                                      • 0
                                                                                                                        Я экспериментировал пару лет назад, wireshark/tcpdump показывали обыденный dns на 53/udp. Была ли эта настройка по умолчанию — не в курсе. Одним из ограничений было неизменение системной конфигурации proxy.
                                                                                                                        • 0
                                                                                                                          Надо на последней версии проверить, возможно это был баг и возможно они его исправили.
                                                                                                                    • +1
                                                                                                                      esudnik, Вы совершенно правы насчёт того, что:
                                                                                                                      можете по быстрому активировать VPN без дополнительных программ, так как SSH уже предоставляет эту функциональность


                                                                                                                      Но насчёт примера заблуждаетесь:
                                                                                                                      На клиенте вам нужно запустит:
                                                                                                                      ssh -D 9999 root@YOUR_SERVER_IP_ADDRESS

                                                                                                                      После этого в браузере вам нужно указать «localhost» в опции «SOCKS Host» и порт 9999.

                                                                                                                      Это — динамический порт форвардинг, иначе говоря, SOCKS-прокси. А вот полноценный VPN — это параметр -w

                                                                                                                      Более подробно в статье: SSH VPN over Internet (SSH tun туннелирование)
                                                                                                                      Пример настройки из этой статьи
                                                                                                                      Под