Модуль_3. Модуль системы и сети передачи данных
Скачать 1.93 Mb.
|
Почему использование протокола HTTP отрицательно влияет на посещаемость сайта? Использование протокола HTTP негативно влияет на эффективность веб- сайта. Если интернет-пользователь заходит на страницу, у которой нет протокола безопасности SSL/TLS, десктопные веб-браузеры обязательно покажут уведомление об отсутствии сертификата. Мобильные браузеры, особенно Chrome и Opera, вообще не загрузят сайт. Рядовые пользователи привыкают к определенной системе. Если у сайта нет сертификата безопасности, — это сигнал. Либо владельцы сайта экономят на безопасности, либо веб-ресурс давно не обновлялся и выданный сертификат устарел. Для владельцев сайтов отказ от использования протокола HTTPS — это верный путь к утрате трафика. Во-первых, часть пользователей не станет посещать сайт, у которого нет SSL-сертификата. Во-вторых, еще с 2014 года Google использует наличие сертификата как сигнал для повышения сайтов в результатах поиска. Соответственно, веб-ресурс без сертификата рискует откатиться на последние страницы в поисковой выдаче. Как подключить SSL-сертификат Подключить SSL-сертификат к сайту очень просто. По умолчанию, эту услугу предлагают компании, предоставляющие хостинг. Такие сервисы, как SSLs.com предлагают пользователям различные подписки: от дешевой версии (для личного блога) до пакетного решения (для группы сайтов). В 2020 году можно найти и сервисы, которые предоставляют бесплатный SSL-сертификат. Например, Let's Encrypt обеспечивает бесплатно сертификатами 225 млн сайтов. С технической точки зрения подключить сертификат безопасности для домена несложно. Например, хостинговые компании автоматизировали эту услугу. В данном случае владельцу сайта достаточно оплатить установленную сумму, чтобы получить работающий результат. Аналогичным образом предоставляют услугу HTTPS некоторые платформы для создания сайтов, 69 например, Tilda. В разделе Настройки сайта → SEO → Настройка HTTPS пользователь активирует получение сертификата. Если вы решили устанавливать сертификат безопасности самостоятельно, это можно сделать через панель администратора. Необходимо добавить в соответствующие разделы полученный сертификат (в виде кода) и приватный ключ. В зависимости от выбранной системы администратор либо загружает файл с сертификатом (.crt), либо вставляет код вручную. Приватный ключ копируется и вставляется вручную. Рассмотрим несколько примеров. В панели правления хостингом cPanel следует перейти в пункт меню Security (Безопасность)> SSL/TLS Manager (Диспетчер SSL/TLS). Для загрузки сертификата используется раздел Generate, view, upload, or delete SSL certificates. Для загрузки приватного ключа предназначен раздел Setup a SSL certificate to work with your site. В появившемся поле — добавить соответствующие данные. В панели управления Plesk подключение SSL-сертификата для веб- домена производится в пункте меню Domains> Certificates. Здесь администратор загружает файл с сертификатом и копирует код приватного ключа. После установки сертификата безопасности необходимо перейти в раздел Service Management, где следует остановить и перезапустить веб- сервер Apache кликом по меню Stop and Start WEB Server. В ISPmanager установка сертификата безопасности — процесс интуитивно понятный. В меню панели существует отдельный пункт: Затем кликнуть по кнопке «Создать» и в открывшемся окне вставить данные сертификата безопасности и приватного ключа: Виды сертификатов безопасности В действительности существует только один вид сертификата — SSL. TSL является новой версией с более совершенным уровнем криптошифрования. Термин «SSL-сертификат» более распространенный, поэтому именно он используется в панелях администрирования и в обозначении услуги. В настоящее время различные центры сертификации предоставляют TSL- и SSL- сертификаты. Заключение К 2020 году использование протокола HTTPS является своего рода негласным правилом. И для небольших блогов, и для крупных корпоративных ресурсов важно поддерживать отличную репутацию. Чтобы не отпугнуть посетителей сайта и не допустить хакерской атаки на сайт, владельцы веб- 70 ресурсов устанавливают SSL-сертификаты. Эта процедура достаточно простая. Ее можно заказать непосредственно у хостинговой компании. 14. IPv4, IPv6 Протокол сетевого взаимодействия TCP/IPv4 используется для передачи зашифрованных данных в сети интернет и локальных подсетях уже более тридцати лет. На его основании создается и поддерживается уникальная адресация сетевого оборудования (узлов). Еще в начале 90-х годов прошлого века был определен основной недостаток данного протокола – ограничение по количеству возможных ip-адресов, которое не может превысить 4,23 миллиарда. В результате была разработана новая система протоколирования сетевого взаимодействия – интернет-протокол IPv6 (Internet Protocol version 6). Однако массовый переход на более прогрессивную технологию обусловлен некоторыми сложностями. Хотя, например, в Соединенных Штатах уже более половины пользователей применяют именно протокол IPv6. Основные отличия протоколов IPv4 и IPv6 Как уже было сказано, ключевым недостатком протокола четвертой версии TCP/IPv4 является ограниченная масштабируемость уникальных адресов, присваиваемых для идентификации в сетях взаимодействия. Для создания ip-адресов на уровне программных записей используется 32-битная система в формате 0.0.0.0–255.255.255.255. При построении локальных подсетей вводится дополнительный атрибут «маска подсети», записываемая после символа «/». В результате даже крупные ЛВС, объединенные в Ethernet, чаще всего имеют один публичный ip-адрес, выдаваемый провайдером и закрепленный на уровне шлюза (маршрутизатора). Самостоятельный обмен данными на уровне отдельных устройств частной подсети с выходом в паблик- интернет требует сложного администрирования. Для решения задач маршрутизации, требующих получения статических IP-адресов, понадобятся дополнительные финансовые затраты. В интернет-протоколе нового поколения IPv6 для создания адресной маршрутизации используется 128-битная система записи. В IPv6-адресе записи представляют собой восемь 16-битных блоков, разделенных двоеточиями: 2dfc:0:0:0:0217: cbff: fe8c:0. Общее количество ip-адресов, возможных для распределения, может составить в общей сложности 2128 (приблизительно 340 282 366 920 938 000 000 000 000 000 000 000 000). 71 Повсеместное использование данного стандарта позволит полностью решить задачу нехватки сетевых адресов в обозримом будущем. С целью упрощения записи адреса в протоколе IPv6 используется вариант сжатия кода, когда смежные последовательности нулевых блоков заменяются парами символов двоеточия. Например, адрес групповой рассылки FFEA:0:0:0:0:CA28:1012:4254 в сжатой форме будет представлен в укороченном виде FFEA::CA28:1012:4254. Данный механизм упрощает процесс записи, хранения и обработки кода. По правилам протокола IPv6 назначение сетевых адресов происходит автоматически и уникализируется за счет идентификации на уровне MAC- адреса конкретной единицы оборудования, для которой необходим выход в публичную сеть. Другими словами, каждый домашний компьютер, смартфон, холодильник или стиральная машина с функцией подключения к внешним устройствам получает собственный «белый» ip-адрес для коннекта с другими хостами через интернет. Доступна также произвольная генерация кодов путем администрирования с использованием маршрутизаторов. Впечатляет минимальный диапазон адресов подсети, получаемых пользователем при подключении по протоколу IPv6. Например, при использовании маски подсети «/128» получаем более 256 адресов. Спорным является вопрос отличия в скорости передачи трафика по каждому из протоколов. По умолчанию технология протокола IPv6 обеспечивает большую скорость обработки трафика на уровне отдельного оборудования сети в целом. Использование NAT в протоколе IPv4, который обеспечивает трансляцию адресов абонентов и хранение в памяти информации об установленных соединениях, приводит к большой загрузке оборудования. Поэтому в моменты пиковой нагрузки каждый пользователь отмечает резкое падение скорости соединения. В протоколе IPv6 не применяется обязательная обработка пакетов и отслеживание уже открытых соединений при маршрутизации доступа к хостам. Отсутствие необходимости трансляции значительно снижает ресурсную нагрузку на сетевые устройства. Для пользователя это означает выравнивание скорости интернет-соединения. Провайдеры в такой ситуации могут использовать менее ресурсоемкое, а значит, более дешевое оборудование. 72 Дополнительные преимущества протокола IPv6 По сравнению с четвертой версией, в протоколе TCP/IPv6 реализован ряд дополнительных функциональных возможностей: используется более простой заголовок, из него исключены несущественные параметры, что снижает нагрузку на маршрутизаторы при обработке сетевых запросов; более высокий уровень обеспечения безопасности, аутентификации и конфиденциальности, которые положены в основу данной технологии; в протоколе реализована функция Quality of Service (QoS), позволяющая определять чувствительные к задержке пакеты; при передаче широковещательных пакетов используются многоадресные группы; для реализации технологии мультивещания в IPv6 задействовано встроенное адресное пространство FF00::/8; для повышения безопасности используется поддержка стандарта шифрования IPsec, который позволяет шифровать данные без необходимости какой-либо поддержки со стороны прикладного ПО. В настоящее время эксперты ведут дискуссии на предмет обеспечения безопасности данных в случае гибридного применения двух протоколов. Провайдеры выстраивают IPv6-туннели для предоставления пользователям IPv4 доступа к высокоуровневому контенту. Применение данной технологии увеличивает риски хакерских атак. Функция автоконфигурации, когда устройства самостоятельно генерируют IP-адрес на основе MAC-адреса оборудования, может быть использована для незаконного отслеживания конфиденциальных данных пользователей. 73 Внедрение протокола TCP/IPv6 Несмотря на долгую историю разработки, которая берет начало в 1992 году, тестирование нового протокола состоялось одномоментно 8 июня 2011 года в Международный день IPv6. Эксперимент прошел удачно и предоставил возможность для выработки рекомендаций по дальнейшему совершенствованию данной технологии, ее массовому внедрению. Первой компанией, внедрившей в 2008 году стандарт протокола IPv6 на постоянной основе, стал Google. Тестирование проводилось в течение четырех лет, было признано успешным. 6 июня 2012 года состоялся Всемирный запуск IPv6. Сегодня мировые лидеры в производстве сетевого оборудования Cisco и D-Link применяют данный сетевой стандарт в своих маршрутизаторах на базовом уровне. В мобильных сетях стандарта LTE поддержка протокола IPv6 является обязательной. IT-компании Google, Facebook, Microsoft и Yahoo используют IPv6 на своих основных web-ресурсах. Протокол получает все большее распространение в корпоративных сетях и при домашнем использовании. Согласно исследованиям Google, на начало 2020 года доля IPv6 в общемировом сетевом трафике составляла около 30%. В России данный показатель значительно ниже, он составляет приблизительно 4,5% всего трафика. В то же время все большее количество отечественных регистраторов доменов и хостинг-провайдеров переводят свои DNS-серверы на протокол IPv6. Сложности перехода Возникает резонный вопрос: если протокол TCP/IPv6 обладает таким количеством преимуществ по сравнению с предшественником, почему бы просто не перейти на него всем миром? Основное препятствие лежит в сфере финансов и временных параметров. Для полномасштабного использования 74 новой технологии требуются серьезные инвестиции в программно- техническую модернизацию компьютерного парка всех провайдеров. Использование динамических ip-адресов по протоколу IPv4 позволяет временно сдерживать проблему нехватки уникальных сетевых идентификаторов. Другими словами, проблемы администрирования локальных сетей перекладываются на конечных пользователей, которые вынуждены настраивать сложные схемы маршрутизации подсетей и покупать дополнительные ip-адреса. В то же время рост количества конечных сетевых устройств происходит очень быстро. Внедрение технологий прямой коммуникации даже с обычными бытовыми приборами через интернет требует новых подходов в построении архитектуры их взаимодействия. В связи с этим повсеместный переход на использование стека протокола TCP/IPv6 неизбежен 15. Базовое программирование на Bash. Коды возврата, функции. BASH (сокращение от Bourne-Again Shell) — самый популярный командный интерпретатор для юниксоподобных операционных систем. Например, окно терминала в Linux работает в том числе благодаря Bash. Знание BASH пригодится для автоматизации процессов. Допустим, вы любите постоянно пробовать что-то новое и часто меняете операционные системы. Каждый раз переустанавливать все свои конфиги и программы вручную на новую ОС — куча мороки. А благодаря самописным bash-скриптам можно полностью автоматизировать этот процесс и не париться. Bash — штука мощная и хранит в себе кучу полезных функций. Сегодня мы поговорим о некоторых командах и операторах, которые помогут в автоматизации. Bash функции Функция Bash — это, по сути, набор команд, который можно вызывать множество раз. Цель функции — помочь вам сделать ваши сценарии bash более читаемыми и избежать написания одного и того же кода. По сравнению с большинством языков программирования, функции Bash сильно ограничены. В этом модуле мы рассмотрим основы функций Bash и разберемся, как использовать их в скриптах оболочки shell. Объявление функции Bash 75 Синтаксис объявления очень прост и похож на многие популярные языки программирования. Есть два основных формата объявления: 1. Формат может начинаться с имени функции, за которым следуют круглые скобки. Это предпочтительный и наиболее популярный формат. function_name () { commands } Этот же код можно написать в одну строку: function_name () { commands; } 2. Второй формат начинается с зарезервированного слова function, за которым следует имя функции. function function_name { commands } Версия в одну строку: function function_name { commands; } Несколько моментов, которые следует запомнить: • Список команд, находящихся между фигурными скобками {} — это тело функции. Фигурные скобки, окружающие тело функции, должны быть отделены от тела пробелами или начинаться с новой строки. • Простое определение функции не выполняет её. Чтобы вызвать функцию bash, просто используйте имя созданной функции. Команды между фигурными скобками выполнятся, когда функция вызывается через shell оболочку. • Соблюдайте порядок написания кода. Определение функции должно быть перед её вызовом. • При использовании однострочных функций необходимо установить точку с запятой у последней команды. • Старайтесь давать имена, которые описывают процесс, происходящий внутри тела функции. Чтобы в будущем понимать, что делает программный код, взглянув лишь на название. Чтобы лучше понять базовые правила, взглянем на следующий пример: #!/bin/bash hello_world () { echo 'привет, мир' } hello_world 76 Проанализируем написанный код: • В третьей мы определяем функцию с именем hello_world и открывая фигурную скобку {, которая отмечает начало тела функции. • Строка 4 — это тело функции. Обычно, тело занимает более одной строки. • В пятой строке стоит закрывающая фигурная скобка}. Она определяет конец функции. • В строке 7 мы выполняем созданную функцию. Выполнять ее можно столько раз, сколько вам нужно. Если запустить такой скрипт в консоли, он выведет на экран строку: привет, мир Область переменных Глобальные переменные — это переменные, к которым можно получить доступ из любой точки скрипта независимо от области их объявления. В Bash все переменные по умолчанию определяются как глобальные, даже если они объявлены внутри одной функции. Локальные переменные могут быть объявлены в теле функции с ключевым словом local, а использоваться могут только внутри неё. Вы можете иметь локальные переменные с одинаковым именем в разных функциях. Чтобы лучше понять, как работает область переменных в Bash, рассмотрим пример: #!/bin/bash var1='A' var2='B' my_function () { local var1='C' var2='D' echo "Внутри функции: var1: $var1, var2: $var2" } echo "Перед запуском: var1: $var1, var2: $var2" my_function echo "После запуска: var1: $var1, var2: $var2" Этот скрипт начинается с определения двух глобальных переменных var1 и var2. Затем объявление функции, которая присваивает локальной переменной var1 и изменяет глобальную переменную var2. Если вы запустите сценарий, вы увидите следующие строки: 77 Перед запуском: var1: A, var2: B Внутри функции: var1: C, var2: D После запуска: var1: A, var2: D Из этого следует простой вывод: • Если вы задаёте локальную переменную внутри тела функции с тем же именем, что и существующая глобальная, локальная будет иметь приоритет над глобальной. • Глобальные переменные могут быть изменены внутри функции. Возвращаем значения В отличие от функций на “реальных” языках программирования, функции в Bash не позволяют возвращать значение при вызове. Когда функция bash завершается, ее возвращаемое значение — это значение последнего оператора: 0 — успех, а ненулевое десятичное число в диапазоне от 1 до 255 включительно — для описания сбоя. Статус возврата значения можно указать с помощью ключевого слова return и оно присваивается переменной $?. Оператор return завершает работу функции. Вы можете думать об этом как о способе выхода из функции. #!/bin/bash my_function () { echo "наш результат" return 13 } my_function echo $? Вывод консоли: наш результат 13 Как же, все-таки, вернуть значение из функции? Нам нужно использовать для этого небольшую хитрость — можно присвоить результат функции глобальной переменной: #!/bin/bash my_function () { func_result="наш результат" } my_function echo $func_result 78 После выполнения этого кода вы должны увидеть строку на экране: наш результат Другой, подходящий вариант для возврата значения из функции — отправить значение в stdout с помощью echo или printf, как показано ниже: #!/bin/bash my_function () { local func_result="это тест" echo "$func_result" } func_result="$(my_function)" echo $func_result Результат выполнения будет таким же. Вместо того, чтобы просто выполнять функцию, которая будет печатать сообщение в stdout, мы присваиваем результат переменной func_result с помощью механизма $ (). Используя этот метод, глобальная переменная func_result будет содержать результат функции. |