Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Writing packets to a file
/ 100
На этом занятии вы познакомитесь с программой tcpdump и некоторыми ее функциями. Это основное средство анализа сети для специалистов в области информационной безопасности и сетевых технологий. Как специалисту по ИТ-поддержке, вам важно уметь пользоваться этой программой на случай, если придется разбираться в данных TCP/IP. Она поможет представить сетевой трафик в таком виде, чтобы было удобнее анализировать его и устранять неполадки.
На выполнение заданий отводится 60 минут.
Для некоторых заданий на этом занятии потребуется ещё один терминал, потому откройте второе окно терминала. Так вы сможете выбирать разные SSH-подключения к ВМ.
Чтобы получить доступ к материалам, которые находятся в операционной системе виртуальной машины, необходимо запустить практическое занятие. Нажмите зеленую кнопку Start Lab (Начать занятие).
После нажатия кнопки Start Lab (Начать занятие) в левой части экрана появятся все сведения о подключении по SSH. Вы увидите следующий интерфейс:
Ниже мы перечислили три способа подключения в зависимости от операционной системы вашего устройства.
Чтобы подключиться, вам предстоит использовать клиент PuTTY Secure Shell (SSH) и внешний IP-адрес виртуальной машины.
Скачайте файл ключа PPK
Вы можете скачать закрытый ключ виртуальной машины в формате PPK, совместимом с PuTTY, на странице запуска практического занятия в Qwiklabs. Нажмите Скачать PPK.
Подключитесь к виртуальной машине по протоколу SSH с помощью клиента PuTTY
В поле Host Name (or IP address) (Имя хоста или IP-адрес) введите значение username@external_ip_address.
В списке Category (Категория) раскройте меню SSH.
Нажмите Auth (Аутентификация), но не раскрывайте этот пункт.
В окне Private key file for authentication (Закрытый ключ для аутентификации) выберите файл PPK, который вы скачали, и дважды нажмите на него.
Нажмите кнопку Open (Открыть).
Распространенные проблемы
Если PuTTY не может подключиться к вашей виртуальной машине Linux, убедитесь в следующем:
Вы ввели значение <username>@<external ip address> в PuTTY.
Вы скачали новый PPK-файл для этого практического занятия из Qwiklabs.
Вы используете скачанный файл PPK в PuTTY.
Скачайте закрытый ключ виртуальной машины
Вы можете скачать закрытый ключ виртуальной машины в формате PEM на странице запуска практического занятия в Qwiklabs. Нажмите Download PEM (Скачать PEM).
Подключитесь к виртуальной машине, используя терминал
Терминал – это программа, которая запускает текстовый интерфейс для ввода команд. Вы будете использовать свой терминал в качестве клиента SSH для подключения к виртуальной машине Linux, предоставленной в рамках занятия.
Откройте терминал.
Чтобы открыть терминал на компьютере с Linux, используйте сочетание клавиш Ctrl + Alt + t.
Чтобы открыть терминал на компьютере с macOS, введите сочетание клавиш Cmd + Пробел, а затем введите слово терминал.
Введите указанные ниже команды.
Вероятнее всего, вы найдете PEM-файл в папке для загрузок. Если вы не меняли настройки загрузок в своей системе, то путь к ключу PEM будет выглядеть так: ~/Downloads/qwikLABS-XXXXX.pem
chmod 600 ~/Downloads/qwikLABS-XXXXX.pem
ssh -i ~/Downloads/qwikLABS-XXXXX.pem username@External Ip Address
Скачайте закрытый ключ виртуальной машины
Вы можете скачать закрытый ключ виртуальной машины в формате PEM на странице запуска практического занятия в Qwiklabs. Нажмите Download PEM (Скачать PEM).
Подключитесь к виртуальной машине
Добавьте приложение Secure Shell в браузер Chrome.
Откройте приложение Secure Shell и нажмите New Connection (Новое подключение).
В разделе username (имя пользователя) введите имя пользователя, которое указано на доступной в рамках занятия панели сведений о подключении. В разделе hostname (имя хоста) введите внешний IP-адрес экземпляра виртуальной машины, который указан на доступной в рамках занятия панели сведений о подключении.
В разделе Identity (Идентификатор) импортируйте скачанный ключ PEM, нажав кнопку Import (Импортировать). Выберите ключ PEM и нажмите кнопку OPEN (ОТКРЫТЬ).
После загрузки ключа нажмите кнопку [ENTER] Connect (Подключиться) ниже.
Чтобы продолжить, отвечайте yes (да) во всех окнах с запросами.
Вы успешно подключились к виртуальной машине с Linux.
Теперь вы можете продолжить практическое занятие.
Вы выполните несколько заданий с помощью tcpdump. Начнем с основных функций, а затем перейдем к чуть более сложным темам.
Начнем с описания tcpdump и запустим программу без всяких параметров. Обратите внимание, что для захвата трафика с помощью tcpdump требуются права пользователя root или администратора, поэтому любая команда должна начинаться с sudo. Требуется по меньшей мере указать контролируемый интерфейс с помощью параметра -i. Возможно, вы захотите узнать имя первичного сетевого интерфейса с помощью команды ip link. В данном случае мы во всех примерах используем интерфейс ens4, но на вашем собственном компьютере это может быть не так.
Чтобы начать контролировать трафик интерфейса с помощью tcpdump, введите команду, указанную ниже.
Внимание!. Эта команда будет направлять на ваш терминал постоянный поток текста по мере прочтения новых пакетов. Остановить его можно комбинацией клавиш Ctrl + C.
sudo tcpdump -i ens4
По этой команде некоторая базовая информация о найденных пакетах будет выводиться непосредственно на стандартное выходное устройство. Это будет продолжаться до тех пор, пока вы не укажете, что нужно остановиться. Чтобы остановить поток, в любой момент нажмите Ctrl + C.
Вы видите, что после остановки tcpdump выводит сводные данные о перехваченных пакетах с указанием количества перехваченных, отфильтрованных и потерянных пакетов:
По умолчанию tcpdump выполняет некоторый базовый анализ протокола. Чтобы включить детальный анализ и получить более подробные сведения, используйте параметр -v. По умолчанию tcpdump также пытается выполнять обратный DNS-запрос для преобразования IP-адресов в имена хостов, а также заменять номера портов на связанные с ними общепринятые имена служб. Эту функцию можно отключить с помощью параметра -n. Рекомендуется использовать этот параметр, чтобы не генерировать избыточный трафик из-за DNS-запросов и ускорить анализ. Введите команду, указанную ниже.
Внимание!. Эта команда будет направлять на ваш терминал постоянный поток текста по мере прочтения новых пакетов. Остановить его можно комбинацией клавиш Ctrl + C.
sudo tcpdump -i ens4 -vn
Вы видите, что в выходных данных содержится более подробная информация о каждом пакете:
Без параметра детализации программа tcpdump показывает нам только:
При наличии параметра детализации вы также увидите такие данные IP-заголовка, как время жизни, идентификатор пакета, параметры и флаги.
Фильтрация
Давайте теперь наряду с анализом протокола познакомимся с языком фильтров tcpdump. Программа tcpdump поддерживает мощный язык для фильтрации пакетов, благодаря чему вы можете перехватывать только интересующий вас трафик. Правила фильтрации вводятся в самом конце команды после всех остальных параметров. Мы установим фильтр для перехвата только DNS-трафика к определенному DNS-серверу. Затем создадим некоторый DNS-трафик, чтобы можно было показать, как tcpdump может интерпретировать DNS-запросы и ответы.
Итак, давайте введем команду. Как и в предыдущем случае, она будет выполняться до нажатия Ctrl + C, но теперь вы не увидите выходных данных.
sudo tcpdump -i ens4 -vn host 8.8.8.8 and port 53
Проанализируем, из чего состоит этот фильтр и что он делает. Параметр host 8.8.8.8 указывает, что нам нужны только пакеты с заданным IP-адресом источника или адресата (в данном случае 8.8.8.8). Если нас интересует трафик только в одном направлении, мы можем добавить указатель направления dst или src (адресат и источник соответственно). Если указатель направления опустить, то будет контролироваться трафик в любом направлении.
Фрагмент port 53 означает, что нас интересуют только пакеты с заданным портом источника и адресата (в данном случае DNS). Два условия фильтра объединены логическим оператором and (И). Это означает, что пакет будет захвачен в том случае, если выполняются условия обоих фильтров.
Двигаемся дальше и подключим второй терминал, следуя инструкциям в разделе Accessing the virtual machine (Доступ к виртуальной машине). Нажмите на раздел Accessing the virtual machine на панели навигации справа и введите следующую команду:
dig @8.8.8.8 A example.com
Вы увидите на экране следующий результат:
Здесь используется утилита dig, чтобы запросить у заданного DNS-сервера (в нашем случае 8.8.8.8) запись A для указанного домена (в нашем случае example.com).
Вернувшись к исходному терминалу, вы должны увидеть два перехваченных пакета, поскольку весь остальной трафик должен быть исключен по нашим правилам фильтрации:
Первый пакет – это DNS-запрос, который является нашим обращением к серверу со второго терминала. Обратите внимание, что в данном случае это UDP-трафик. Анализ DNS-запроса, выполненныйtcpdump, идет сразу после поля UDP checksum. Сначала идет идентификатор DNS, за ним следуют некоторые параметры UDP, затем тип запроса. В нашем случае это A?, что означает, что мы запрашиваем запись A. Далее приводится имя интересующего нас домена (example.com).
Второй пакет – это ответ сервера, который содержит идентификатор DNS исходного запроса, за которым следует сам запрос. После этого идет ответ на запрос, который содержит IP-адрес, связанный с доменным именем.
Теперь можно остановить сеанс tcpdump на первом терминале, нажав Ctrl + C. Оставьте окно второго терминала открытым, он вам скоро снова понадобится.
Далее посмотрим, как tcpdump записывает пакеты в файл и считывает их оттуда.
На одном из терминалов введите команду:
sudo tcpdump -i ens4 port 80 -w http.pcap
По этой команде на нашем интерфейсе ens4 начинается перехват исключительно HTTP-трафика, на что указывает порт 80. Параметр -w указывает, что мы хотим записать перехваченные пакеты в файл http.pcap. Как и все прочие перехваты, этот будет выполняться вплоть до принудительной остановки нажатием Ctrl + C.
Пока все работает, снова перейдите ко второму терминалу, где надо сгенерировать HTTP-трафик, который будет перехвачен на первом терминале. Не останавливайте перехват, который вы только что начали, выполнив предыдущую команду. (Если вы все-таки это сделали, сейчас его можно перезапустить.)
В окне второго терминала введите следующую команду для создания некоторого трафика:
curl example.com
Эта команда извлекает код HTML сайта example.com и выводит его на экран. Результат должен выглядеть таким образом. (Обратите внимание, что здесь показана только первая часть выходных данных.)
После этого закройте окно второго терминала и вернитесь к исходному терминалу, где выполняется перехват. Остановите его, нажав Ctrl + C. Вы должны увидеть сводные данные о количестве перехваченных пакетов:
Кроме того, должен быть создан двоичный файл http.pcap, в котором находятся только что перехваченные пакеты. Не пытайтесь вывести содержимое этого файла на экран. Поскольку это двоичный файл, он будет отображаться в виде бессвязного набора символов, который невозможно прочитать.
Где-то в этом файле содержится информация о пакетах, созданных при извлечении кода HTML сайта example.com. Теперь мы можем прочитать данные из этого файла с помощью tcpdump, используя следующую команду:
tcpdump -r http.pcap -nv
Обратите внимание, что для чтения пакетов из файла нам не требуется программа sudo. Также заметьте, что tcpdump записывает в файл полные пакеты, а не только текстовый анализ, который выводится на экран в процессе обычной работы. Например, где-то в выходных данных вы должны увидеть код HTML, который был возвращен в качестве тела исходного запроса на другом терминале:
Нажмите Check my progress (Проверить статус выполнения), чтобы узнать, справились ли вы с заданием.
Поздравляем! Вы успешно воспользовались программой tcpdump для мониторинга сети на базовом уровне, в том числе используя фильтры для выделения нужного трафика. Кроме того, вы научились интерпретировать информацию о пакетах, которую выводит tcpdump, а также сохранять и загружать сводную информацию о пакетах, перехваченных во время сеанса.
Выполнив практическое занятие, нажмите End Lab (Завершить занятие). Платформа Qwiklabs удалит список ресурсов, которыми вы пользовались, и выполнит очистку аккаунта.
Вам будет предложено оценить удобство выполнения задания. Выберите нужное количество звезд, введите комментарий и нажмите Submit(Отправить).
Какой оценке соответствует то или иное количество звезд:
Если вы не хотите оценивать занятие, просто закройте диалоговое окно.
Отправлять отзывы, предложения или исправления можно на вкладке Support (Поддержка).
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one