По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Одиннадцатая часть тут. Если у вас есть сеть, подобная той, что показана на рисунке 1, и Вам нужно чтобы А распространятл тот же контент в G, H, M и N, как бы вы это сделали? Вы можете либо сгенерировать четыре копии трафика, отправив по одному потоку на каждый из приемников с помощью обычной (одноадресной - unicast) переадресации, либо каким-то образом отправить трафик на один адрес, который сеть знает для репликации, чтобы все четыре хоста получили копию. Этот последний вариант называется многоадресной рассылкой (multicast), что означает использование одного адреса для передачи трафика нескольким получателям. Ключевая проблема, решаемая в многоадресной рассылке, заключается в том, чтобы пересылать и реплицировать трафик по мере его прохождения через сеть, чтобы каждый получатель, заинтересованный в потоке, получал копию. Важно: набор устройств, заинтересованных в получении потока пакетов от источника многоадресной рассылки, называется группой многоадресной рассылки. Это может быть немного запутанным, потому что адрес, используемый для описания многоадресного потока, также называется группой многоадресной рассылки в некоторых ситуациях. Эти два применения практически взаимозаменяемы в том, что набор устройств, заинтересованных в получении определенного набора пакетов многоадресной рассылки, присоединится к группе многоадресной рассылки, что, по сути, означает прослушивание определенного адреса многоадресной рассылки. Важно: в случаях, когда многоадресный трафик является двунаправленным, эту проблему гораздо сложнее решить. Например, предположим, что существует требование создать группу многоадресной рассылки с каждым хостом в сети, показанной на рисунке 2, кроме N, и далее, чтобы любая многоадресная рассылка, переданная по адресу группы многоадресной рассылки, доставлялась каждому узлу в группе многоадресной рассылки. Ключевая проблема для решения многоадресной рассылки может быть разбита на две проблемы: Как узнать, какие устройства хотели бы получить копию трафика, передаваемого в группу многоадресной рассылки? Как вы определяете, какие устройства в сети должны реплицировать трафик и на каких интерфейсах они должны отправлять копии? Одним из возможных решений является использование локальных запросов для построения дерева, через которое многоадресный трафик должен передаваться по сети. Примером такой системы является разреженный режим (Sparse Mode) в Protocol Independent Multicast (PIM). В этом процессе каждое устройство отправляет сообщение соединения для многоадресных потоков, которые его интересуют; эти соединения передаются вверх по потоку в сети до тех пор, пока не будет достигнут отправитель (хост, отправляющий пакеты через многоадресный поток). Для иллюстрации этого процесса используется рисунок 2. На рисунке 2: A посылает некоторый трафик в группу многоадресной рассылки (адрес) - назовем его Z. N хотел бы получить копию Z, поэтому он посылает запрос (соединение) своему вышестоящему маршрутизатору D для копии этого трафика. D не имеет источника для этого трафика, поэтому он посылает запрос маршрутизаторам, к которым он подключен, на копию этого трафика. В этом случае единственный маршрутизатор D отправляет запрос В. При каждом переходе маршрутизатор, получающий запрос, помещает интерфейс, на котором он получил запрос, в свой список исходящих интерфейсов (Outbound Interface List - OIL) и начинает пересылку трафика, полученного в данной многоадресной группе, полученной через любой другой интерфейс. Таким образом, может быть построен путь от получателя к отправителю трафика -это называется деревом обратного пути. Второй вариант определения того, какие хосты заинтересованы в получении трафика для определенной группы многоадресной рассылки, - через своего рода сервер регистрации. Каждый хост, который хотел бы получить копию потока, может зарегистрировать свое желание на сервере. Есть несколько способов, которыми хост может обнаружить присутствие сервера, в том числе: Обращение с адресом группы многоадресной рассылки как с доменным именем и поиск адреса сервера регистрации путем запроса адреса группы многоадресной рассылки. Построение и ведение списка или сопоставления групп с серверами, отображаемыми в локальной таблице Использование некоторой формы хэш-алгоритма для вычисления регистрационного сервера по адресу группы многоадресной рассылки Регистрации могут отслеживаться либо устройствами на пути к серверу, либо, когда набор приемников и передатчиков известен, сервер может сигнализировать соответствующим устройствам вдоль пути, какие порты следует настроить для репликации и пересылки пакетов.
img
В данной статье обзорно рассмотрим, какие программные оболочки бывают их виды и основные консольные команды. Самых распространенных оболочек не много: The Bourne Shell - /bin/sh The Bourne again shell - /bin/bash The Korne shell - /bin/ksh The C shell - /bin/csh Tom’s C shell - /bin/tcsh Наиболее признанной и распространенной оболочкой является bash. Поэтому в дальнейшем и в данной статье мы будем рассматривать именно ее. Посмотрим несколько основных команд: cat вывод содержимого файла в консоль; cd переход в каталог; ls вывод содержимого каталога; echo вывод текста в консоль; touch - обновление времени редактирования файла, а так же данная команда позволяет нам создать новый файл; file справка по файлу; whatis справка по названию; history вывод истории команд; env вывод переменных среды; pwd текущий каталог; export задание переменной; unset - отключение переменной; Для начала можно посмотреть, какая оболочка используется в текущий момент. В большинстве случаев это будет оболочка bash, которая является самой популярной оболочкой и самой используемой. При помощи данной оболочки мы взаимодействуем с операционной системой. Это не просто командная строка, но, а также целая программируемая среда. Со своими сценариями, переменными, со своим синтаксисом, т.е все эти оболочки ведут себя по-разному. Увидеть какую оболочку использует наш конкретный дистрибутив мы можем, посмотрев файл /etc/passwd/ На картинке видно много пользователей, можно увидеть, что пользователь Jenkins использует оболочку /bin/bash/. Это нормальная ситуация для Ubuntu т. к. в данной операционной системе данная оболочка используется по умолчанию. Если нам необходимо мы можем посмотреть глобальные настройки данной оболочки, которые располагаются /etc/profile. В данном файле много настроек, но необходимо знать языки программирования для того, чтобы редактировать файл. Единственное, что интересует в рамках данной стати это PS1 строчки, которые показывают, как должна выглядеть строка-приглашение. Если мы посмотрим, строка приглашение выглядит имя пользователя, тильда, смотря где мы находимся перечисляет нам. Мы можем настроить, каждую новую строчку так, чтобы не показывал имя пользователя, показывал полный путь, относительный путь и еще много чего, хоть пусть туда время выводит. Это уже такая детальная настройка внешнего вида оболочки bash. Если мы перейдем в домашнюю директорию пользователя, то там мы можем найти файл .profile с локальными настройками командной оболочки. Файл в линуксе который начинается с точки, является скрытым. Посмотреть такие файлы можно командой ls a. Ну и посмотрим, что у данного файла есть внутри cat .profile Мы опять видим некий сценарий и ссылку на некий файл ~/.bashrc. В котором уже находятся настройки внешнего вида этой оболочки. Мы так же его можем посмотреть cat .bashrc. Здесь уже более понятные и расширенные настройки, например, сколько хранится история команд, каким шрифтом выделять что-то. Например, мы можем сделать, так чтобы оболочка выделяла путь к файлу определенным цветом, имя пользователя другим цветом и т.д. все это делается в данном файле. Синтаксис в данной статье мы не разбираем. Соответственно можно непосредственно в редакторе редактировать файл, а можно посылать команды, которые будут вносить изменения в данные файлы. Вернемся к вопросу базовых команд. Команда echo выводит информацию в консоль. Синтаксис просто набираем: echo hello и получим в консоли hello. Т.е. командная оболочка, распознает первое слова как команду, а второе как аргумент данной команды. Если нам необходимо вывести в консоль несколько слов подряд, то их необходимо взять в кавычки. Можно выполнить две команды одна за другой, например, echo hello; ls. В данном случае сначала напечатается слово hello, а затем выведется список файлов. Мы можем создать свою команду, привязать команду к какому-нибудь псевдониму внутри оболочки т.е. создать такие ссылки и привязать действующую команду с новой. И новая команда уже будет вызывать команду echo. Для примера возьмем команду storm. При попытке ввода оболочка не понимает и начинает искать команду или исполняемый пакет. Но мы можем создать такой файлик, который будет что-то делать. Есть такая команда cat, она используется для вывода текста из файла на экран. Но она может действовать и в обратную сторону с экрана текст передавать в файл, для этого необходимо изменить направление передачи, например, cat> storm. И теперь все, что мы введем будет внесено в файл storm, опять же для примера echo и случайный набор букв. Затем нажимаем ctrl+c и прерываем ввод. Если мы посмотрим, что сохранилось в файлике storm то мы увидим, все то, что ввели в консоль. Далее сделаем файл storm исполняемым chmod +x storm. Можно видеть, что теперь при просмотре списка файлов командой ls данный файл подсвечивается зеленым, согласно настройкам программной оболочки. Если мы попробуем теперь выполнить команду, которую мы придумали, то опять ничего не выйдет, потому, что у нас оболочка по-умолчанию ищет исполняемые файлы, которые мы пишем, как команды по определенному пути. А все эти пути можно посмотреть в переменных среды. Переменные среды это определённые переменные, которые могут показать определенные настройки текущей операционной системы. Мы данные настройки можем посмотреть командой env. В выводе команды мы можем найти вот такую строчку PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games Здесь указан путь, по которому будут искаться переменные. Соответственно мы так же можем увидеть и другие настройки его среды, язык, его домашнюю папку и т.д. так как у нас по указанному выше пути ищутся исполняемые файлы мы не можем взять и запустить команду не пойми откуда. Но мы можем ее запустить, используя полный путь к исполняемому файлу. Чтобы посмотреть, где мы находимся, можно воспользоваться командой pwd, она покажет путь. В моем случае /root. У нас получится /root/storm Запустился. Следовательно, команда вывела тот текст, который мы изначально туда поместили. Вот это у нас получается полный путь к файлу /root/storm. Введем еще раз команду ls a. Мы видим скрытые файлы начинающиеся с "." , а так же еще два символа "." и ".." . Первый символ точки - это просто текущая папка. Т.е. если сделать cd . , то мы останемся в текущей директории. А если cd .. то это означает подняться на уровень выше по иерархии каталогов в файловой системе. Можно обнаружить, что при нахождении в домашней папке /root, под пользователем root, мы видим значок домашней папке ~. Это происходит потому, что в переменных для данного пользователя данная папка прописана, как домашняя. Теперь с учетом выше сказанного можно запустить нашу команду более кратко ./storm Это называется путь из текущей папки, где "." указывает на текущую папку. Таким образом мы можем запускать файлы. Еще раз вернемся к переменным среды. Например, мы можем добавить переменную ABC = 123, т.е. мы задали символьной последовательности ABC значение 123. Пока это не переменная, мы просто задали слову число. Чтобы это превратить в переменную есть команда export. Воспользуемся export ABC. И мы видим, что наша переменная добавилась. Теперь можно с данной переменной работать, например, можно ее указывать в качестве аргумента какой-либо команды. Например, echo $ABC, здесь "$" указывает, что мы обращаемся к переменной. В результате появится на экране 123. Мы можем отменить данную переменную, командой unset ABC. Снова смотрим перечень переменных env и видим, что переменная ABC исчезла. Можем поработать с другой переменной среды PATH. Например написать "PATH=$PATH:." , т.е. к текущему значению $PATH мы через двоеточие, как это показано в выводе команды env добавляем текущую папку в виде точки. Это означает, что у меня теперь будут запускаться файлы из той директории, которая обозначена точкой. Директорию, в которой находимся можно посмотреть pwd. Групповые символы: Создадим несколько файлов с помощью команды touch. Если мы хотим вывести файлы, которые заканчиваются на txt, мы вводим ls *.txt. Т.е. значок звездочки заменяет любое количество символов. Возможен, например, еще такой вариант команды, мы получим аналогичный результат ls *.t* Есть значок вопросительного знака, который заменяет только один символ. Работает по аналогии выше. Можно запросить информацию о диапазоне. Например, ls [1-4].txt, результатом вывода данной команды будет 4 файла. Все эти символы можно комбинировать. Мы можем создать некую последовательность. Например, touch {6,7,8}.txt соответственно созданы 3 файла, 6.txt, 7.txt, 8.txt. Символов достаточно много, но вот эти самые основные. Справочные команды Команда uname показывает какая операционная система. Ну я думаю и так, всем понятно, что Linux. Если ввести с ключиком a, то мы получим более информативный вариант Linux jenkins 5.4.0-45-generic #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux. Плюс дополнительные параметры, версия, издание и другое. Команда File на примере нашего файла storm. Мы можем увидеть, что данный файл - это обычный текст. Есть еще справочная похожая команда whatis запрос. Команда history - показывает историю ввода команд. Чтобы повторить, какую-нибудь команду можно двигать стрелочкой вверх на клавиатуре, а также можно перебирать стрелочкой вниз. Когда мы используем данный функционал, мы как раз двигаемся по истории команд. Еще полезный функционал, если написать пару символов и нажать дважды кнопку табуляции, то операционная система постарается дописать команду или файл, или выдаст возможные варианты, если вариантов нет просто допишется название файла или команды. И самая, пожалуй, важная команда это команда man, она позволяет открывать мануалы по той или иной команде.
img
Каждый день на сайт заходят тысячи поисковых роботов/ботов, и очень немногие из них помогают. Некоторые из них вообще являются продуктами злоумышленных целей ботами или спамом. Откуда можно узнать, сколько разных ботов посещают ваши веб-сайты? На самом деле, однозначного ответа нет. Для этого необходимо просмотреть файл access.log веб-сервера и найти столбец User-Agent. Допустим, вы хотите перечислить все боты, кроме Googlebot, тогда вы можете выполнить следующую команду на вашем веб-сервере, где существует файл access.log. grep bot access.log |grep -v Googlebot Вас тоже удивил результат? Вот, что выдал тот же запрос на моем сервере: root@gf-prod:nginx# grep bot access.log |grep -v Googlebot | wc -l 616834 root@gf-prod:nginx# Прежде чем блокировать что-либо, необходимо просмотреть их и убедиться, что вы не блокируете то, что используется вашим приложением. Вообще, есть много способов блокировки ботов, но я всегда предпочитаю блокировать их на границе. Причина проста - бесполезные запросы вообще не должны попадать и обрабатываться веб-сервером. А теперь, давайте узнаем, как блокировать ботов, которые вам не нужны, с помощью брандмауэра Cloudflare. Заходим на панель управления Cloudflare; Переходим на вкладку Firewall, затем - правила firewall и нажимаем на кнопку создать правило firewall. Вводим название правила; В качестве фильтра выбираем User Agent, оператор - contains, а в качестве значения - название бота, которое нужно заблокировать; Чтобы добавить несколько критериев в одно правило используйте оператор OR. Примечание: боты, указаны в целях демонстрации, они не обязательно вредоносные. Затем в качестве действия выбираем Block и нажимаем Deploy; Если умеете работать с выражениями, то тоже самое можете сделать кликнув на ссылку Edit expression. Сразу после применения, можно будет увидеть созданное правило. Чтобы данное правило применялось к трафику, переключатель состояния должен быть ON. Легко, не так ли? Что еще можно сделать, экспериментируя с правилами межсетевого экрана? Для повышения безопасности можно применять указанные ниже критерии блокировки: Блокировать если запрос идет с конкретного ASN или IP адреса; По соответствию ключевым словам cookie, referrer, X-Forwarder-for; Блокировка запросов из конкретной страны; Отключение нежелательных HTTP-методов в роде PUT, DELETE, OPTIONS, PURGE и т.д. И другие подобные опции. Все это можно выполнить как с помощью графического интерфейса, так и редактированием выражений. Изменения применяются почти сразу. Заключение Правила брандмауэра Cloudflare - отличный способ без простоев повысить защиту веб-приложений на границе сети. Если еще не применяете данное решение, вы также можете рассмотреть возможность использования Cloud WAF для повышения безопасности приложений и защиты от DDoS и других сетевых уязвимостей.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59