По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Протокол Spanning Tree (STP) обеспечивает отсутствие петель в топологии любой сети. Помимо предотвращения петель, STP изолирует угрозу от широковещательного шторма в сетях на втором уровне модели OSI (L2). Разберемся в терминах: Какие бывают порты? Можно смело выделить 3 вида портов в рамках протокола Spanning Tree. А именно: Корневой порт (root port) Выделенный порт (designated port) Блокированный (альтернативный порт) Статусы портов Порт коммутатора может находиться в различных статусах, в зависимости от результата сходимости Spanning Tree: Блокирован - как видно из названия, данный порт находится в статусе блокировки. Это означает, что порт не участвует в приеме и пересылке фреймов. Все BPDU сообщения от соседних коммутаторов исключаются. BPDU (Bridge Protocol Data Unit) это фреймы, необходимые для обмена сообщениями между коммутаторами для выбора корневого (root) устройства в рамках механизма протокола STP (Spanning Tree Protocol). Слушает – коммутатор все еще не участвует в процессе передачи фреймов с данными, но получает и отправляет сообщения BPDU. Учится – в данном состоянии порт начинает фиксировать MAC – адреса устройств. Пересылка – в состоянии пересылки, коммутатор может отправлять и принимать фреймы BPDU параллельно с заполнением таблицы MAC - адресов. Выключен – порт выключен администратором. Этапы протокола STP Выбор «корневого» (root) коммутатора. Выбор «корневого» (root) порта. Назначение «выделенного» (designated) порта. Блокировка остальных портов в рамках алгоритма STP. Выбор корневого коммутатора Коммутатор с наименьшим идентификатором (ID) выбирается как корневое устройство. Идентификатор коммутатора (switch ID) состоит из следующих компонентов: . Номер приоритета . MAC – адрес коммутатора Например: 24577.00:00:00:00:00:01 / Приоритет. MAC – адрес В процессе выбора корневого коммутатора, первым делом сравнивается приоритет. Если у двух коммутаторов одинаковых приоритет, то выбор базируется на MAC – адресе устройства. Выбор корневого порта Корневой порт выбирается на основании наименьшей «стоимости» пути к корневому коммутатору. Стоимость пути выражается из стоимости линков, ведущих к корневому коммутатору. Важно отметить: Корневые порты назначаются только на не корневых коммутаторах. Один не корневой коммутатор может иметь только один корневой порт. Выбор назначенного порта Порт коммутатора, который имеет кратчайший путь к корневому коммутатору - называется «назначенным». Каждый сегмент (путь) имеет свой назначенный порт. Назначенные порты определяются на всех коммутаторах (корневых и нет). Если два порта имеют одинаковую стоимость, сначала учитывается идентификатор устройства (Bridge ID), а затем идентификатор порта (Port ID). Все остальные порты переходят в альтернативный статус и блокируются. Пример До запуска алгоритма Spanning Tree: Выбор портов Финальная топология
img
Межсетевые экраны (Firewall) Концепция межсетевого экрана (МЭ) была введена для того, чтобы обезопасить процесс обмена данными между сетями. Межсетевой экран это программное или аппаратное устройство, которое контролирует поток трафика между различными сетями и может блокировать и пропускать определенные данные по предопределенным правилам безопасности. МЭ используется не только для защиты системы от внешних угроз, но и от внутренних. Надежный МЭ может справиться как с внутренними, так и с внешними угрозами и вредоносным программным обеспечением. Межсетевой экран также позволяет системе остановить пересылку незаконных данных в другую систему. МЭ всегда находится между частной сетью и интернетом, который является публичной сетью, поэтому он фильтрует входящие и исходящие пакеты. Выбор надежного межсетевого экрана имеет решающее значение в создании безопасной инфраструктуры. > Система межсетевого экрана может работать на пяти уровнях эталонной модели OSI. Но большинство работают на четырех уровнях: канальном, сетевом, транспортном и прикладном. Количество слоев, охватываемых брандмауэром, зависит от типа используемого МЭ. Чем больше уровней анализирует МЭ, тем выше безопасность всей системы. При классификации по методам фильтрации основными типами являются: МСЭ для фильтрации пакетов: система изолированно проверяет каждый входящий или выходящий из сети пакет и принимает или отклоняет его на основе определяемых пользователем правил. Пакетная фильтрация достаточно эффективна, но не имеет возможности просмотреть содержание пакета. МСЭ с инспекцией пакетов (SPI) проверяет сеансы между приложениями и ограничивает прохождение пакетов, нарушающих спецификации TCP/IP. МСЭ прикладного уровня проверяет данные внутри пакетов, поступающих от приложений. МСЭ следующего поколения (NGFW) использует многоуровневый подход для интеграции возможностей. Межсетевые экраны для фильтрации пакетов. Когда пакет проходит через МСЭ он сообщает источник пакета, пункт назначения, протокол и номер порта. Пакет отбрасывается, не пересылается к месту назначения если он не соответствует набору правил МСЭ. Например, МСЭ с правилом блокировки доступа Telnet, будет отклонять пакеты TCP к порту 23, через который работает протокол Telnet. МСЭ с фильтрацией пакетов работает в основном на сетевом уровне эталонной модели OSI, а также используется транспортный уровень для получения номера порта. Он проверяет каждый пакет независимо от существующего трафика и не может определять из чего состоит пакет. МСЭ с инспекцией пакетов (SPI) также называемые как МСЭ с динамической пакетной фильтрацией. Такие МСЭ не только проверяют каждый пакет, но и отслеживают, является ли этот пакет частью установленного TCP или другого сетевого сеанса. Это обеспечивает большую безопасность, чем фильтрация пакетов или мониторинг каналов, но оказывает большее влияние на производительность сети. Они контролируют пакеты и соединение по времени и проверяют как входящие, так и исходящие пакеты. Этот тип МСЭ основывается на таблице, которая отслеживает все открытые соединения. При поступлении новых пакетов МСЭ сравнивает информацию в заголовке пакета с таблицей, содержащей список открытых соединений, и определяет, является ли пакет частью установленного соединения. Если это так, то пакет пропускается без дальнейшего анализа. Если же он не соответствует существующему соединению, он оценивается в соответствии с набором правил для новых соединений. МСЭ с инспекцией пакетов достаточно эффективны, но они могут быть уязвимы для атак типа "отказ в обсаживании" (DoS). DoS-атаки работают, используя преимущества установленных соединений, которые данный тип МСЭ определяет безопасными. МСЭ уровня приложений обеспечивает фильтрацию на уровне приложений и объединяет в себе некоторые атрибуты МСЭ с фильтрацией и инспекцией пакетов. Он фильтрует пакеты не только по службе, для которой они предназначены, но и по некоторым другим характеристикам, таким как строка HTTP-запроса. МСЭ уровня приложения могут просматривать пакет, чтобы отличить допустимые запросы от вредоносного кода, замаскированного под допустимый запрос данных. Поскольку этот тип проверяет содержимое пакета, он представляет инженерам безопасности более детальный контроль над сетевым трафиком. Ключевым преимуществом фильтрации на уровне приложений является возможность блокировать конкретно содержимое, например известное вредоносное программное обеспечение или некоторые веб-сайты, а также распознавать, когда определенные приложения и протоколы, такие как протокол передачи гипертекста (HTTP), протокол передачи файлов (FTP) и система доменных имен (DNS) используются не по назначению. Правила МСЭ уровня приложений также могут использоваться для управления выполнением файлов или обработки данных конкретными приложениями. МСЭ следующего поколения (NGFW) сочетает в себе фильтрацию и инспекцию, и некоторые типы глубокой инспекции пакетов, а также другие системы сетевой безопасности, такие как обнаружение, предотвращение вторжений, фильтрация вредоносных программ и антивирусы. Современные сети имеют много точек входа и различных типов пользователей, что требует строгий контроль доступа и безопасность хоста. Эта потребность привела к появлению NGFW. Аутентификация и контроль доступа Аутентификация процесс определения того, является ли кто-то или что-то на самом деле тем, кем оно себя объявляет. Технология аутентификации обеспечивает управление доступом путем проверки соответствия учетных данных пользователя учетным данным в базе данных авторизованных пользователей или же на сервере аутентификации данных. Пользователи обычно идентифицируются с помощью своего кода, и аутентификация выполняется, когда пользователь предоставляет учетные данные, например пароль, который соответствует идентификатору пользователя. Аутентификация имеет важное значение, поскольку она обеспечивает безопасность сетей и систем позволяя только аутентифицированным пользователям получать доступ к защищенным ресурсам, таким как компьютерные сети, базы данных, веб-сайты и другие сетевые приложения. После аутентификации пользователь или процесс подвергается процессу авторизации, чтобы определить, может ли аутентифицированных объект иметь доступ к защищенному ресурсу или системе. Пользователь может быть аутентифицирован, но ему не будет предоставлен доступ к ресурсу, если этому пользователю не было предоставлено разрешение на доступ к нему. Процесс, посредством которого доступ к этим ресурсам ограничивается определенным кругом пользователей, называется контролем доступа. Аутентификация пользователя с помощью имени пользователя и пароля обычно считается самым простым типом аутентификации и заключается в том, что пользователь должен предоставить свой идентификатор пользователя и пароль. Поскольку этот тип аутентификации зависит от одного фактора аутентификации, то он относится к однофакторной аутентификации. Строгая аутентификация это термин, который не бы формально определен, но обычно используется для обозначения того, что используемый тип аутентификации является более надежным и устойчивым к атаке. Это достигается как правило при помощи использования двух различных факторов аутентификации. Фактор аутентификации представляет собой некоторый фрагмент данных или атрибут, который может быть использован для проверки подлинности пользователя, запрашивающего доступ к системе. Выделяется несколько факторов аутентификации: фактор знания, фактор обладания и фактор неотъемлемости. В последние годы были предложены и введены в действие дополнительные факторы, такие как фактор местоположения и фактор времени. В настоящее время используют следующие факторы аутентификации: Фактором знания могут быть любые учетные данные для аутентификации, которые состоят из информации, которой обладает пользователь, включая личный идентификационный номер, имя пользователя, пароль или ответ на секретный вопрос. Фактором обладания могут быть любые учетные данные, основанные на элементах, которыми пользователь может владеть и носить с собой, включая аппаратные устройства, такие как токен безопасности или мобильный телефон, используемый для приема текстового сообщения или запуска приложения аутентификации, которое может генерировать одноразовый пароль. Фактор неотъемлемости основан на некоторой форме биометрической идентификации, включая отпечатки пальцев, распознавание лиц, сканирование сетчатки глаза или любой другой формы биометрических данных. Фактор местоположения используется в качестве дополнения к другим факторам. Местоположение может быть определенно с высокой точностью с помощью устройств, оснащенных GPS, или с меньшей точностью путем проверки сетевых маршрутов. Фактор местоположения обычно не используется сам по себе для аутентификации, но он может дополнить другие факторы, предоставляя средство исключения ложных запросов. Фактор времени, как и фактор местоположения сам по себе недостаточен, но является дополнительным механизмом для выявления злоумышленников, которые пытаются получить доступ к ресурсу в то время, когда этот ресурс недоступен авторизованному пользователю. Добавление факторов аутентификации в процесс проверки подлинности обычно повышает безопасность. Строгая аутентификация обычно относится к аутентификации, которая использует по крайней мере два фактора, имеющих различные типы. Двухфакторная аутентификация обычно зависит от фактора знаний в сочетании с фактором неотъемлемости или фактором владения. Многофакторная аутентификация может включать любой тип аутентификации, который зависит от двух и более факторов, но процесс аутентификации, использующий пароль и два различных типа биометрической аутентификации не будет считаться трехфакторной аутентификацией. Традиционная аутентификация зависит от использования файла паролей, в которых идентификаторы пользователей хранятся вместе с хэшами паролей, связанных с каждым пользователем. При входе в систему предоставленный пароль хешируется и сравнивается со значением в файле паролей. Если два хэша совпадают, пользователь проходит проверку. Этот метод аутентификации имеет недостатки. Злоумышленники, у которых есть доступ к файлу паролей, могут использовать атаку грубой силы на хэш пароля для его извлечения. Также этот подход потребует несколько аутентификаций в приложениях, которые получают доступ к ресурсам в нескольких системах. Системы аутентификации на основе пароля являются более уязвимыми, чем системы, требующие нескольких независимых методов. К наиболее распространенным методам аутентификации относятся: Многофакторная аутентификация (MFA) Метод аутентификации, который требует двух или более независимых способов идентификации пользователя. Добавляет дополнительный уровень защиты к процессу аутентификации. Многофакторная аутентификация требует, чтобы пользователь предоставил второй фактор аутентификации в дополнение к паролю. Такие системы часто требуют от пользователя ввести код подтверждения, полученный с помощью текстового сообщения на предварительно подтвержденном мобильном телефоне, или код, созданный приложением для аутентификации, а также отпечатки пальцев или распознавание лиц. Методы и технологии аутентификации MFA повышают доверие пользователей, добавляя несколько уровней безопасности. MFA служит хорошей защитой от взломов, однако имеет недостатки, такие как потеря телефона или SIM-карты, что в свою очередь ограничит пользователю доступ к своей учетной записи. Проверка подлинности на основе сертификатов Технология проверки подлинности на основе сертификатов позволяет идентифицировать пользователей, компьютеры и другие устройства с помощью цифровых сертификатов. Сертификат содержит цифровой идентификатор пользователя, включая открытый ключ, и цифровую подпись центра сертификации. Пользователи предоставляют свои цифровые сертификаты при входе на сервер. Сервер проверяет достоверность цифровой подписи и центра сертификации. Затем сервер использует криптографические методы, чтобы подтвердить, что пользователь имеет правильный закрытый ключ, связанный с сертификатом. Такими являются, например, SSL-сертификаты (Secure Sockets Layer). Поддержка SSL встроена во все основные браузеры. Биометрическая аутентификация Процесс обеспечения безопасности, который зависит от уникальных биологических характеристик человека. Некоторые системы могу зависеть исключительно от биометрической идентификации. Однако, биометрия обычно используется в качестве второго или третьего фактора аутентификации. Наиболее распространённые типы биометрической аутентификации включают в себя распознавание лиц, сканеры отпечатков, идентификацию голоса и сканеры сетчатки глаз. Аутентификация по ключам доступа Такой способ используется для аутентификации сервисов, приложений или устройств при обращении к веб-сервисам. В методе проверки ключа первому пользователю присваивается уникальное сгенерированное значение, указывающее, что пользователь известен. Затем каждый раз, когда пользователь пытается войти в систему, его уникальный ключ используется для проверки того, является ли он тем же пользователем, что вошел в систему раннее. Использование ключей позволяет избежать использования пароля пользователя сторонними сервисами. Аутентификация по токенам Технологии аутентификации на основе маркеров позволяют пользователям вводить свои учетные данные один раз и получать уникальную зашифрованную строку случайных символов. Затем пользователь может использовать свой токен для доступа к защищенным системам без повторного ввода учетных данных. Такой способ аутентификации чаще всего применяется при построении систем единого входа Single-Sign-On (SSO), в которых один сервис предоставляет функцию аутентификации другому сервису. Примером может послужить ситуация, когда пользователь может войти в приложение через свою учетную запись в социальной сети. Наиболее популярным стандартом данного типа является протокол OAuth, который позволяет выдать одному сервису права на доступ к данным пользователя на другом сервис. OAuth выступает в качестве посредника от имени пользователя, предоставляя сервису токен доступа, который разрешает совместное использование определенных данных. Шифрование данных Шифрование конфиденциальных данных является одним из ключевых способов защиты. Несмотря на комплексную защиту сервиса или системы у злоумышленника есть шанс получить доступ к конфиденциальной информации, так как ни одна система не может являться полностью защищенной от атак и утечек. Шифрование же позволяет сделать украденную информацию бесполезной для злоумышленника, так как в зашифрованном виде данные не несут никакой информации. Чтобы расшифровать информацию злоумышленник должен будет подобрать ключ для расшифровки, однако при определенной длине ключа это будет сделать невозможно. Это делает метод шифрования основой для построения безопасных систем и защиты персональных данных. Шифрование обычно используется для защиты данных при передаче и хранении. При использовании банкоматов или покупок в интернет-магазинах, шифрование используется защиты передаваемой информации. Компании и организации все больше полагаются на шифрование для защиты приложений и конфиденциальной информации, когда происходит утечка данных. Существует три главных компонента системы шифрования: данные, алгоритм шифрования и управление ключами шифрования. В большинстве устройств три этих компонента находятся в одном месте, однако безопаснее хранит и выполнять в разных местах, так как это снизит риск компрометации каждого компонента. Существует множество различных методов шифрования, но не все предоставляют необходимую защиту. Не так давно 64-битное шифрование считалось достаточно надежным, но с совершенствование электронной вычислительной техники и введением 128-битных решений шифрование с такой длиной ключа оказалось небезопасным. Все алгоритмы шифрования можно подлить н две категории: симметричные и ассиметричные. Симметричные шифры используют один ключ для шифрования и расшифрования. Ключ называют общим, так как он хранится и у отправителя, и у получателя. Симметричные шифры считаются более быстрыми по сравнению с ассиметричными. Наиболее часто использующимся алгоритмом шифрования, является алгоритм AES (AdvancedEncryptionStandard), который был разработан для защиты секретной правительственной информации, однако сейчас используется повсеместно. В нашей стране симметричным алгоритмом шифрования является ГОСТ Р 34.12 2015. Ассиметричные шифры используют два различных ключа для шифрования и расшифрования. В основе таких алгоритмом лежит использование больших простых чисел для создания ключа. Алгоритм ассиметричного шифрования RSA (Rivest-Shamir-Adleman) является наиболее распространенным. При его использовании создается пара ключей: открытый и закрытый ключ. Открытый ключ используется при шифровании данных, он известен любому и может передаваться открыто. Зашифрованное же сообщение может быть расшифровано только владельцем закрытого ключа. В настоящее время многие криптографические процессы используют симметричный алгоритм для шифрования, а ассиметричный для безопасной передачи закрытого ключа. Шифрование является эффективным способом защиты конфиденциальной информации, но для этого требуется тщательно хранить и использовать ключи, чтобы гарантировать защищенность информации и доступность, когда она необходима. Доступ к закрытым ключам должен контролироваться и ограничиваться определенным кругом лиц, кому необходимо их использовать. Правильное управление закрытыми ключами на протяжении всего срока их использования, защита их от утечек и неправильного использования каждая организация вырабатывает для себя самостоятельно. Необходимо поводить аудит для выработки эталонной модели управления закрытыми ключами. Программное обеспечение для управления ключами может помочь централизовать этот процесс, а также защитить ключи от несанкционированного доступа, подмены и удаления. Хеш-функции представляют другой тип шифрования. Хеш-функции чрезвычайно полезны и применяются во множестве приложений, обеспечивающих информационную безопасность. Хэширование это преобразование входного значения бит в другое более сжатое значение бит при помощи математических функций. Входные данные различаются по длине, но на выходе имеют одинаковый размер. Данные, преобразованные с помощью хэш-функций при малейшем изменении, могут быть обнаружены, так как это повлечет полное изменение результирующего хэша. Хэш-функции считаются типом одностороннего шифрования, так как для расшифровки необходим другой ключ, не совпадающий с ключом шифрования. Основным применением хэш-функций является хранение паролей и проверка целостности данных. Популярными алгоритмами хэширования являются алгоритмы SHA-2 и SHA-3. Наиболее популярными алгоритмами шифрования являются: Алгоритм DES алгоритм шифрования данных с симметричным ключом. DES работает с использованием одного и того же ключа для шифрования и расшифровки сообщения, поэтому отправитель и получатель знают и используют один и тот же ключ. Основан на конструкции называемой сетью Фейстеля. На данный момент алгоритм DES практически не используется. Он заменен более надежным алгоритмом шифрования AES. Алгоритм AES также является симметричным блочным шифром. Он используется в программном и аппаратном обеспечении по всему миру и пришел на замену алгоритма DES. AES имеет длину блока в 128 бит, размер ключа 128, 192 или 256 бит. Протокол Диффи-Хелмана был разработан в 1978 году и стал первым ассиметричным шифром, при помощи которого можно было обмениваться сообщения по открытому каналу связи, не боясь утечки информации. Алгоритм позволяет двум сторонам договориться через незащищенный канал об общем секретном ключе для шифрования симметричным алгоритмом. Криптография на эллиптических кривых (ECC). Криптосистемы на эллиптических кривых это системы с открытым ключом шифрования, основанные на теории эллиптических кривых, которые используются создания более быстрых и эффективных способов создания ключей. Данный способ может использоваться в сочетании с другими ассиметричными алгоритмами. Менее короткий ключ в такой системе дает тот же уровень защищенности, как и в обычных алгоритмах шифрования с более длинным ключом. На данный момент криптография на эллиптических кривых применяется в протоколах TLS, SSL на которых основывается все современные компьютерные сети и системы. Квантовое распределение ключей. Метод шифрования сообщений с помощью пары запутанных фотонов. Квантовая запутанность позволяет отправителю и получателю узнать, был ли ключ шифрования перехвачен или изменен, еще до того, как он поступает получателю, так как сам акт наблюдения над передаваемой информацией изменяет ее. После того как было определено, что шифрование является безопасным и не было перехвачено, предоставляется разрешение на передачу зашифрованного сообщения. Для любого криптографического шифра основным способом атаки является метод грубой силы, который заключается в переборе ключей пока не будет найден нужный. Длинна ключа определяет количество возможных ключей, из чего и вытекает целесообразность атаки грубой силы. Сложность шифрования напрямую зависит от длинны ключа, чем длиннее требуется ключ, тем требуется ресурсов для выполнения этой задачи. Злоумышленники также могут взломать шифр с помощью криптоанализа. Процесса поиска слабых мест у целевого шифра. В некоторых случаях этот способов требует меньше ресурсов чем атака грубой силы. Вероятность успешной атаки на шифр выше, если у самого алгоритма имеются недостатки. Антивирусная защита Антивирусное программное обеспечения это класс программ, предназначенных для предотвращения и удаления вредоносных файлов и скриптов на отдельных компьютерах, сетях или системах. Антивирусы предотвращают множество угроз, таких как вирусы, троянские кони, черви, рекламное программное обеспечение, ботнеты, вымогатели, шпионские программы и множество других разновидностей угроз. Принцип работы антивируса заключается в фоновом сканировании компьютера, сервера или сети, обнаружении и предотвращении распространения вредоносных файлов. Для полного сканирования системы антивирусное ПО должно обладать повышенными правами для доступа ко всей системе. Этот факт делает антивирусы привлекательной целью для злоумышленников. Антивирусы используют различные способы обнаружения вредоносных программ. Изначально антивирусы обнаруживали вредоносные файлы на основе сигнатур. Сигнатурами являются уникальные последовательности байтов, принадлежащие конкретному вирусу и не существующие в других программах. Сигнатуры используются антивирусом для определения того, что является вирусом, которые в свою очередь были уже обнаружены и проанализированы специалистами. Для эффективного использования антивирусного программного обеспечения, использующего метод сканирования, необходимо постоянно обновлять базы со сведениями о новых вирусах. Так как ежегодно появляется миллионы новых вредоносных программ, современные базы данных с сигнатурами вредоносного ПО могут быть огромных размеров. Это делает антивирусы, основанные на сканировании сигнатур, малоэффективным и непрактичным. Эвристический анализ в антивирусах позволяет определять неизвестные на данный момент вирусы. Он основан на сигнатурах и эвристическом алгоритме. Данный метод позволяет улучшить работу сканеров применять сигнатуры и позволяет обнаруживать модифицированные и измененные версии вредоносного ПО. Обнаружение срабатывает, когда сигнатура вируса частично совпадает с обнаруженным подозрительным ПО, имеющим общие признаки с известным вирусом или модель его поведения. Однако такой метод может генерировать множество ложных совпадений в случаях, когда определенное ПО ведет себя как известный вирус. Антивирусы также используют методы обнаружения изменений, который основывается на слежении за изменением файлов на дисках компьютера. Так как любой вирус изменяет файлы системы каким-либо образом. Данный метод позволяет обнаруживать даже неизвестное на данный момент программное обеспечение. SIEM системы Системы управления информацией и событиями о безопасности обеспечивают в реальном времени анализ событий безопасности, полученных нескольких источников, выявляя отклонения и нормы и дает возможность среагировать до получения существенного ущерба. SIEM система при обнаружении потенциальной угрозы может регистрировать записывать поступающую информацию и давать инструкции другим элементам управления безопасностью для остановки возможной угрозы. SIEM системы работают путем сбора данных о событиях, созданных приложениями, операционными системами и устройствами безопасности, такими как межсетевые экраны и антивирусное программное обеспечение. Системы управления информацией и событиями о безопасности идентифицируют и сортируют данные о событиях безопасности, такие как неудачные входы в систему, вредоносная активность и другие возможные злонамеренные действия. При выявлении потенциальных угроз SIEM система создает предупреждения. Например, учетная запись пользователя, в которую сделали множество неудачных попыток входа в течение короткого времени, может быть определена как подозрительная активность и SIEM система создает предупреждение о попытке атаки грубой силы на учетную запись пользователя. SIEM системы упрощают управление безопасностью компании путем анализа большого количества данных о состоянии системы или сервиса, создаваемых программным обеспечением. Такие системы позволяют обнаруживать инциденты, которые в любой другой ситуации могли остаться незамеченными. Кроме того, благодаря постоянной фиксации и сбору событий из различных источников, SIEM система может воссоздать весь процесс атаки, что позволит компании определять характер атак и слабые места системы. SIEM системы значительно повышают безопасность системы и помогают обнаружить атаки злоумышленников в самом начале.
img
Tcpdump - это утилита командной строки, которая позволяет вам захватывать и анализировать сетевой трафик, проходящий через вашу систему. Он часто используется для устранения неполадок в сети, а также для обеспечения безопасности. Это мощный и универсальный инструмент, который включает в себя множество опций и фильтров. Поскольку это инструмент командной строки, он идеально подходит для работы на удаленных серверах или устройствах, для которых GUI недоступен, для сбора данных, которые могут быть проанализированы позже, поскольку результаты можно сохранять в отдельный файл. Он также может быть запущен в фоновом режиме или как запланированное задание с использованием таких инструментов, как cron. В этой статье мы рассмотрим некоторые из наиболее распространенных функций tcpdump. Установка Tcpdump Tcpdump включен в несколько дистрибутивов Linux, так что скорее всего, он у вас уже установлен. Проверьте, установлен ли tcpdump в вашей системе, например, с помощью командыwhich: which tcpdump Мы должны получить примерно такой вывод: /usr/sbin/tcpdump Если tcpdump не установлен, вы можете установить его, но используя менеджер пакетов вашего дистрибутива. В CentOS или Red Hat Enterprise Linux: sudo yum install -y tcpdump Для Ubuntu and Debian: sudo apt update && sudo apt install tcpdump Для Arch Linux: sudo pacman -S tcpdump Tcpdump требует libpcap, который является библиотекой для захвата сетевых пакетов. Если он не установлен, он будет автоматически добавлен как зависимость. Захват пакетов с Tcpdump Синтаксис Tcpdump выглядит следующим образом: tcpdump [options] [expression] Команда options позволяют вам контролировать поведение команды. Фильтр expression определяет какие пакеты будут захвачены Для захвата пакетов для траблшутинга или анализа tcpdump требуются повышенные разрешения, поэтому в следующих примерах большинство команд имеют префикс sudo. Для начала используйте команду tcpdump -D, чтобы увидеть, какие интерфейсы доступны для захвата: sudo tcpdump -D 1.eth0 2.virbr0 3.eth1 4.any (Pseudo-device that captures on all interfaces) 5.lo [Loopback] В приведенном выше примере вы можете увидеть все интерфейсы, доступные на компьютере. Специальный интерфейс any позволяет захватывать на всех активных интерфейсах. Давайте использовать его, чтобы поймать немного пакетов: sudo tcpdump -i any tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 09:56:18.293641 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 3770820720:3770820916, ack 3503648727, win 309, options [nop,nop,TS val 76577898 ecr 510770929], length 196 09:56:18.293794 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 196, win 391, options [nop,nop,TS val 510771017 ecr 76577898], length 0 09:56:18.295058 IP rhel75.59883 > gateway.domain: 2486+ PTR? 1.64.168.192.in-addr.arpa. (43) 09:56:18.310225 IP gateway.domain > rhel75.59883: 2486 NXDomain* 0/1/0 (102) 09:56:18.312482 IP rhel75.49685 > gateway.domain: 34242+ PTR? 28.64.168.192.in-addr.arpa. (44) 09:56:18.322425 IP gateway.domain > rhel75.49685: 34242 NXDomain* 0/1/0 (103) 09:56:18.323164 IP rhel75.56631 > gateway.domain: 29904+ PTR? 1.122.168.192.in-addr.arpa. (44) 09:56:18.323342 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 196:584, ack 1, win 309, options [nop,nop,TS val 76577928 ecr 510771017], length 388 09:56:18.323563 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 584, win 411, options [nop,nop,TS val 510771047 ecr 76577928], length 0 09:56:18.335569 IP gateway.domain > rhel75.56631: 29904 NXDomain* 0/1/0 (103) 09:56:18.336429 IP rhel75.44007 > gateway.domain: 61677+ PTR? 98.122.168.192.in-addr.arpa. (45) 09:56:18.336655 IP gateway.domain > rhel75.44007: 61677* 1/0/0 PTR rhel75. (65) 09:56:18.337177 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 584:1644, ack 1, win 309, options [nop,nop,TS val 76577942 ecr 510771047], length 1060 ---- SKIPPING LONG OUTPUT ----- 09:56:19.342939 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 1752016, win 1444, options [nop,nop,TS val 510772067 ecr 76578948], length 0 ^C 9003 packets captured 9010 packets received by filter 7 packets dropped by kernel Ключ -i показывает что мы захватываем пакеты с определенного (хоть и псевдо) интерфейса. Вы можете прервать захват, нажав Ctrl + C. Как вы видите, мы перехватили OVER 9000 пакетов. Но так много нам не нужно Чтобы ограничить количество перехваченных пакетов и остановить tcpdump, используйте параметр -c: sudo tcpdump -i any -c 5 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 11:21:30.242740 IP rhel75.localdomain.ssh > 192.168.64.1.56322: Flags [P.], seq 3772575680:3772575876, ack 3503651743, win 309, options [nop,nop,TS val 81689848 ecr 515883153], length 196 11:21:30.242906 IP 192.168.64.1.56322 > rhel75.localdomain.ssh: Flags [.], ack 196, win 1443, options [nop,nop,TS val 515883235 ecr 81689848], length 0 11:21:30.244442 IP rhel75.43634 > gateway.domain: 57680+ PTR? 1.64.168.192.in-addr.arpa. (43) 11:21:30.244829 IP gateway.domain > rhel75.43634: 57680 NXDomain 0/0/0 (43) 11:21:30.247048 IP rhel75.33696 > gateway.domain: 37429+ PTR? 28.64.168.192.in-addr.arpa. (44) 5 packets captured 12 packets received by filter 0 packets dropped by kernel В этом случае tcpdump прекратил захват автоматически после захвата пяти пакетов. Это полезно в разных сценариях - например, если вы устраняете неполадки с подключением и захватываете несколько начальных пакетов, этого достаточно. Это еще более полезно, когда мы применяем фильтры для захвата определенных пакетов. По умолчанию tcpdump разрешает (ресолвит) IP-адреса и порты в имена, как показано в предыдущем примере. Однако при устранении неполадок в сети часто проще использовать IP-адреса и номера портов. Отключите разрешение имен, используя опцию -n и разрешение портов с -nn: sudo tcpdump -i any -c5 -nn tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 23:56:24.292206 IP 192.168.64.28.22 > 192.168.64.1.35110: Flags [P.], seq 166198580:166198776, ack 2414541257, win 309, options [nop,nop,TS val 615664 ecr 540031155], length 196 23:56:24.292357 IP 192.168.64.1.35110 > 192.168.64.28.22: Flags [.], ack 196, win 1377, options [nop,nop,TS val 540031229 ecr 615664], length 0 23:56:24.292570 IP 192.168.64.28.22 > 192.168.64.1.35110: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 615664 ecr 540031229], length 372 23:56:24.292655 IP 192.168.64.1.35110 > 192.168.64.28.22: Flags [.], ack 568, win 1400, options [nop,nop,TS val 540031229 ecr 615664], length 0 23:56:24.292752 IP 192.168.64.28.22 > 192.168.64.1.35110: Flags [P.], seq 568:908, ack 1, win 309, options [nop,nop,TS val 615664 ecr 540031229], length 340 5 packets captured 6 packets received by filter 0 packets dropped by kernel Как показано выше, вывод захвата теперь отображает IP-адреса и номера портов. Это также не позволяет tcpdump выдавать DNS-запросы, что помогает снизить сетевой трафик при устранении неполадок в сети. Теперь, когда вы можете захватывать сетевые пакеты, давайте рассмотрим, что означает этот вывод. Понимание формата вывода Tcpdump способен захватывать и декодировать множество различных протоколов, таких как TCP, UDP, ICMP и многие другие. Хотя мы не можем охватить все их здесь, чтобы помочь вам начать, давайте рассмотрим пакет TCP. Вы можете найти более подробную информацию о различных форматах протокола на страницах руководства tcpdump. Типичный пакет TCP, захваченный tcpdump, выглядит следующим образом: 08:41:13.729687 IP 192.168.64.28.22 > 192.168.64.1.41916: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 372 Поля могут различаться в зависимости от типа отправляемого пакета, но общий формат tcpdump выглядит так: [Timestamp] [Protocol] [Src IP].[Src Port] > [Dst IP].[Dst Port]: [Flags], [Seq], [Ack], [Win Size], [Options], [Data Length] Первое поле, 08:41:13.729687, представляет метку времени полученного пакета согласно местным часам, в форматечасы:минуты:секунды.фракция где фракция - доли секунды с полуночи. Затем IP представляет протокол сетевого уровня - в данном случае IPv4. Для пакетов IPv6 это значение IP6. Следующее поле, 192.168.64.28.22, - это IP-адрес и порт источника. Далее следуют IP-адрес и порт назначения (разделенные точкой), представленные как 192.168.64.1.41916. После источника и назначения вы можете найти флаги TCP Flags [P.]. Типичные значения для этого поля включают в себя: [.] - ACK (Acknowledgment) [S] - SYN (Start Connection) [P] - PSH (Push Data) [F] - FIN (Finish Connection) [R] - RST (Reset Connection) [S.] - SYN-ACK (SynAcK Packet) Далее идет порядковый номер данных, содержащихся в пакете. Для первого захваченного пакета это абсолютное число. Последующие пакеты используют относительное число, чтобы упростить отслеживание. В этом примере последовательность seq 196:568, что означает, что этот пакет содержит байты с 196 по 568 этого потока. За этим следует номер подтверждения: ack 1. В данном случае это 1, поскольку сторона отправляет данные. Для стороны, получающей данные, это поле представляет следующий ожидаемый байт (данные) в этом потоке. Например, номер Ack для следующего пакета в этом потоке будет 568. Следующее поле - это размер окна win 309, который представляет количество байтов, доступных в приемном буфере, за которыми следуют такие параметры TCP, как MSS (максимальный размер сегмента - Maximum Segment Size) или масштаб окна. nop - заполнение, используемое для того, чтобы сделать заголовок TCP кратным 4 байтам. TS val - это временная метка TCP. ecr - обозначает эхо-ответ. Наконец, у нас есть длина пакета, length 372, которая представляет длину в байтах данных полезной нагрузки. Длина - это разница между последним и первым байтами порядкового номера. Теперь давайте узнаем, как фильтровать пакеты, чтобы сузить результаты и упростить устранение конкретных проблем. Фильтрация пакетов Как упоминалось выше, tcpdump может перехватывать слишком много пакетов, некоторые из которых даже не связаны с проблемой, которую вы устраняете. Например, если вы устраняете проблему с подключением к веб-серверу, вас не интересует трафик SSH, поэтому удаление пакетов SSH из выходных данных облегчает работу с реальной проблемой. Одной из самых мощных функций tcpdump является его способность фильтровать захваченные пакеты с использованием различных параметров, таких как IP-адреса источника и назначения, порты, протоколы и так далее. Давайте рассмотрим некоторые из наиболее распространенных. Протокол Для фильтрации пакетов на основе протокола, указав протокол в командной строке. Например, перехватывайте ICMP-пакеты только с помощью этой команды: sudo tcpdump -i any -c5 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes В другом терминале попробуйте пропинговать другой компьютер: ping wiki.merionet.ru PING wiki.merionet.ru(54.204.39.132) 56(84) bytes of data. 64 bytes from ec2-54-204-39-132.compute-1.amazonaws.com (54.204.39.132): icmp_seq=1 ttl=47 time=39.6 ms Вернувшись в захват tcpdump, обратите внимание, что tcpdump захватывает и отображает только пакеты, связанные с ICMP. В этом случае tcpdump не отображает пакеты разрешения имен, которые были сгенерированы при разрешении имени wiki.merionet.ru: 09:34:20.136766 IP rhel75 > ec2-54-204-39-132.compute-1.amazonaws.com: ICMP echo request, id 20361, seq 1, length 64 09:34:20.176402 IP ec2-54-204-39-132.compute-1.amazonaws.com > rhel75: ICMP echo reply, id 20361, seq 1, length 64 09:34:21.140230 IP rhel75 > ec2-54-204-39-132.compute-1.amazonaws.com: ICMP echo request, id 20361, seq 2, length 64 09:34:21.180020 IP ec2-54-204-39-132.compute-1.amazonaws.com > rhel75: ICMP echo reply, id 20361, seq 2, length 64 09:34:22.141777 IP rhel75 > ec2-54-204-39-132.compute-1.amazonaws.com: ICMP echo request, id 20361, seq 3, length 64 5 packets captured 5 packets received by filter 0 packets dropped by kernel Либо, если вы знаете идентификатор протокола, то вы можете использовать фильтр proto. Например, для OSFP пакетов: sudo tcpdump -n proto 89 Хост Ограничьте захват только пакетами, относящимися к определенному хосту, используя фильтр host: sudo tcpdump -i any -c5 -nn host 54.204.39.132 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 09:54:20.042023 IP 192.168.122.98.39326 > 54.204.39.132.80: Flags [S], seq 1375157070, win 29200, options [mss 1460,sackOK,TS val 122350391 ecr 0,nop,wscale 7], length 0 09:54:20.088127 IP 54.204.39.132.80 > 192.168.122.98.39326: Flags [S.], seq 1935542841, ack 1375157071, win 28960, options [mss 1460,sackOK,TS val 522713542 ecr 122350391,nop,wscale 9], length 0 09:54:20.088204 IP 192.168.122.98.39326 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 122350437 ecr 522713542], length 0 09:54:20.088734 IP 192.168.122.98.39326 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 122350438 ecr 522713542], length 112: HTTP: GET / HTTP/1.1 09:54:20.129733 IP 54.204.39.132.80 > 192.168.122.98.39326: Flags [.], ack 113, win 57, options [nop,nop,TS val 522713552 ecr 122350438], length 0 5 packets captured 5 packets received by filter 0 packets dropped by kernel В этом примере tcpdump захватывает и отображает только пакеты с хоста 54.204.39.132 и на него. Также можно фильтровать не только по одному хосту, но и по целым подсетям. Для этого нужно использовать фильтр net. Например, чтобы вывести только пакеты, относящиеся только к 192.168.1.0/24, нужно использовать: sudo tcpdump -n net 192.168.1 Порт Для фильтрации пакетов на основе желаемой услуги или порта используйте фильтр port. Например, перехватите пакеты, относящиеся к веб-службе HTTP c 80 порта, с помощью этой команды: sudo tcpdump -i any -c5 -nn port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 09:58:28.790548 IP 192.168.122.98.39330 > 54.204.39.132.80: Flags [S], seq 1745665159, win 29200, options [mss 1460,sackOK,TS val 122599140 ecr 0,nop,wscale 7], length 0 09:58:28.834026 IP 54.204.39.132.80 > 192.168.122.98.39330: Flags [S.], seq 4063583040, ack 1745665160, win 28960, options [mss 1460,sackOK,TS val 522775728 ecr 122599140,nop,wscale 9], length 0 09:58:28.834093 IP 192.168.122.98.39330 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 122599183 ecr 522775728], length 0 09:58:28.834588 IP 192.168.122.98.39330 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 122599184 ecr 522775728], length 112: HTTP: GET / HTTP/1.1 09:58:28.878445 IP 54.204.39.132.80 > 192.168.122.98.39330: Flags [.], ack 113, win 57, options [nop,nop,TS val 522775739 ecr 122599184], length 0 5 packets captured 5 packets received by filter 0 packets dropped by kernel Чтобы захватывать траффик с диапазона портов используйте фильтр portrange, после которого через дефис укажите желаемый диапазон: sudo tcpdump -n portrange 11128-11142 IP адрес или имя хоста отправителя или получателя Вы также можете фильтровать пакеты на основе IP-адреса источника или назначения или имени хоста при помощи фильтра src, после которого нужно указать адрес отправителя. Например, для захвата пакетов с хоста 192.168.122.98: sudo tcpdump -i any -c5 -nn src 192.168.122.98 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 10:02:15.220824 IP 192.168.122.98.39436 > 192.168.122.1.53: 59332+ A? wiki.merionet.ru. (32) 10:02:15.220862 IP 192.168.122.98.39436 > 192.168.122.1.53: 20749+ AAAA? wiki.merionet.ru. (32) 10:02:15.364062 IP 192.168.122.98.39334 > 54.204.39.132.80: Flags [S], seq 1108640533, win 29200, options [mss 1460,sackOK,TS val 122825713 ecr 0,nop,wscale 7], length 0 10:02:15.409229 IP 192.168.122.98.39334 > 54.204.39.132.80: Flags [.], ack 669337581, win 229, options [nop,nop,TS val 122825758 ecr 522832372], length 0 10:02:15.409667 IP 192.168.122.98.39334 > 54.204.39.132.80: Flags [P.], seq 0:112, ack 1, win 229, options [nop,nop,TS val 122825759 ecr 522832372], length 112: HTTP: GET / HTTP/1.1 5 packets captured 5 packets received by filter 0 packets dropped by kernel Обратите внимание, что tcpdump захватывает пакеты с исходящим IP-адресом 192.168.122.98 для нескольких служб, таких как разрешение имен (порт 53) и HTTP (порт 80). Пакеты ответов не отображаются, так как их исходный IP адрес у них отличается. И наоборот, вы можете использовать фильтр dst для фильтрации по IP-адресу или имени хоста: sudo tcpdump -i any -c5 -nn dst 192.168.122.98 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 10:05:03.572931 IP 192.168.122.1.53 > 192.168.122.98.47049: 2248 1/0/0 A 54.204.39.132 (48) 10:05:03.572944 IP 192.168.122.1.53 > 192.168.122.98.47049: 33770 0/0/0 (32) 10:05:03.621833 IP 54.204.39.132.80 > 192.168.122.98.39338: Flags [S.], seq 3474204576, ack 3256851264, win 28960, options [mss 1460,sackOK,TS val 522874425 ecr 122993922,nop,wscale 9], length 0 10:05:03.667767 IP 54.204.39.132.80 > 192.168.122.98.39338: Flags [.], ack 113, win 57, options [nop,nop,TS val 522874436 ecr 122993972], length 0 10:05:03.672221 IP 54.204.39.132.80 > 192.168.122.98.39338: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 522874437 ecr 122993972], length 642: HTTP: HTTP/1.1 302 Found 5 packets captured 5 packets received by filter 0 packets dropped by kernel Сложные выражения Вы также можете комбинировать фильтры с помощью логических операторов and, or и not для создания более сложных выражений. Например, чтобы отфильтровать пакеты с IP-адреса источника 192.168.122.98 и только служебного HTTP, используйте эту команду: sudo tcpdump -i any -c5 -nn src 192.168.122.98 and port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 10:08:00.472696 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [S], seq 2712685325, win 29200, options [mss 1460,sackOK,TS val 123170822 ecr 0,nop,wscale 7], length 0 10:08:00.516118 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [.], ack 268723504, win 229, options [nop,nop,TS val 123170865 ecr 522918648], length 0 10:08:00.516583 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [P.], seq 0:112, ack 1, win 229, options [nop,nop,TS val 123170866 ecr 522918648], length 112: HTTP: GET / HTTP/1.1 10:08:00.567044 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [.], ack 643, win 239, options [nop,nop,TS val 123170916 ecr 522918661], length 0 10:08:00.788153 IP 192.168.122.98.39342 > 54.204.39.132.80: Flags [F.], seq 112, ack 643, win 239, options [nop,nop,TS val 123171137 ecr 522918661], length 0 5 packets captured 5 packets received by filter 0 packets dropped by kernel Вы можете создавать более сложные выражения, группируя фильтр с круглыми скобками. В этом случае заключите все выражение фильтра в кавычки, чтобы оболочка не перепутала их с выражениями оболочки: sudo tcpdump -i any -c5 -nn "port 80 and (src 192.168.122.98 or src 54.204.39.132)" tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 10:10:37.602214 IP 192.168.122.98.39346 > 54.204.39.132.80: Flags [S], seq 871108679, win 29200, options [mss 1460,sackOK,TS val 123327951 ecr 0,nop,wscale 7], length 0 10:10:37.650651 IP 54.204.39.132.80 > 192.168.122.98.39346: Flags [S.], seq 854753193, ack 871108680, win 28960, options [mss 1460,sackOK,TS val 522957932 ecr 123327951,nop,wscale 9], length 0 10:10:37.650708 IP 192.168.122.98.39346 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 123328000 ecr 522957932], length 0 10:10:37.651097 IP 192.168.122.98.39346 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 123328000 ecr 522957932], length 112: HTTP: GET / HTTP/1.1 10:10:37.692900 IP 54.204.39.132.80 > 192.168.122.98.39346: Flags [.], ack 113, win 57, options [nop,nop,TS val 522957942 ecr 123328000], length 0 5 packets captured 5 packets received by filter 0 packets dropped by kernel В этом примере мы фильтруем пакеты только для службы HTTP (порт 80) и исходящих IP-адресов 192.168.122.98 или 54.204.39.132. Это быстрый способ изучения обеих сторон одного и того же потока. Проверка содержимого пакета В предыдущих примерах мы проверяли только заголовки пакетов на наличие информации, такой как источник, адресаты, порты и так далее. Иногда это все, что нам нужно для устранения проблем с сетевым подключением. Однако иногда нам необходимо проверить содержимое пакета, чтобы убедиться, что в отправляемом сообщении содержится то, что нам нужно, или что мы получили ожидаемый ответ. Чтобы увидеть содержимое пакета, tcpdump предоставляет два дополнительных флага: -X для печати содержимого в шестнадцатеричном формате (HEX) и -A для печати содержимого в ASCII. Например, проверьте HTTP-содержимое веб-запроса следующим образом: sudo tcpdump -i any -c10 -nn -A port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 13:02:14.871803 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [S], seq 2546602048, win 29200, options [mss 1460,sackOK,TS val 133625221 ecr 0,nop,wscale 7], length 0 E.. 192.168.122.98.39366: Flags [S.], seq 1877348646, ack 2546602049, win 28960, options [mss 1460,sackOK,TS val 525532247 ecr 133625221,nop,wscale 9], length 0 E.. 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 133625260 ecr 525532247], length 0 E..4..@.@.....zb6.'....P...Ao..'........... .....R.W................ 13:02:14.911808 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 133625261 ecr 525532247], length 112: HTTP: GET / HTTP/1.1 E.....@.@..1..zb6.'....P...Ao..'........... .....R.WGET / HTTP/1.1 User-Agent: Wget/1.14 (linux-gnu) Accept: */* Host: wiki.merionet.ru Connection: Keep-Alive ................ 13:02:14.951199 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [.], ack 113, win 57, options [nop,nop,TS val 525532257 ecr 133625261], length 0 E..4.F@./.."6.'...zb.P..o..'.......9.2..... .R.a.................... 13:02:14.955030 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 525532258 ecr 133625261], length 642: HTTP: HTTP/1.1 302 Found E....G@./...6.'...zb.P..o..'.......9....... .R.b....HTTP/1.1 302 Found Server: nginx Date: Sun, 29 Sep 2019 17:02:14 GMT Content-Type: text/html; charset=iso-8859-1 Content-Length: 207 X-Content-Type-Options: nosniff Location: https://wiki.merionet.ru/ Cache-Control: max-age=1209600 Expires: Sun, 07 Oct 2018 17:02:14 GMT X-Request-ID: v-6baa3acc-bf52-11e8-9195-22000ab8cf2d X-Varnish: 632951979 Age: 0 Via: 1.1 varnish (Varnish/5.2) X-Cache: MISS Connection: keep-alive <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a href="https://wiki.merionet.ru/">here</a>.</p> </body></html> ................ 13:02:14.955083 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [.], ack 643, win 239, options [nop,nop,TS val 133625304 ecr 525532258], length 0 E..4..@.@.....zb6.'....P....o.............. .....R.b................ 13:02:15.195524 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [F.], seq 113, ack 643, win 239, options [nop,nop,TS val 133625545 ecr 525532258], length 0 E..4..@.@.....zb6.'....P....o.............. .....R.b................ 13:02:15.236592 IP 54.204.39.132.80 > 192.168.122.98.39366: Flags [F.], seq 643, ack 114, win 57, options [nop,nop,TS val 525532329 ecr 133625545], length 0 E..4.H@./.. 6.'...zb.P..o..........9.I..... .R...................... 13:02:15.236656 IP 192.168.122.98.39366 > 54.204.39.132.80: Flags [.], ack 644, win 239, options [nop,nop,TS val 133625586 ecr 525532329], length 0 E..4..@.@.....zb6.'....P....o.............. .....R.................. 10 packets captured 10 packets received by filter 0 packets dropped by kernel Это полезно для устранения проблем с вызовами API, при условии, что вызовы используют простой HTTP. Для зашифрованных соединений этот вывод менее полезен. Сохранение файл Другая полезная функция, предоставляемая tcpdump, - это возможность сохранять захват в файл, чтобы вы могли проанализировать результаты позже. Это позволяет вам захватывать пакеты в пакетном режиме, например, ночью и проверять результаты утром. Это также помогает, когда слишком много пакетов для анализа, поскольку захват в реальном времени может происходить слишком быстро. Чтобы сохранить пакеты в файл, а не отображать их на экране, используйте параметр -w: sudo tcpdump -i any -c10 -nn -w webserver.pcap port 80 [sudo] password for ricardo: tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 10 packets captured 10 packets received by filter 0 packets dropped by kernel Эта команда сохраняет выходные данные в файле с именем webserver.pcap. Расширение .pcap расшифровывается как «packet capture» и является соглашением для этого формата файла. Как показано в этом примере, на экране ничего не отображается, и захват завершается после захвата 10 пакетов, согласно опции -c10. Если вы хотите получить обратную связь, чтобы гарантировать захват пакетов, используйте опцию -v. Tcpdump создает файл в двоичном формате, поэтому вы не можете просто открыть его в текстовом редакторе. Чтобы прочитать содержимое файла, выполните tcpdump с опцией -r: tcpdump -nn -r webserver.pcap reading from file webserver.pcap, link-type LINUX_SLL (Linux cooked) 13:36:57.679494 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [S], seq 3709732619, win 29200, options [mss 1460,sackOK,TS val 135708029 ecr 0,nop,wscale 7], length 0 13:36:57.718932 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [S.], seq 1999298316, ack 3709732620, win 28960, options [mss 1460,sackOK,TS val 526052949 ecr 135708029,nop,wscale 9], length 0 13:36:57.719005 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 135708068 ecr 526052949], length 0 13:36:57.719186 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [P.], seq 1:113, ack 1, win 229, options [nop,nop,TS val 135708068 ecr 526052949], length 112: HTTP: GET / HTTP/1.1 13:36:57.756979 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [.], ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 0 13:36:57.760122 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 642: HTTP: HTTP/1.1 302 Found 13:36:57.760182 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [.], ack 643, win 239, options [nop,nop,TS val 135708109 ecr 526052959], length 0 13:36:57.977602 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [F.], seq 113, ack 643, win 239, options [nop,nop,TS val 135708327 ecr 526052959], length 0 13:36:58.022089 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [F.], seq 643, ack 114, win 57, options [nop,nop,TS val 526053025 ecr 135708327], length 0 13:36:58.022132 IP 192.168.122.98.39378 > 54.204.39.132.80: Flags [.], ack 644, win 239, options [nop,nop,TS val 135708371 ecr 526053025], length 0 Поскольку вы больше не захватываете пакеты непосредственно из сетевого интерфейса, sudo не требуется для чтения файла. Вы также можете использовать любой из фильтров, которые мы обсуждали, чтобы отфильтровать содержимое из файла, так же, как и с данными в реальном времени. Например, проверьте пакеты в файле захвата с исходящего IP-адреса 54.204.39.132, выполнив эту команду: tcpdump -nn -r webserver.pcap src 54.204.39.132 reading from file webserver.pcap, link-type LINUX_SLL (Linux cooked) 13:36:57.718932 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [S.], seq 1999298316, ack 3709732620, win 28960, options [mss 1460,sackOK,TS val 526052949 ecr 135708029,nop,wscale 9], length 0 13:36:57.756979 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [.], ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 0 13:36:57.760122 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [P.], seq 1:643, ack 113, win 57, options [nop,nop,TS val 526052959 ecr 135708068], length 642: HTTP: HTTP/1.1 302 Found 13:36:58.022089 IP 54.204.39.132.80 > 192.168.122.98.39378: Flags [F.], seq 643, ack 114, win 57, options [nop,nop,TS val 526053025 ecr 135708327], length 0 Если вы хотите запустить tcpdump в фоновом режиме, добавьте & в конце команды. Заключение Эти основные функции tcpdump помогут вам начать работу с этим мощным и универсальным инструментом. Чтобы узнать больше, посетите веб-сайт tcpdump и справочные страницы. Интерфейс командной строки tcpdump обеспечивает большую гибкость для захвата и анализа сетевого трафика. Если вам нужен графический инструмент для понимания более сложных потоков, посмотрите на Wireshark. Одним из преимуществ Wireshark является то, что он может читать файлы .pcap, захваченные tcpdump. Вы можете использовать tcpdump для захвата пакетов на удаленной машине, у которой нет графического интерфейса пользователя, и проанализировать файл результатов с помощью Wireshark.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59