Файл: Отчет по производственной практике студент 2 курса заочной формы обучения.docx

ВУЗ: Не указан

Категория: Отчеты по практике

Дисциплина: Не указана

Добавлен: 29.03.2024

Просмотров: 27

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени

федерального государственного бюджетного образовательного

учреждения высшего образования

«Московский технический университет связи и информатики»

Волго-Вятский филиал

ОТЧЕТ ПО ПРОИЗВОДСТВЕННОЙ ПРАКТИКЕ

Выполнил:

студент 2 курса

заочной формы обучения

студенческий билет № №7БИН20010

Козлова Ирина Сергеевна


Проверил:

руководитель практики от организации

Менеджер, Шишкова Анна Романовна

(должность, Ф.И.О. руководителя, подпись)


руководитель практики от ВВФ МТУСИ

Мазниченко Владимир Владимирович

(должность, Ф.И.О. руководителя, подпись)


Нижний Новгород, 2022 г.

Оглавление

1)Введение 3 стр.

2) Основная часть 3 стр.

3) Основные услуги 3 стр.

4) Сетевые устройства 4 стр.

5) Защита от DDoS на уровне веб-сервера на практике 6 стр.

6)Вывод 11 стр.

7)Список литературы 12 стр.

Индивидуальное задание: реализация проектов клиентских подключений.

Введение
Задачи практики – изучить стандартные услуги, которые используется на сети «Мегафон», разобрать сетевые элементы сети и настроить защиту от DDos атак.
Основная часть

Основные услуги

«МегаФон» предлагает услуги присоединения и пропуска трафика сетей передачи данных для предоставления магистрального доступа в интернет. К IP MPLS сети «МегаФона» присоединены порядка 700 российских и международных операторов связи, включая ведущих операторов Прибалтики, Беларуси, Грузии, Армении, Азербайджана, Казахстана, Узбекистана и Таджикистана.
IP MPLS сеть «МегаФон» располагает точками присутствия в крупнейших международных узлах во Франкфурте-на-Майне, Амстердаме, Стокгольме, Лондоне, Гонконге и имеет прямую связанность с основными площадками обмена интернет-трафиком в России и за рубежом: MSK IX, LINX, DE-CIX, AMS-IX, NetNod, Mega-I Advantage.
«МегаФон» полностью перешёл на паритетные пиринговые отношения с ведущими национальными операторами и входит в ТОП-3 рейтинга провайдеров в России по уровню связности сети (по данным аналитического сервиса Hurricane Electric).
IP MPLS сеть «МегаФон» имеет кольцевое резервирование и обладает суммарной пропускной способностью международных каналов связи более 1,5 Тбит/с (включая резервные каналы).

«МегаФон» оказывает ряд дополнительных услуг, связанных с представлением доступа в интернет:


  • Ускорение доставки контента (CDN);

  • Получение необходимого количества IP-адресов;

  • BGP-маршрутизация;

  • Противодействие DoS/DDoS-атакам;

  • АутСОРМинг.


Сетевые устройства

Устройства, подключенные к какому-либо сегменту сети, называют сетевыми устройствами. Их принято подразделять на 2 группы:
Устройства пользователя. В эту группу входят компьютеры, принтеры, сканеры и другие устройства, которые выполняют функции, необходимые непосредственно пользователю сети;

Сетевые устройства. Эти устройства позволяют осуществлять связь с другими сетевыми устройствами или устройствами конечного пользователя. В сети они выполняют специфические функции.

Ниже более подробно описаны типы устройств и их функции.
Коммутаторы

Коммутаторы используют те же концепции и этапы работы, которые характерны для мостов. В самом простом случае коммутатор можно назвать многопортовым мостом, но в некоторых случаях такое упрощение неправомерно.
Коммутатор Ethernet используется на уровне доступа. Как и концентратор, коммутатор соединяет несколько узлов с сетью. В отличие от концентратора, коммутатор в состоянии передать сообщение конкретному узлу. Когда узел отправляет сообщение другому узлу через коммутатор, тот принимает и декодирует кадры и считывает физический (MAC) адрес сообщения.
В таблице коммутатора, которая называется таблицей MAC-адресов, находится список активных портов и MAC-адресов подключенных к ним узлов. Когда узлы обмениваются сообщениями, коммутатор проверяет, есть ли в таблице MAC-адрес. Если да, коммутатор устанавливает между портом источника и назначения временное соединение, которое называется канал. Этот новый канал представляет собой назначенный канал, по которому два узла обмениваются данными. Другие узлы, подключенные к коммутатору, работают на разных полосах пропускания канала и не принимают сообщения, адресованные не им. Для каждого нового соединения между узлами создается новый канал. Такие отдельные каналы позволяют устанавливать несколько соединений одновременно без возникновения коллизий.
Поскольку коммутация осуществляется на аппаратном уровне, это происходит значительно быстрее, чем аналогичная функция, выполняемая мостом с помощью программного обеспечения (Следует обратить внимание, что мост считается устройством с программной, коммутатор ....с аппаратной коммутацией.). Каждый порт коммутатора можно рассматривать как отдельный микромост. При этом каждый порт коммутатора предоставляет каждой рабочей станции всю полосу пропускания передающей среды. Такой процесс называется микросегментацией.
Маршрутизаторы

Маршрутизаторы (router) представляют собой устройства объединенных сетей, которые пересылают пакеты между сетями на основе адресов третьего уровня. Маршрутизаторы способны выбирать наилучший путь в сети для передаваемых данных. Функционируя на третьем уровне, маршрутизатор может принимать решения на основе сетевых адресов вместо использования индивидуальных MAC-адресов второго уровня. Маршрутизаторы также способны соединять между собой сети с различными технологиями второго уровня, такими, как Ethernet, Token Ring и Fiber Distributed Data Interface (FDDI — распределенный интерфейс передачи данных по волоконно»оптическим каналам). Обычно маршрутизаторы также соединяют между собой сети, использующие технологию асинхронной передачи данных ATM (Asynchronous Transfer Mode — ATM) и последовательные соединения. Вследствие своей способности пересылать пакеты на основе информации третьего уровня, маршрутизаторы стали основной магистралью глобальной сети Internet и используют протокол IP.
Так же используются сетевые устройства, как мосты, сетевые карты, повторители, концентраторы, брандмауэры, голосовые устройства, DSL-устройства, кабельные модемы и оптические устройства, точки беспроводного доступа

Защита от DDoS на уровне веб-сервера на практике

DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.



Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.

Первое, что можно и нужно сделать для защиты сайта — настроить брандмауэр iptables. Я использую почти без изменений настройки iptables из статьи на сайте одного из поставщиков защиты от DDoS-атак. Единственное что я поменял — увеличил число допустимых соединений в правилах #8 и #10.

Прежде чем запускать на выполнение скрипт, меняющий параметры iptables, нужно убедиться, что есть альтернативная возможность сбросить эти параметры в начальное состояние. Т.к. если правила заданы неверно, к серверу не сможет подключится никто, в том числе и администратор.

Брандмауэр iptables контролирует атаку на сетевом уровне. Следующее что необходимо настроить — это веб-сервер. В качестве веб-сервера, который открыт для доступа из интернет будем рассматривать nginx. В файле nginx.conf нужно увеличить лимиты на колчество файлов и открытых коннектов (пример взят из Википедии):
# Увеличение максимального количества используемых файлов

worker_rlimit_nofile 80000;

events {

# Увеличение максимального количества соединений

worker_connections 65536;

# Использование эффективного метода epoll для обработки соединений

...

}


Далее настраиваем сервер по умолчанию, который будет запрещать доступ для тех устройств (например IoT), который будут обращаться по IP-адресу а не по доменному имени:
# Default server configuration

#

server {

listen 80 default_server;

listen 443 ssl default_server;

deny all;

}


Так же в nginx можно настроить некоторые лимиты на количество обращений, но такая настройка будет не очень гибкой и совсем не избирательной. Наша цель сделать такую защиту на уровне веб-сервера, чтобы погасить запросы злоумышленников, но пропускать на сервер запросы добропорядочных пользователей.

Чтобы не пересказывать уже имеющийся на Хабре материал, предлагаю ознакомится с отличной статьей, а так же с модулем автора указаной статьи kyprizel/testcookie-nginx-module. То, что позволяет сделать этот модуль уже хорошо. Но если Вам понадобится модернизировать его — то сделать это будет непросто.

На сегодняшний день очень многие поставщики услуг защиты от DDoS используют сервер openresty (связка nginx + Lua от Taobao). Скорость выполнения хорошего кода на Lua немного уступает хорошему коду на С. Но разрабатывать на Lua быстрее и проще, и к тому же скрипты можно менять без перекомпиляции сервера. При следуюшем рестарте они будут прочитаны, скомпилированы LuaJIT, и это все что требуется.

Подробная инструкция как уcтановить optnresty. После установки продолжаем настраивать nginx. В разделе http определяем нужные параметры для работы скритов Lua:
lua_shared_dict whitelist 10m;

lua_shared_dict banlist 100m;
lua_package_path '/home/username/antiddos/?.lua;;';
init_by_lua '

local whitelist = ngx.shared.whitelist

whitelist:add("1.2.3.4", true)

whitelist:add("5.6.7.8", true)

';
access_by_lua_file /home/username/antiddos/main.lua;


Строка lua_shared_dict создает новый словарь (ключ-значение). Этот словарь будет единым для всех запросов, поэтому в нем удобно хранить белые и черные списки. Это словарь, кроме параметров ключ-значение, может иметь параметр time-to-live, который идеально подходит для хранения счетчиков, если нужно ограничить количество запросов в промежуток времени.

Строка lua_package_path задает пути для поиска модулей Lua, в котрый нужно включить каталог со скриптами. Две подряд точки с запятой в конце строки означают, что этот путь добавляется к текущему значению пути, а не полностью заменяет его.

Строка init_by_lua задает код, который будет выполнен один раз при старте сервера (а не при каждом новом запросе). В ней задается белый список IP-адресов. Второй праметр функции add — true — это просто значние которое потом используется в операторе if. Третий параметр time-to-live отсутсвует, поэтому значение будет храниться без ограничения по времени.

Строка access_by_lua_file задает путь к скрипту, который будет выполняться при каждом запросе к серверу (не только при старте сервера). В нем, собственно, и находится вся логика защиты.

Рассмотрим некоторые из проверок, которые можно сделать при помощи скрипта на Lua:
-- if client IP is in whitelist, pass

local whitelist = ngx.shared.whitelist

in_whitelist = whitelist:get(ngx.var.remote_addr)

if in_whitelist then

return

end
-- HTTP headers

local headers = ngx.req.get_headers();
-- wp ddos

if type(headers["User-Agent"])

= "string"


or headers["User-Agent"] == ""

or ngx.re.find(headers["User-Agent"], "^WordPress", "ioj") then

ngx.log(ngx.ERR, "ddos")

ngx.exit(444)

return

end
local banlist = ngx.shared.banlist

local search_bot = "search:bot:count:request:per:10:s"

if ngx.re.find(headers["User-Agent"], "Google Page Speed Insights|Googlebot|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator", "ioj") then

local count, err = banlist:incr(search_bot, 1)

if not count then

banlist:set(search_bot, 1, 10)

count = 1

end

if count >= 50 then

if count == 50 then

ngx.log(ngx.ERR, "bot banned")

end

ngx.exit(444)

return

end

return

end


Язык Lua во многом похож (даже слишком) на JavaScript, поэтому код на Lua интуитивно понятен всем, кто пишет на JavaScript.

Глобальная переменная ngx служит для связи с контекстом сервера nginx. Оператор return вне тела функции означает возврат из модуля. В данном примере, если IP-адрес в белом списке, то работа скрипта оканчивается, и продолжается обычная обработка запроса nginx.

Далее распознается атака, основанная на особенностей реализации CMS WordPress. Если атака выявлена то работа оканчивается специальным статусом 444 (характерен только для nginx): ngx.exit(444).

И, наконец, мы даем «зеленую дорогу» поисковым ботам. Тут приходится использовать счетчик, т.к. под поискового бота часто подделываются злоумышленники — поэтому считаем количество обращений. banlist:set(search_bot, 1, 10) инициализирует счетчик, который обнулится через 10 секунд после создания. banlist:incr(search_bot, 1) прибавляет к текущему значению счетчика единицу.

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


Вывод

На производственной практике мы изучили основный услуги и сетевые устройства сети. Благодаря полученным навыков, мы смогли настроить услугу защита от DDos

Список литературы

1) Защита от DDoS-атак. DDoS Protection сайта и серверов от МегаФон. (megafon.ru)

2) https://wiki.merionet.ru/.