По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Мы продолжаем постигать основы важнейшего протокола, использующегося в IP телефонии и в сегодняшней статье рассмотрим основные сценарии установления соединения, а также работу основных компонентов протокола SIP. Протокол SIP имеет 3 стандартных сценария установления соединения, которые отличаются наличием и участием тех или и иных устройств. Пример №1 Установление соединения между User Agent’ами, когда в сети отсутствуют всякого рода серверы. Простейшим примером является сеанс связи, в котором принимают участие только два пользователя. Терминальное оконечное оборудование называется UA (User Agent), когда одновременно совмещает в себе функции UAС (User Agent Client) - клиента и UAS (User Agent Server) - сервера. В данном случае сценарий установления соединения будет выглядеть так: . Абонент A снимает телефонную трубку и набирает номер Абонента B, тем самым генерируя запрос INVITE , который содержит описание сеанса связи. Устройство абонента B отвечает сообщением 100 Trying , которое означает, что запрос находится в обработке. После обработки запроса устройство абонента B уведомляет его о входящем вызове, а в сторону абонента A отвечает сообщением 180 Ringing, что соответствует контролю посылки вызова. Абонент B снимает телефонную трубку, отвечая сообщением 200 OK, означающее успешную обработку запроса. Устройство абонента A прекращает прием контроля посылки вызова и посылает подтверждение ACK, означающее прием ответа на запрос INVITE. Между абонентами устанавливается разговорная фаза. Происходит передача голосового трафика по протоколу RTP (Real-Time Transfer Protocol). Важно отметить, что SIP не участвует в непосредственной передаче голоса, а лишь предоставляет условия и способы согласования открытия неких каналов обмена на основе других протоколов, в данном случае - RTP. Абонент A кладет телефонную трубку, тем самым инициируя завершение передачи голосового потока. Устройство абонента A генерирует запрос Bye, в сторону устройства абонента B. Устройство абонента B отвечает сообщением 200 OK, означающем успешную обработку запроса Bye. Терминальное оконечное оборудование абонентов A и B возвращается в исходное состояние. Однако, данный сценарий установления соединения является самым примитивным, можно даже сказать частным. Обычно в сети присутствует SIP прокси сервер, который принимает и обрабатывает запросы от пользователей и выполняет, соответствующие этим запросам, действия. Пример №2 Рассмотрим сценарий установления соединения между двумя пользователями. В данном случае задачу поиска и приглашения абонента выполняет Прокси сервер, вызывающему пользователю необходимо знать только постоянный номер вызываемого абонента. Отметим, что функции прокси сервера выполняет офисная телефонная станция Как видно из рисунка, процесс установления и разъединения соединения происходит аналогично первому сценарию, только в качестве посредника при передаче сообщений протокола SIP выступает SIP Proxy. Пример №3 Допустим, что в сети имеется множество пользователей, число которых постоянно пополняется. Они могут менять свое фактическое положение, ставить переадресацию (redirection) на другой номер, проводить конференц – звонки и др. Для предоставления подобных сервисов требуется наличие в сети соответствующих серверов, поддерживающих ту или иную функцию. Сервер регистрации (Registration Server) для аутентификации и авторизации пользователей. Сервер определения местоположения (Allocation Server) для определения реального местонахождения пользователей. Сервер переадресации (Redirect Server) для перенаправления звонков на другие номера, в случае если пользователь настроил данную функцию. Сервер регистрации это логический элемент и обычно его функции выполняет SIP Proxy, такие совмещенные сервера называют Registar. SIP Proxy может также выполнять функции серверов определения местоположения и переадресации, такое совмещение полезно в плане масштабируемости сети. Приведем пример, когда сеть содержит некий комбинированный SIP Proxy, который поддерживает все функции, описанные выше. Допустим, что новый, еще не зарегистрированный пользователь A,вызывает пользователя B, который уже прошел процедуру авторизации. Новый User Agent A посылает серверу сообщение REGISTER , которое инициирует процесс регистрации. Т.к User Agent A ещё не зарегистрирован, то сервер Registar отвечает сообщением 401 Unauthorized Тогда User Agent A посылает серверу сообщение REGISTER + login, содержащее логин и пароль. Сервер Registar отвечает сообщением 200 OK, на этом процесс регистрации закончен. Теперь пользователь А авторизован на сервере и может совершать звонки. User Agent A инициирует установление связи с пользователем B сообщением INVITE. На данном этапе включаются функции серверов определения местоположения и переадресации, сервер отвечает сообщением 302 Moved Temporarily, означающее, что вызываемый абонент временно сменил местоположение и содержащее его новые данные для установления соединения. User Agent A отвечает сообщением ACK, которое означает прием ответа от Redirect сервера на запрос INVITE. Далее User Agent A инициирует новое установление соединения напрямую к пользователю B, в соответствии с полученными данными. Как видно из рисунка дальнейший процесс соединения происходит аналогично сценарию 1. В следующей статье мы подробно рассмотрим основные модификации протокола SIP для взаимодействия с традиционными телефонными сетями, использующими сигнализацию ОКС-7.
img
Интересным вопросом в Linux системах, является управление регулярными выражениями. Это полезный и необходимый навык не только профессионалам своего дела, системным администраторам, но, а также и обычным пользователям линуксоподобных операционных систем. В данной статье я постараюсь раскрыть, как создавать регулярные выражения и как их применять на практике в каких-либо целях. Основной областью применение регулярных выражений является поиск информации и файлов в линуксоподобных операционных системах. Для работы в основном используются следующие символы: " ext" - слова начинающиеся с text "text/" - слова, заканчивающиеся на text "^" - начало строки "$" - конец строки "a-z" - диапазон от a до z "[^t]" - не буква t "[" - воспринять символ [ буквально "." - любой символ "a|z" - а или z Регулярные выражения в основном используются со следующими командами: grep - утилита поиска по выражению egrep - расширенный grep fgrep - быстрый grep rgrep - рекурсивный grep sed - потоковый текстовый редактор. А особенно с утилитой grep. Данная утилита используется для сортировки результатов чего либо, передавая ей результаты по конвейеру. Эта утилита осуществляет поиск и передачу на стандартный вывод результат его. ЕЕ можно запускать с различными ключами, но можно использовать ее другие варианты, которые представлены выше. И есть еще потоковый текстовый редактор. Это не полноценный текстовый редактор, он просто получает информацию построчно и обрабатывает. После чего выводит на стандартный вывод. Он не изменяет текстовый вывод или текстовый поток, он просто редактирует перед тем как вывести его для нас на экран. Начнем со следующего. Создадим один пустой файл file1.txt, через команду touch. Создадим в текстовом редакторе в той же директории файл file.txt. Как мы видим в файле file.txt просто набор слов. Далее мы с помощью данных слов посмотрим, как работают команды. Первая команда - grep man grep Получаем справку по данной команде. Как можно понять из справки команда grep и ее производные - это печать линий совпадающих шаблонов. Проще говоря, команда grep помогает сортировать те данные, что мы даем команде, через знак конвейера на ввод. Причем в мануале мы можем видеть egrep, fgrep и т.д. данные команды мы можем не использовать. Использовать можно только grep с ключами различными, т.е. ключи просто заменяют эти команды. Можно на примере посмотреть, как работает данная команда. Например, grep oo file.txt На картинке видно, что команда из указанного файла выбрала по определенному шаблону "oo". Причем даже делает красным цветом подсветку. Можно добавить еще ключик -n, тогда данная команда еще и выведет номер строки в которой находится то, что ищется по шаблону. Это полезно, когда работаем с каким-нибудь кодом или сценарием. Когда необходимо, что-то найти. Сразу видим, где находится объект поиска или что-то ищем по логам. При использовании шаблона очень важно понимать, что команда grep, чувствительна к регистрам в шаблонах. Это означает, что Boo и boo это разные шаблоны. В одном случае команда найдет слово, а в другом нет. Можно команде сказать, чтобы она не учитывала регистр. Это делается с помощью ключа -i. Посмотрим содержимое нашего каталога командой ls, а затем отфильтруем только то, что заканчивается на "ile". Получается следующее, когда мы даем на ввод команде grep шаблон и где искать, он работает с файлом, а когда мы даем команду ls она выводи содержимое каталога и мы это содержимое передаем по конвейеру на команду grep с заданным шаблоном. Соответственно grep фильтрует переданное содержимое согласно шаблона и выводит на экран. Получается, что команде grep дали, то команда и обработала. Наглядно можно посмотреть на рисунке выше. Мы просматриваем командой cat содержимое файла и подаем на ввод команде grep с фильтрацией по шаблону. Давайте найдем файлы в которых содержится сочетание "ple". grep ple file.txt в данном случае команда нашла оба слова содержащие шаблон. Давайте найдем слово, которое будет начинаться с "ple". Команда будет выглядеть следующим образом: grep ^ple file.txt. Значок "^" указывает на начало строки. Противоположная задача найти слова, заканчивающиеся на "ple". Команда будет выглядеть следующим образом grep ple$ file.txt. Т.е. применять к концу строки, говорит значок "$" в шаблоне. Можно дать команду grep .o file.txt. В данном выражении знак "." , заменяет любую букву. Как вы видите вывод шаблона ".ple" вывел только одно слово т.к только слово couple удовлетворяло шаблону , т.к перед "ple" должен был содержаться еще один символ любой. Попробуем рассмотреть другую команду egrep. egrep (Extended grep) man egrep - отошлет к справке по grep. Данная команда позволяет использовать более расширенный набор шаблонов. Рассмотрим следующий пример команды: egrep '^(b|d)' file.txt Шаблон заключается в одинарные кавычки, для того чтобы экранировать символы, и команда egrep поняла, что это относится к ней и воспринимала выражение как шаблон. Сам же шаблон означает, что поиск будет искать слова, в начале строки (знак ^) содержащие букву b или d. Мы видим, что команда вернула слова, начинающиеся с буквы b или d. Рассмотрим другой вариант использования команды egrep. Например: egrep '^[a-k]' file.txt Получим все слова, начинающиеся с "a" по "к". Знак "[]" - диапазона. Как мы видим слова, начинающиеся с большой буквы, не попали. Все эти регулярные выражения очень пригодятся, когда мы что-то ищем в файлах логах. Усложним еще шаблон. Возьмем следующий: egrep '^[a-k]|[A-K]' file.txt Усложняя выражение, мы добавили диапазон заглавных букв сказав команде grep искать диапазон маленьких или диапазон больших букв с начала строки. Вот теперь все хорошо. Слова с Заглавными буквами тоже отобразились. Как вариант egrep можно запускать просто grep с ключиком -e. Про fgrep man fgrep - отошлет к справке по grep. Команда fgrep не понимает регулярных выражений вообще. Получается следующим образом если мы вводим: egrep c$ file.txt. То команда согласно шаблону, ищет в файле букву "c" в конце слова. В случае же с командой fgrep c$ file.txt, команда будет искать именно сочетание "с$". Т.е. команда fgrep воспринимает символы регулярных выражений, как обычные символы, которые ей нужно найти, как аргументы. Рекурсивный rgrep Создадим каталог mkdir folder . Создадим файл great.txt в созданной директории folder со словом Hello при помощью команды echo "Hello" folder/great.txt И если мы скажем grep Hello * , поищи слово Hello в текущей директории. Получится следующая картина. Как мы видим grep не может искать в папках. Для таких случаев и используется утилита rgrep. rgrep Hello * Дает следующую картину. Совершенно спокойно в папке найдено было, то что подходило под шаблон. Данная утилита пробежалась по всем папкам и файлам в них и нашла подходящее под шаблон слово. Т.е. если нам необходимо провести поиск по всем файлам и папкам, то необходимо использовать утилиту rgrep. Команда sed man sed - стрим редактор. Т.е потоковый редактор для фильтрации и редактирования потока данных. Например, sed -e ‘s/oo/aa’ file.txt - открыть редактор sed и заменить вывод всех oo на aa в файле file.txt. Нужно понимать, что в результате данной команды изменения в файле не произойдут. Просто данные из файла будут взяты и с изменениями выведены на стандартный вывод, т.е. экран. Для сохранения результатов мы можем сказать, чтобы вывел в новый файл указав направление вывода. sed -e ‘s/oo/aa’ file.txt newfile.txt В данном редакторе мы можем ему сказать использовать регулярные выражения, для этого необходимо добавить ключ -r. У данного редактора очень большой функционал.
img
Sudo означает SuperUser DO и используется для доступа к файлам и операциям с ограниченным доступом. По умолчанию Linux ограничивает доступ к определенным частям системы, предотвращая компрометацию конфиденциальных файлов. Команда sudo временно повышает привилегии, позволяя пользователям выполнять конфиденциальные задачи без входа в систему как пользователь root. В этом руководстве вы узнаете, как использовать команду sudo в Linux с примерами. Как использовать команду sudo Установка sudo Пакет sudo установлен в большинстве дистрибутивов Linux. Чтобы проверить есть ли у вас эта комманда введите sudo. Вы увидите справочное сообщение или сообщение о том что комнада не найдена. Чтобы установить sudo используйте для Ubuntu и Debian: apt install sudo или для CentOS и Fedora yum install sudo sudo была разработана как способ временного предоставления пользователю административных прав. Чтобы заставить ее работать, используйте sudo перед ограниченной командой, которую можно выполнить только из под рута. Тогда система запросит ваш пароль. После его ввода система запускает команду. Синтаксис sudo [команда] Опции sudo можно использовать с дополнительными параметрами: -h - отображает синтаксис и параметры команды -V - отображает текущую версию приложения sudo -v - обновить лимит времени на sudo без запуска команды -l - перечисляет права пользователя или проверяет конкретную команду -к - завершить текущие привилегии sudo Дополнительные параметры можно найти с помощью ключа -h. Примечание. Оставаться в системе как администратор ставит под угрозу безопасность сервера. Раньше администраторы использовали su (substitute user) для временного переключения на учетную запись администратора. Однако для команды su требуется вторая учетная запись пользователя и пароль, что не всегда возможно. Когда используется команда sudo, в системные журналы заносится метка времени. Пользователь может запускать команды с повышенными привилегиями в течение короткого времени (по умолчанию 15 минут). Если пользователь, не принадлежащий к sudo группе, пытается использовать команду sudo, это регистрируется как событие безопасности. Предоставление привилегий sudo Для большинства современных дистрибутивов Linux пользователь должен входить в группу sudo, sudoers или wheel, чтобы использовать команду sudo. По умолчанию однопользовательская система предоставляет своему пользователю права sudo. Система или сервер с несколькими учетными записями пользователей могут исключать некоторых пользователей из привилегий sudo. Рассмотрим как добавить пользователя в эту группу. RedHat и CentOS В Redhat и CentOS wheel группа контролирует пользователей sudo. Добавьте пользователя в группу wheel с помощью следующей команды: usermod –aG wheel [username] Замените [username] фактическим именем пользователя. Возможно, вам потребуется войти в систему как администратор или использовать команду su. Debian и Ubuntu В Debian и Ubuntu группа sudo (sudo group) контролирует пользователей sudo. Добавьте пользователя в группу sudo с помощью следующей команды: Использование visudo и группы sudoers В некоторых современных версиях Linux пользователи добавляются в файл sudoers для предоставления привилегий. Это делается с помощью команды visudo. Используйте команду visudo для редактирования файла конфигурации: sudo visudo Это откроет /etc/sudoers для редактирования. Чтобы добавить пользователя и предоставить полные права sudo, добавьте следующую строку: [username] ALL=(ALL:ALL) ALL Сохраните и выйдите из файла. Вот разбивка предоставленных привилегий sudo: [username] [any-hostname]=([run-as-username]:[run-as-groupname]) [commands-allowed] Примечание. Проще добавить пользователя в группу sudo или wheel, чтобы предоставить права sudo. Если вам нужно отредактировать файл конфигурации, делайте это только с помощью visudo. Приложение visudo предотвращает сбои, ошибки и неправильные настройки, которые могут нарушить работу вашей операционной системы. Тайм-аут пароля sudo По умолчанию sudo просит вас ввести пароль после нескольких минут бездействия. Изменить это время ожидания по умолчанию, можно отредактировав файл sudoers с помощью visudo и измените время ожидания, добавив строку как в примере, где 10 - это время ожидания, указанное в минутах: sudo visudo Defaults timestamp_timeout=10 Если вы хотите изменить время ожидания для определенного пользователя, то добавьте имя пользователя. Defaults:user_name timestamp_timeout=10 Примеры sudo в Linux Основное использование Sudo 1. Откройте окно терминала и попробуйте выполнить следующую команду: apt-get update 2. Вы должны увидеть сообщение об ошибке. У вас нет необходимых разрешений для запуска команды. 3. Попробуйте ту же команду с sudo: sudo apt-get update 4. При появлении запроса введите свой пароль. Система выполнит команду и обновит репозитории. Выполнить команду от имени другого пользователя 1. Чтобы запустить команду от имени другого пользователя, введите в терминале следующую команду: whoami 2. Система должна отображать ваше имя пользователя. Затем выполните следующую команду: sudo –u [другое_имя_пользователя] whoami 3. Введите пароль для другого пользователя, и команда whoami запустится и отобразит другого пользователя. Переключиться на root пользователя Эта команда переключает вашу командную строку на оболочку BASH от имени пользователя root: sudo bash Ваша командная строка должна измениться на: root@hostname:/home/[имя пользователя] Значение имени хоста будет сетевым именем этой системы. Имя пользователя будет текущим именем пользователя, вошедшим в систему. Выполнить предыдущие команды с помощью sudo В командной строке Linux хранятся записи о ранее выполненных командах. Доступ к этим записям можно получить, нажав стрелку вверх. Чтобы повторить последнюю команду с повышенными привилегиями, используйте: sudo !! Это также работает со старыми командами. Укажите исторический номер следующим образом: sudo !6 В этом примере повторяется 6-я запись в истории с командой sudo. Запуск нескольких команд в одной строке Соедините несколько команд вместе, разделенных точкой с запятой: sudo ls; whoami; hostname Добавить строку текста в существующий файл Добавление строки текста в файл часто используется для добавления имени репозитория программного обеспечения к исходному файлу без открытия файла для редактирования. Используйте следующий синтаксис с командами echo, sudo и tee: echo ‘string-of-text’ | sudo tee –a [path_to_file] Например: echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list Заключение Теперь вы узнали про команду sudo и про то, как ее использовать.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59