По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сегодня рассмотрим установку малоизвестного аналога FreePBX под названием Wazo – отличий достаточно много, начиная от версии Linux (Debian), дистрибутив с которой можно скачать с официального сайта http://wazo.community и заканчивая крайне непривычным видом самого Web-интерфейса. Установка В первую очередь, необходимо создать виртуальную машину под скачанный дистрибутив корректной разрядности – то есть машина должна быть 64-битной, если вы скачали соответствующий дистрибутив и наоборот. Далее, выбираем образ, с которого машина будет грузиться (здесь все также как и прежде – никаких изменений) и запускаем машину. Далее будет предложено выбрать способ установки, выбираем просто Install: Далее появится возможность выбрать язык для установки – выбираем русский язык. Выбираем местоположение – страну или регион: Выбираем раскладку клавиатуры – нам нужна английская: Далее начинается загрузка дополнительных компонентов – придётся немного подождать. Дистрибутив Wazo «весит» совсем немного – около 400MB, однако, докачивает много файлов в процессе установки, и, конкретно в моём случае процесс установки получился очень длительным. Далее вводим пароль суперпользователя (пароль на пользователя root). Обязательно сгенерируйте его соответствующим требованиям безопасности. Затем выбираем часовой пояс, после чего начнётся установка базовой системы (на скриншотах ниже). Далее начинается процесс настройки менеджера пакетов (в случае Debian-систем используется apt-get, в отличие от привычного yum). Сначала выбираем страну расположения – логично также выбрать РФ, затем выбираем зеркало – я выбрал зеркало МИФИ: Оставляем пустым поле HTTP-прокси – в моём случае его заполнять не нужно. Сразу после этого будет довольно длительная процедура по настройке apt: Последним шагом необходимо выбрать диск для установки системного загрузчика – так как в моём случае Wazo устанавливается на простейшей виртуальной машине, то и диск один – его и выбираем. После этого появится последний прогресс-бар о продолжении процесса установки. Как только процесс завершится (у меня этот процесс занял около 30 минут) произойдет перезагрузка. Как только система загрузится, введите логин – root и пароль, который вы установили ранее. После чего, введите команду ipconfig для того, чтобы понять, какой адрес был присвоен IP-АТС. Кстати, в случае FreePBX пользователь видит IP - адрес сразу после входа на АТС. Далее заходим по адресу, который вы видите в выводе команды и продолжаем процесс первичной настройки. Выбираем язык – к сожалению, выбрать можем только между английским и французским. Далее нажимаем Next и сначала читаем, затем соглашаемся с лицензионным соглашением GNU GPL. После чего последовательно производим следующие настройки: Hostname - имя вашего сервера с АТС; Domain name - ваш домен; WebInterface root password - пароль суперпользователя для управления АТС через веб-интерфейс; Interface VoIP - адрес АТС и адрес шлюза по умолчанию; DNS servers -DNS сервер – я оставил данную настройку нетронутой; Затем будет неожиданное – настройка контекста внутренних вызовов, внешних и интервала нумерации: Entity - название вашей организации; Internal calls context - название контекста для внутренних вызовов и диапазон нумерации пользователей – позднее это можно будет изменить; Incalls context - контекст для прямых вызовов (DID) и их диапазон – я оставил данное поле незаполненным; Outcalls context - название контекста для исходящих вызовов; После нажатия на Next вы увидите всю введенную информацию (для подтверждения) ещё раз – необходимо нажать на кнопку Validate: Наконец-то можно начать пользоваться системой – но предварительно вы увидите экран, похожий на Dashboard у FreePBX – здесь есть информация о сетевых интерфейсах, железе, жёстком диске, запущенных серверах и плагинах. Попробовать что-то покрутить касаемо телефонной части можно нажав на кнопку Services и, затем, IPBX – тут можно управлять транками, пользователями и так далее. Заключение Решать нужна ли вам данная АТС – только вам, но мы настоятельно советуем попробовать её установить, так как определённое количество «фишек» у неё присутствует – о них и о подробной настройке данной АТС мы расскажем в следующих статьях.
img
Любое крупное приложение должно сопровождаться несколькими наборами тестов, с помощью которых можно проверить его стабильность и производительность.  Существует большое количество различных тестов, каждый из которых имеет свое назначение и охватывает определенные аспекты приложения. Именно поэтому, когда вы тестируете свое приложение, вы должны убедиться, что ваш набор тестов сбалансирован и охватывает все аспекты.  Однако есть один тип тестов, который разработчики часто предпочитают другим, и поэтому им часто злоупотребляют. Этот «сквозное тестирование» (E2E - end-to-end testing).  Что такое сквозное тестирование? Для тех, кто только начал штурмовать мир тестирования программного обеспечения, E2E-тестирование - это проверка вашего приложения от начала до конца вместе со всеми его зависимостями. При проведении E2E-тестировании вы создаете среду, которая будет идентична той, которую будут использовать реальные пользователи приложения. А затем вы тестируете все действия, которые могут выполнять пользователи в вашем приложении. С помощью сквозного тестирования вы проверяете весь рабочий поток целиком, например, вход на веб-сайт или покупку товара в интернет-магазине.   Если вы будете злоупотреблять E2Е-тестирование, то вы перевернете пирамиду тестирования. Я в такой ситуации был. В одном из своих проектов я планировал охватить большую часть приложения Е2Е-тестами или, что еще хуже, воспользоваться лишь один Е2Е-тест. К счастью, я передумал. Так вот, теперь я хочу поделиться с вами тем, что заставило меня передумать.  Почему не нужно пренебрегать пирамидой тестирования? Хаотично написанные тесты сначала могут показаться вполне пригодными, но в конце концов они таковыми не окажутся.  Мы пишем тесты для того, чтобы выиграть больше времени, и мы делаем это с помощью методы и средства автоматизации тестирования. Конечно, можно было бы самостоятельно открывать приложения и тестировать их вручную. Если бы это нужно было сделать однократно, то проблем не было бы. Но так бывает крайне редко.  Программное обеспечение постоянно обновляется. Поэтому необходимо проводить регулярные тестирования для того, чтобы оставаться в курсе последних событий. Вы, конечно, можете ежедневно запускать все тесты вручную при каждом обновлении приложения. Но если вы один раз напишите набор тестов, а затем будете его запускать каждый раз, когда нужно будет протестировать какой-то из аспектов приложения, то вы сэкономите много времени.  У каждого теста есть свое назначение. Если вы будете использовать их не по назначению, то они могут вам больше навредить, чем помочь. Это связано с тем, что в итоге вы потратите больше времени на то, чтобы написать эти тесты, и на их сопровождение, чем на разработку самого приложения. Иными словами, вы останетесь без одного из самых больших преимуществ автоматизированного тестирования.  Хорошее начало – придерживаться пирамиды тестирования. Она поможет вам определить правильный баланс в тестированиях. Эта пирамида является отраслевым стандартом и используется с середины 2000-х годов по сей день, так как все еще считается эффективной.  Значит ли это, что разработчики никогда не пренебрегают этой пирамидой? Не совсем. Иногда пирамида бывает перевернутой, где большую часть тестов составляют Е2Е, а иногда она бывает похожа на песочные часы, где очень много юнит- и Е2Е-тестов, но с очень мало интеграционных тестов.  Три уровня пирамиды тестирования Как правило, пирамида тестирования имеет три уровня: юнит-тесты, интеграционные тесты и сквозные тесты.  Юнит-тесты Юнит-тесты, или модульные тесты, делают акцент на самых маленьких единицах кода, таких как функции и классы.  Они короткие и не зависят ни от каких-либо внешних пакетов, библиотек и классов. В противном случае, в ход идет имитированная реализация.  Если юнит-тест дает сбой, то найти причину проблемы не так сложно. Они также имеют небольшой диапазон тестирования, что делает их простыми в написании, быстрыми в работе и легкими в сопровождении.  Интеграционные тесты Интеграционные тесты делают акцент на взаимодействии между двумя отдельными объектами. Как правило, они работают медленнее, потому что они требуют более серьезной настройки.  Если интеграционные тесты проваливаются, то найти проблему немного сложнее, так как диапазон ошибок больше. Они также более сложные в написании и сопровождении, в основном потому, что они требуют более продвинутое имитирование и расширенную область тестирования.  Сквозные тесты И наконец, сквозные тесты, или E2E-тесты. Они делают акцент на рабочих потоках, от самых простых до самых сложных. Эти тесты можно рассматривать как многоэтапные интеграционные тесты.  Они самые медленные, потому что они подразумевают сборку, развертывание, запуск браузера и выполнение действий внутри приложения.  Если сквозные тесты проваливаются, то найти проблему часто бывает очень сложно, потому что диапазон ошибок увеличивается до всего приложения. В принципе, по пути могло сломаться все что угодно. Это, безоговорочно, самый сложный тип тестов для написания и сопровождения (из трех типов, которые рассмотрели здесь) из-за огромного диапазона тестирования и из-за того, что они охватывают все приложение.  Надеюсь, теперь вы понимаете, почему пирамида тестирования была спроектирована именно таким образом. Снизу-вверх каждый уровень тестирования говорит о снижении скорости и увеличении диапазона и сложности и усложнении сопровождения.  Именно поэтому важно не забывать о том, что E2E-тестирование не может полностью заменить другие методы – оно лишь предназначено для расширения их возможностей. Назначение Е2Е-тестирования четко определено, и тесты не должны выходить за его границы.  В идеале тесты должны выявлять ошибки настолько близко к корню пирамиды, насколько возможно. Е2Е-тест предназначен для проверки кнопок, форм, изменений, ссылок, внешних процессов и вообще всех функций рабочего потока. Тестирование с кодом VS codeless-тестирование В целом, существует два типа тестирования: ручное и автоматизированное тестирование. Это значит, что мы можем проводить тестирования либо вручную, либо с помощью сценариев.  Чаще используют именно второй метод. Но и автоматизированное тестирование можно разделить на две части: тестирование с кодом и codeless-тестирование.  Тестирование с кодом Когда вы проводите тестирование с кодом, вы используете фреймворки, которые могут автоматизировать браузеры. Один из самых популярных инструментов – это Selenium, но я больше предпочитаю использовать в своих проектах Cypress (только для JavaScript). И тем не менее, работают они практически одинаково.  По сути, с помощью таких инструментов вы моделируете веб-браузеры и даете им указания для выполнения различные действия в вашем целевом приложении. После чего вы проверяете, отреагировало ли ваше приложение на соответствующие действия. Это простой пример имитации, взятый из документации Cypress. Я привел его, чтобы вы могли лучше понять, как работает этот инструмент: Давайте посмотрим, что тут происходит: Допустим, пользователь посещает сайт  https://example.cypress.io   Когда она нажимает на ссылку с пометкой type, URL-адрес должен добавить /commands/actions Если он вводит «fake@email.com» в поле ввода .action-email, тогда ввод .action-email принимает значение «fake@email.com». Codeless-тестирование В ситуации с codeless-тестированием вы используете фреймворки на базе искусственного интеллекта, которые запоминают ваши действия. И основываясь на некоторой дополнительной информации, они проверяют, отвечает ли ваше целевое приложение на действия должным образом.  Эти инструменты часто выглядят как малокодовые платформы для разработки, где вы перемещаете различные панели. Один из таких инструментов – TestCraft, codeless-решение, разработанное на платформе Selenium. Как правило, эти инструменты стоят дороже из-за того, то такие функции, как создание, сопровождение и запуск тестов выполняются с помощью простого перемещения панелей, а также из-за того, что для проведения тесто не нужно уметь писать программный код. Но я упомянул здесь про TestCraft, потому что у них есть бесплатная версия, которая включает в себя практически все.  Конечно, если речь идет о скорости и деньгах, то codeless-решение может оказаться вам больше по душе, но они все еще достаточно новые. Поэтому они пока не могут иметь ту сложность наборов тестов, которой можно достичь, написав код самостоятельно.  Если в целевом приложении есть очень сложные рабочие потоки, которые включают в себя несколько подвижных частей, то вам больше подойдет классический вариант тестирования. Но если сложных потоков нет, то вы можете воспользоваться codeless-решением.  Подведение итогов Написание тестов – обязательное требование для любого приложения. Если вы будете следовать всем правилам и писать наборы тестов исходя из их типов, то они только улучшат ваше приложение, а также их будет довольно просто написать и сопровождать.  Использовать сквозные тесты, как и любые другие, следует только для того, для чего они предназначены. Они предназначены для тестирования рабочего потока приложения от начала и до конца путем воспроизведения реальных пользовательских сценариев. Но помните, что большинство ошибок следует выявлять как можно ближе к корню.   
img
Большинство приложений и веб-администраций привыкли к тому, то клиенты вспоминают и вводят свои пароли каждый раз при входе в систему. Помимо того, что это тяготит клиентов, такой подход представляет угрозу безопасности, так как клиенты часто выбирают ненадежные пароли и повторно используют из во многих других администрациях. Эти проблемы решаются на основе проверки на основе токенов (или токенов). Как насчет того, чтобы посмотреть, как это помогает? Определение токена Мы должны начать с точных значений «токенов», которые в основном представляют собой измененные формы паролей или выражений, которые используются для проверки символов. Когда происходят какие-то обмены данных в Интернете, токены аутентификации являются очень полезными инструментами для демонстрации своей личности во время входа в систему, обновлений, покупок и других процессов. Интересным в токенах является то, что они могут быть последовательными, как при входе в систему, или могут быть более «фиктивными», требуя «контакта» (дополнительного подтверждения или физического присутствия), чтобы гарантировать, что вы тот, за кого себя выдаете, и что вам действительно можно войти. Токены более безопасны, так как они не должны содержать информацию о клиенте и создаются путем вычислений или выполнения программы. Это существенно лучше в сравнении с тем, что некоторые организации используют индивидуальные данные клиентов в качестве своего регистрационного номера, что позволяет злоумышленникам без особых усилий использовать в своих целях еще больше пользователей. Клиенты, которые используют некоторые частные данные для своих паролей, беспомощны против тех, кто без особых усилий нашел их, просматривая страницы в социальных сетях этих клиентов. Аутентификация на основе токенов Токены можно использовать для многофакторной аутентификации (MFA - multi-factor authentication) и серверных протоколов, которые соединяют приложения, API и веб-сайты. Важность аутентификации на основе токена Отойдите в сторону от технологий для того, чтобы рассмотреть проблему, которую вы пытаетесь решить. Вы просите законных пользователей подтвердить свою личность, чтобы не пропустить злоумышленников в вашу сеть (где они могут украсть данные, установить программы-вымогатели и т.д.). Так как токен основан на закрытом ключе устройства, то, когда мы используем токен из приложения, такого как PingID, брелка или ключа, который мы подключаем к нашему компьютеру, мы предотвращаем вмешательство внешних субъектов. «Зачем» заключается в том, чтобы выбрать решение для аутентификации на основе токенов, которое проверяет пользователей, не создавая конфликтов и безвыходных положений. Пользователи довольны, а данные в безопасности, когда процесс проходит гладко. Аутентификация на основе токена в действии Клиентам могут быть предоставлены токены подтверждения различными способами, включая токены на базе оборудования, одноразовые пароли (обычно предоставляемые с помощью мобильных телефонов) и токены, созданные с помощью программирования на основе стандарта JWT. Все токены хранят характеристики и информацию о клиенте в безопасном виде. С учетом такого бесчисленного количества правил защиты информации, имеющимися на сегодняшний день, токен также может проверять, что информация достоверна и не была изменена, что является основным условием безопасности. Они также расширяют возможности клиентов, позволяя им входить в систему, не запоминая пароли. Подтверждение на основе токена обычно происходит в четыре этапа: Требование – клиент требует доступ к защищенному ресурсу, который его интересует. Клиент изначально должен как-то отличиться без использования токена, например, воспользовавшись именем пользователя или секретной фразой. Подтверждение – проверка гарантирует, что сертификаты клиента являются действительными и что клиент имеет соответствующие полномочия в указанной инфраструктуре. Токены – токен выдается инфраструктурой и передается клиенту. Этот процесс включает в себя предоставление токенов клиенту за счет токена оборудования. Это происходит «за кулисами» при генерации токенов, так как взаимодействие клиента происходит с сервером. Определение – токен фактически хранится у клиентов, будь то в их программе или на их мобильном телефоне. Это дает им возможность в будущем проходить проверку без использования сертификатов. Преимущества и недостатки аутентификации на основе токена У такой процедуры есть свои преимущества и недостатки, как и у любого другого подхода или метода. Преимущества Эффективность. Программные токены более эффективны и универсальны, чем фактические Токены. Сервер может создавать и проверять сколько угодно токенов в зависимости от ситуации, что упрощает масштабирование количества клиентов, обращающихся к вашему сайту или веб-приложению. Они также не предполагают, что организации будут предоставлять своим клиентам фактические токены. Адаптивность. Программные токены являются гибкими в том смысле, что они могут быть задействованы на нескольких серверах и одновременно проверять различные сайты и приложения. Они часто используются для реализации системы единого входа (SSO - single sign-on), что упрощает работу клиентов, а также повышает безопасность. Безопасность. Токены JWT не фиксирует свое текущее состояние и должны быть подтверждены, когда закрытый ключ получен приложением на стороне сервера, которое их создало. Поэтому они считаются надежным и безопасным методом проверки. Недостатки Скомпрометированный секретный ключ. Наличие всего одного ключа является существенным недостатком в стандарте JWT. В случае, если за ключом, как предполагалось, не следят проектировщики и администраторы сайта, и он вдруг перехватывается злоумышленниками, то конфиденциальная информация может быть раскрыта. Это может позволить злоумышленникам имитировать клиентов и перехватывать встречи с клиентами, что трудно определить и остановить. Служебная информация. JWT намного больше стандартного токена встреч и заполняется по мере добавления дополнительной информации о клиенте. Добавление дополнительной информации к маркеру может увеличить время загрузки страницы за счет увеличения времени, необходимого для организации встречи с клиентом. Долговременная аутентификация не идеальна. Системы, позволяющие клиентам оставаться в системе в течение длительного периода времени, не очень хороши. Эти токены требуют постоянной повторной проверки, что может раздражать клиентов. Хорошей альтернативой в этом случае является использование токенов обновления и их правильное хранение. Клиенты могут использовать токены обновления, чтобы оставаться в сети в течение более длительных периодов времени без необходимости повторного подтверждения. Насколько безопасна аутентификация на основе токена? Так как киберпреступность не стоит на месте, а развивается, то специалистам по управлению следует постоянно обновлять свои стратегии и механизмы обеспечения безопасности. Участись атаки с использованием фишинга, физических сил и слов-ссылок с целью получения доступа. Теперь пароли не подходят для подтверждения. Проверка на основе токенов, в сочетании с другими стратегиями проверки, может стать еще более сложным препятствием, которое не позволит даже опытным хакерам воспользоваться взломанными паролями. Токены должны быть извлечены из устройства, которое их создало (например, мобильного телефона или генератора ключей), что делает их на сегодняшний день исключительно хорошей стратегией подтверждения. Хотя этапы проверки токенов имеют массу преимуществ, обычно это очень затратный процесс. Токены, хранящиеся в сотовых телефонах, можно использовать, но они могут оказаться бесполезными из-за каких-либо дефектов гаджета. Токены можно спокойно перехватить, если предположить, что они были отправлены через сообщение. Злоумышленник может получить токены, хранящиеся на устройстве, если оно было потеряно или украдено. Тем не менее, стоит помнить, что нельзя полагаться на стратегию однократной проверки. Проверка токена должна использоваться для двухфакторного или многофакторного подтверждения. Типы токенов 1. Аппаратный ключ (токен) (USB-ключ) Токены оборудования – это реальные устройства, которые после утверждения позволяют клиентам получать доступ к защищенным сетям. Иначе их называют токенами проверки или безопасности. Токен оборудования используется для добавления дополнительного уровня безопасности посредством двухфакторной или многофакторной проверки (2FA или MFA). Владелец такого токена подключает его к системе или администрации, которую будет использовать. Для того, чтобы обеспечить превосходное обслуживание клиентов и возможность адаптироваться, токены оборудования поставляются различных форм и размеров. Самые известные токены – USB-ключи или удаленные токены. 2. JWT – JSON веб-токен Этот тип является открытым стандартом для обработки данных JSON (RFC 7519). Он подразумевает определенную бесплатную методологию для безопасной передачи данных между сторонами. Для передачи данных между сторонами стандарт JWT использует объекты JSON. Эти токены можно использовать для подтверждения, а также для перемещения дополнительных данных о клиенте или записи. JWT могут быть отправлены в виде URL-адресов, ограничений POST или заголовков HTTP и могут быть быстро переданы ввиду их небольшого размера. Чтобы избежать различных информационных индексных запросов, JWT содержит всю основную информацию о компоненте. Чтобы подтвердить токен, получателю JWT не нужно обращаться к серверу. JWT состоит из трех частей: Заголовок, содержащий информацию о типе токена и использованном методе шифрования. Полезная нагрузка, содержащая возможности подтверждения наряду с дополнительной информацией о клиенте или записи. Отпечаток, объединяющий криптографический ключ, который можно использовать для подтверждения полезности полезной нагрузки. 3. Токен одноразового пароля (OTP - One-Time Password) Это защищенное оборудование или программное устройство, которое генерирует одноразовые пароли. Чаще всего используются индивидуальные идентификационные номер (PIN), которые представляют собой числовые коды от 4 до 12 цифр. Одноразовые пароли в большинстве случаев создаются и получаются с помощью мобильных телефонов. После подтверждения владения телефоном клиент может использовать приложение-аутентификатор для создания одноразовых паролей. В этом случае телефон выступает в роли генератора кода. OTP также можно отправлять с устройства через SMS. Объединяя созданные системы проверок, одноразовые пароли дополняют проверку пользователей и паролей. Токены OTP создают PIN-коды одновременно или нет, в зависимости от сервера. Одновременные токены создают одноразовый пароль, используя ваш закрытый ключ и текущее время, а то время как неодновременный использует механизм аутентификации «запрос-ответ» (CRAM - Challenge Response Authentication Mechanism), набор соглашений, в которых сервер задает вопрос, а токендолжен дать правильный ответ. 4. Токен API Этот тип токена служит полезным идентификатором для приложений, запрашивающих доступ к вашей администрации. Приложение в этот момент использует токен API, созданный вашей администрацией, чтобы запросить доступ к вашей администрации. Токен API сравнивается с тем, который вы сохранили для проверки и предоставления доступа. Время от времени можно использовать идентификатор сессии, но это отдельный случай. Токен программного интерфейса становятся все более безопасным вариантом, в отличие от отправки набора имени пользователя и пароля по HTTP. OAuth2 – это одно из наиболее широко используемых на сегодняшний день соглашений о безопасности API.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59