Нагрузочное тестирование проекта ruVPN, технология IPSec VPN-on-Demand для iPhone, iPad

    Неделю назад на сайте ruvpn.net было запущено функциональное бета-тестирование нового сервиса IPSec VPN-on-Demand. О результатах расскажу в конце статьи, а пока немного информации о проекте в целом. Сейчас проходит самый первый этап — IPSec VPN для устройств на базе Apple iOS.

    ruVPN

    Существует множество подобных решений, какой смысл делать еще одно? Все достаточно просто — аналогичные решения делались специалистами по сетям. Данное решение реализовано специалистами по безопасности сетей и цифровым сертификатам. Был использован опыт работы с очень крупными финансовыми компаниями, детально изучены корпоративные технологии в области информационной безопасности.

    Эти знания натолкнули на мысль — а что если взять все лучшее из корпоративного сектора и попробовать внедрить для обычных пользователей? В частности, можно использовать технологии корпоративных VPN при развертывании нового сервиса.
    Connect-on-DemandВ итоге можно получить все преимущества подобных решений:
    • автоматическая настройка VPN на устройстве,
    • авторизация на базе цифровых сертификатов,
    • автоматическое подключение VPN при любой сетевой активности устройства (VPN-on-Demand).


    Закрытые ключи генерируются и хранятся непосредственно на устройстве, профиль с параметрами VPN шифруется, выпуск сертификатов происходит по протоколу SCEP. Идеальное решение для пользователей, всерьез обеспокоенных безопасностью соединений своего мобильного устройства.

    Цена за все эти преимущества достаточно высока. Помимо сетевой составляющей решения, а именно сервера VPN с модулем авторизации, необходимо было развернуть полноценную инфраструктуру открытых ключей (PKI). Это включает в себя создание профилей для корневого и издающего центров сертификации, для серверных и клиентских сертификатов; развертывание центров сертификации; настройку OCSP и выпуск листов отзыва (CRL); подключение к издающему центру сертификации через API.

    Для автоматической доставки профилей на устройства под управлением Apple iOS был разработан специальный сервер приложений, взаимодействующий с устройством через XML поверх https.

    Используемые программные и аппаратные решения
    В итоге получилось достаточно объемное решение с использованием следующих компонентов:
    — Nginx в качестве Front-End,
    — СУБД PostgreSQL,
    — Сервер авторизации FreeRadius,
    — Центр сертификации EJBCA,
    — IPSec VPN сервер StrongSWAN,
    — Полнотекстовый поиск Sphinx.
    — Виртуализация выполнена на базе кластера Proxmox,
    — Сервер приложений написан на Java,
    — Web-сервер разработан на Scala.
    Дополнительно настроены почтовые сервера, DNS, все это контролируется с помощью системы мониторинга Zabbix.
    Операционные системы: Debian 6.0 и FreeBSD 9.0.
    Типичный выбор ПО для современных стартапов.
    Используются сервера HP Proliant DL360 и DL380, пятого поколения, в максимальной комплектации. Все сетевое оборудование Cisco. Кластер имеет 100% аппаратное дублирование, виртуальные машины настроены в режиме High-Avaliability с использованием iLO fencing.

    Приходилось работать так, что глаза не выдерживали, а голова гудела. Планирование, разработка и внедрение заняло почти полгода. По времени отвечу сразу — инвесторов у проекта не было, все приходилось выполнять лично или заказывать на собственные средства. Проект двигался от зарплаты до зарплаты. На текущей работе тоже приходилось работать, так что разработка шла преимущественно по ночам. Это тяжело, но терпимо. Ощущения от результатов собственного труда того стоят. В итоге кое-что получилось, под названием ruVPN. То есть русский VPN. Это против цензуры в интернете, против абсурдных запретов и списков, просто для безопасности.

    image

    В качестве платформы для первой стадии проекта были выбраны устройства на базе Apple iOS, это iPhone, iPad, iPod touch. В них полностью поддержаны технологии загрузки профилей и автоматическое подключение VPN.

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

    Прошу всех владельцев iPhone, iPad принять участие. Перейдите по ссылке и зарегистрируйтесь в системе. На устройство будет установлен профиль VPN в конфигурации VPN-on-Demand. После этого можно пользоваться мобильным устройством как обычно, при этом весь трафик будет передаваться по защищенному каналу до серверов в Норвегии, а далее – на запрашиваемый ресурс. На время тестирования доставка профиля по СМС отключена, ссылка может быть получена только по электронной почте. Ссылка на профиль действительна 24 часа должна открываться в браузере Safari, иначе система не подхватит файл с профилем.

    Желательно не отключать VPN до понедельника 27 мая, стараться использовать канал полностью, смотреть видео, например. В понедельник ночью профиль будет автоматически удален с мобильного устройства.

    Connect-on-Demand OffЕсли возникнет необходимость временно отключить VPN, то зайдите в меню Settings—General—VPN—ruVPN IPSec и передвиньте ползунок On-Demand в положение Off.

    Количество регистраций по данному коду приглашения (HabrHLtest) ограничено цифрой 500. Любой участник сможет пригласить до десяти друзей присоединиться к тестированию из Личного Кабинета.
    Присоединяйтесь к тестированию!
    ruVPN.net
    0.00
    Company
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 76

      0
      Android? Не, не слышали…

      PS: надеюсь ios only очень не надолго. Успехов!
      • UFO just landed and posted this here
      • UFO just landed and posted this here
          0
          Не совсем так. Автор предлагает VPN только для серфинга.
          • UFO just landed and posted this here
          +1
          Я может что-то сильно не понимаю, но какой смысл?

          У меня две VDS'ки (основная и горячий резерв) с openvpn дают возможность прекрасного VPN для устройств под андроид, ios, PC и Mac из коробки. Авторизация по сертификатам+паролю.

          Для на смартфонах используются приложения:

          itunes.apple.com/ru/app/openvpn-connect/id590379981?mt=8
          play.google.com/store/apps/details?id=net.openvpn.openvpn

          Для клиента процесс подключения заключается в
          1) Установить приложение
          2) Скачать файл настроек с сервера
          3) Скормить файл настроек программе.

          Учитывая вышенаписанное, Вы, мне кажется, не то что из пушки во воробьям с такой инфраструктурой и сложностью, а из BFG9k по микробам палите.
            +1
            Тут идея автоматического подключения «по надобности», ведь в классическом варианте смартфон «не спит» при поднятой ВПН сессии, и это существенно съедает батарею.
              0
              Cейчас достал планшет с CM10.1 (Android 4.2.2). Подключился к OpenVPN. Отложил планшет, он уснул. На сервере в openvpn-status устройство не видно (значит отключилось). Сейчас включу…

              Включил. VPN сам активировался, подключился, трафик вновь через VPN.
                +1
                Выше же было…
                «Android поддерживает технологию Always-on VPN (аналог VPN-on-Demand) только с версии 4.2. „
                  0
                  ОК, данный сервис не поддерживает никакой андроид. Так что пока все равно при равных с точки зрения клиента. Вот только помнится мне, что я еще на CM9 гонял openvpn без проблем со сном девайса. Правда он у меня, очевидно, рутованный.

                  И, кстати, посмотрите, описание OpenVPN connect в google play. Совместимость с андроид 4.0+, а не 4.2…
                  • UFO just landed and posted this here
                      0
                      Какая пользователю гаджета разница функция системы это реализует или приложение?
            • UFO just landed and posted this here
                0
                Приложение не надо настраивать. Везде «настройка» заключается в скачать файлики с сайта, положить в папочку к приложению. Все уже сконфигурировано.
                • UFO just landed and posted this here
                    0
                    Отзыв сертификатов — функция из коробки OpenVPN.

                    Я не понимаю почему мне тут все постоянно тыкают в нос тем, что делать клиентам. Все телодвижения в моем случае делаются так же как и в предложенном ruVPN решении на сервере скриптами\админом. От пользователя в любом случае требуются всего три описанных мною действия. Все мысли о безопасности все равно лежат на админах сервиса.

                    И вопрос у меня собственно к администрации ruVPN: зачем вы нагородили такой огород с кучей различного сложного софта, если хватило бы серверов с openvpn и простейшего сервиса генерации клиентских сертификатов?
                    • UFO just landed and posted this here
                        0
                        Давайте постараемся упростить, убрав «страшные» слова про корпоративную инфраструктуру. Правильно ли я понимаю, что отличие от аналогичного сервиса на OpenVPN только в том, что позволяет работать на iOS без установки (однокнопочной) стороннего софта. При этом не работает на андроиде и других платформах?

                        Или я упустил другие преимущества?
                        • UFO just landed and posted this here
                +1
                Это у вас. Но не у всех ведь есть две, да и хотя бы одна, VDS'ка.
                  0
                  Вопрос не к конечным пользователям, а к создателям ruVPN зачем они нагромоздили столько всего, когда хватило бы двух VPSок (+-c учетом нагрузки) с OpenVPN?
                  • UFO just landed and posted this here
                      0
                      Нативно — без стороннего софта? А что Вы считаете, что пользователю, который в принципе знает слово VPN и понимает зачем он ему сложно поставить из стора программку? Ни jail break ни каких-то высокомудрых телодвижений для этого не надо.

                      Проверенно, кстати, на моей девушке :-D
                      • UFO just landed and posted this here
                          0
                          Хм. А зачем тогда нужен смартфон? Мне всегда казалось, что отличие смартфона от мобильного телефона в возможности установки внешнего ПО.
                          • UFO just landed and posted this here
                0
                Не смог подконектиться к Яндекс.Музыке (приложение такое) через ruVPN (соединение по 3G, Москва). После отключения VPN зашел сразу.
                  0
                  Видимо это из-за их встроенных лицензионных ограничений (проверка страны по айпи). Просто сообщение об ошибке из-за страны выдает через раз.
                  • UFO just landed and posted this here
                  0
                  Спасибо за статью и отдельная благодарность — за такую добрую иллюстрацию. Очень понравилась.
                  • UFO just landed and posted this here
                    0
                    Видимо уже положили, поскольку при включении VPN на телефоне выдает «VPN-сервер не ответил»
                    • UFO just landed and posted this here
                        0
                        Кстати, да. Port Share на порт 443 ваша система в отличие от OpenVPN так же не умеет? По моему опыту в кафешках Москвы, где в основном интересно использовать гаджеты с VPN порты строго фильтруются. Я даже на 5222 джабберовский соединиться не могу в большинстве случаев.
                        • UFO just landed and posted this here
                          0
                          Включился. Но теперь никак не хочет отключаться. Ну кроме как удаления профиля. Туплю, все ок.
                          • UFO just landed and posted this here
                              0
                              Да, да. Эта привычка читать как включить, но не дочитывать про то как выключить… ;)
                        0
                        Очень не серьезно подготовились к нагрузочному тестированию. Ваша главная ошибка и сайт и сервис находятся на одном сервере, простейшая проверка с одной виртуалки через:
                        hping3 --rand-source -p 1723 -S --flood ruvpn.net
                        

                        Приводит к вот-такому результату:


                        Надеюсь к боевому включению эту дырищу уберете иначе любой скрипткиди положит ваш сервис с домашней машины, а это уже убытки и головная боль админу. Как минимум правило хорошего тона перед продакшином проводить пинтестирование и тестирование систем защиты от распространенных видов DoS атак. Внимательней надо быть к таким мелочам. Перед продакшином прогоните сервис сами через инструменты Kali, вам же будет спокойней.
                        • UFO just landed and posted this here
                            0
                            Не буду снова мучать администраторов в пятницу вечером, если будут нагрузочные тесты лучше проводить в будни, сами банально протестируйте через hping3, ab, mausezahn, nemesis и тому подобное, сами сможете следить за тем как реагирует вся система в целом. В цепи рвется самое слабое звено, толку от рабочих сервисов, если они не доступны клиентам. Самые распространенные виды DoS атак — это SYN и UDP флуд, все открытые в мир порты желательно протестировать грубой силой.
                            0
                            Получается вы просто забили канал.
                            • UFO just landed and posted this here
                                0
                                постойте… неужели, когда вы писали, что используете оборудование Cisco имелись ввиду межсетевые экраны Cisco ASA и именно на них вы терминируете VPN?
                                • UFO just landed and posted this here
                                    0
                                    спасибо, не внимателен. после того как сделал предположение по ASA, не удосужился снова заглянуть в ваш список софта и оборудования. но тогда вы товарищ лукавите, ни один коммутатор не уложить packet rate'ом с виртуалки.

                                    Самая младшая линейка коммутаторов cisco доступных на рынке:
                                    Cisco Catalyst 2950-12: 1.8 Mpps wire-speed forwarding rate
                                    • Cisco Catalyst 2950-24: 3.6 Mpps wire-speed forwarding rate
                                    • Cisco Catalyst 2950SX-24: 6.6 Mpps wire-speed forwarding rate
                                    • Cisco Catalyst 2950T-48: 10.1 Mpps wire-speed forwarding rate
                                    • Cisco Catalyst 2950SX-48: 10.1 Mpps wire-speed forwarding rate

                                    Т.е. минимально 1.8 mpps, при том что с виртуалки в лучшем случае выжмите 10-ки kpps.

                                    Признавайтесь, может net/ipv4/tcp_syncookies были выключены?
                                    • UFO just landed and posted this here
                                        0
                                        Поток, который мне удалось сгенерировать был значительно меньше, судя по данным мониторинга моего свича пиковое значение было 203,98 Kpps на выходе. Точный диагноз падения цисок нам врядли озвучат, гадать можно долго, увидеть бы логи, что происходило перед смертью.
                                  0
                                  Чтобы забить канал, надо иметь свой жирнее, а это не спортивно, ну долбануть сейчас туда по DNS Amplification или чем-то подобным и толку, тут было интересно проверить как справится сервис с нераспределенной атакой а вот просто обиженный клиент с домашнего компа. Оказалось слабое звено там, где скорее всего даже не предполагали, а именно в операторском оборудовании — это исправят и будут в дальнейшем спокойней себя чувствовать, одно дело простой на тесте, а другое когда есть шанс потерять реальных клиентов.
                                  • UFO just landed and posted this here
                                  0
                                  Ваша главная ошибка и сайт и сервис находятся на одном сервере

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

                                  иначе любой скрипткиди положит ваш сервис с домашней машины

                                  вы пробовали с домашней машины с данным параметром --rand-source?
                                  • UFO just landed and posted this here
                                      0
                                      VPN сервера не натятся

                                      Я писал, что натятся клиенты, а не сервера.

                                      методом round-robin

                                      туннельному интерфейсу клиента либо можно назнчить public ip из того самого пула и затем роутить его пакеты, либо NAT/PAT можно тем же round-robin. Вы хотите сказать, что выделяете адрес под каждого клиента?
                                      • UFO just landed and posted this here
                                      0
                                      Вы абсолютно правы, узнать не составит труда, мне было лень, если я получил результат простой грубой силой. Именно с этим параметром, домашняя машина — mac mini mc816 имеет на борту неплохую сетевую карту, выделенный внешний IP без тунелей и честное гигабитное подключение, что не редкость в некоторых регионах. И чем Вас смутил --rand-source, если на оборудовании провайдера не стоит дополнительный фильтр (а он редко стоит) пакеты с подменным source IP прекрасно уходят в мир, а оборудование ориентируется только на dest. Самым слабым местом, мне кажется, именно сервер агрегации VPN и атака на pptp и радиус, я бы перед продакшином дополнительно протестировал его. Можно попробовать забить канал попытками авторизации с левыми связками логин-пароль и подменными source-ip интересно как будет чувствовать себя радиус.
                                      • UFO just landed and posted this here
                                          0
                                          Проверка сертификата также достаточно ресурсоемкая операция. Так все-таки что случилось с цисками не удалось выяснить? Увидеть бы лог перед самым падением, там вообще как-то неверно они были настроены, через секунду после начала тестирования отклик по icmp (для чистоты эксперимента сам пинг проводил с другой страны, чтоб генерируемый поток не влиял на него) уже увеличился в 10 раз, через 5 секунд начались периодические потери пакетов, примерно через 5-10 минут (пока заварил чай и намазал пару бутербродов) внешний IP перестал подавать признаки жизни, я прервал тест.
                                          • UFO just landed and posted this here
                                              0
                                              Не совсем хорошо, отписал в личку.
                                    0
                                    Вопрос первый, почему я должен доверять вам свой трафик?
                                    Вопрос второй цена?
                                    Третий почему сайт не открывается?
                                      +1
                                      За не открытие сайта я вынужден посыпать голову пеплом, написали про нагрузочное тестирование, я первым попавшимся под руку инструментом и протестировал, честно говоря не ожидал такого эффекта, думал или меня забанит секунд через 30 или сервис даже не заметит, а он упал, сразу отключил инструмент, но он не подымается. :( Очень надеюсь к релизу продумают этот момент, сервис нужный и полезный, но к сожалению совсем не стойкий.
                                      UPD: Поднялся, а то мне аж стыдно стало.
                                        0
                                        Впервые в истории хабра замечен не хабр эффект, а хабраюзер эффект.
                                        • UFO just landed and posted this here
                                        • UFO just landed and posted this here
                                          –4
                                          Смените картинку, я понимаю нет денег на художника, но вешать такой треш не вариант.
                                          • UFO just landed and posted this here
                                              –2
                                              Пусть перерисует.
                                                0
                                                А завтра еще одному не понравится, и так 500 раз/ Где логика, уважаемый/
                                              0
                                              А мне нравится — с юмором и по существу!
                                              0
                                              Зашел на сайт, посмотрел предложение.
                                              450 рублей в месяц за 2 мбит, при этом идет запись логов.

                                              Сейчас за 300 рублей можно купить годовой доступ к vps с трафиком в 250 гигабайт в месяц, откуда взялась цифра 450 рублей в месяц?
                                              • UFO just landed and posted this here
                                                  0
                                                  Это полноценный виртуальный сервер с рутовым доступом, и конечно же там можно понимать и впн, и ссх туннели.

                                                  Сейчас на рынке много предложений в районе 10$/год.
                                                  lowendstock.com/
                                                  • UFO just landed and posted this here
                                                0
                                                Вопрос — почему 5-е поколение сереров HP? (думаю — какое было «под рукой», но интересно)
                                                • UFO just landed and posted this here
                                                    0
                                                    Спасибо, понятно.

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