tcpdumptcpdumptcpdumpВ некоторых случаях для обнаружения проблем функционирования сетевого стека узла и сегментов сети используется анализ сетевого трафика. Существуют средства, которые позволяют отобразить (прослушать) и проанализировать работу сети на уровне передаваемых фреймов, сетевых пакетов, сетевых соединений, датаграмм и прикладных протоколов.
В зависимости от ситуации для диагностики может быть доступен как трафик узла, на котором производится прослушивание сетевого трафика, так и трафик сетевого сегмента, порта маршрутизатора и т. д. Расширенные возможности для перехвата трафика основаны на "беспорядочном" (promiscuous) режиме работы сетевого адаптера: обрабатываются все фреймы (а не только те, которые предназначены данному MAC-адресу и широковещательные, как в нормальном режиме функционирования).
В сети Ethernet существуют следующие основные возможности прослушивания трафика:
Существуют программы (сетевые мониторы или анализаторы, sniffer), которые реализуют функцию прослушивания сетевого трафика (в т.ч. в беспорядочном режиме), отображения его или записи в файл. Дополнительно ПО для анализа может фильтровать трафик на основе правил, декодировать (расшифровать) протоколы, считать статистику и диагностировать некоторые проблемы.
Консольная утилита tcpdump входит в состав большинства Unix-систем и позволяет перехватывать и
отображать сетевой трафик . Утилита использует libpcap, переносимую
C/C++ библиотеку для перехвата сетевого трафика.
Для установки tcpdump в Debian можно использовать команду:
# apt-get install tcpdump
Для запуска данной утилиты необходимо иметь права
tcpdump <опции> <фильтр-выражение>
Для вывода на консоль -i ):
# tcpdump -i eth0
Можно отключить преобразования IP адресов в доменные имена (т.к. при больших объемах трафика создается большое
число запросов к -n:
# tcpdump -n -i eth0
Для вывода данных канального уровня (например, mac адреса и прочее) - опция -e:
# tcpdump -en -i eth0
Вывод дополнительной информации (например, -v:
# tcpdump -ven -i eth0
Увеличение размера захватываемых пакетов (больше 68 байт по умолчанию) — опция -s с указанием
размера ( -s 0 — захватывать пакеты целиком):
# tcpdump -s 0
Запись в файл (непосредственно пакеты - "-w с указанием имени файла:
# tcpdump -w traf.dump
Чтение пакетов из файла — опция - r с указанием имени файла:
# tcpdump -r traf.dump
По умолчанию tcpdump работает в беспорядочном режиме. Ключ -p указывает tcpdump перехватывать только трафик, предназначенный данному узлу.
Дополнительную информацию по ключам и формате фильтров tcpdump можно получить в справочном
руководстве ( man tcpdump ).
Для выделения Ethernet-фреймов используются следующие конструкции tcpdump (общий вид):
tcpdump ether { src | dst | host } MAC_ADDRESS
где src — — host — src или , а также для выделения широковещательного трафика:
tcpdump ether broadcast
Например:
# tcpdump -n -i vlan0 ether src 0:2:b3:d8:d8:2c # tcpdump -n -e -i vlan0 ether broadcast
В первом случае выбираются с интерфейса vlan0 фреймы с указанным MAC-адресом источника. Во втором - выбирается широковещательный трафик на интерфейсе vlan0.
Фильтрация по IP адресам ( net — сеть, для указания mask ):
tcpdump { src | dst } { net | host }
Например:
# tcpdump -n -i eth0 src 192.168.66.1 # tcpdump -n -i eth0 host 192.168.66.1 # tcpdump -n -i eth0 src net 10.0.0.0 mask 255.0.0.0
В первом случае фильтруются
Фильтрация по IP протоколу:
tcpdump { arp | rarp | ip | tcp | udp | icmp }
Например, выбирать
# tcpdump -n -i eth0 icmp
Сложные фильтры могут содержать множество примитивов, связанных между собой с использованием логических
операторов and, or и not.
Например: host 192.168.12.5 and host 192.168.13.4.
Используем хостовую систему и виртуальную машину с сетевым адаптером, настроенным на виртуальную сеть узла. Установим на сетевом адаптере виртуальной машины IP-адрес из той же подсети, что и на адаптер vboxnet0 (адаптер виртуальной сети узла) основной системы.
Настройки адаптера vboxnet0 в основной системе:
# ip addr show dev vboxnet0
5: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UNKNOWN qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
inet6 fe80::800:27ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
Настройки сетевого адаптера в виртуальной машине:
# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state UP qlen 1000
link/ether 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.56.33/24 scope global eth1
inet6 fe80::a00:27ff:fefd:e5aa/64 scope link
valid_lft forever preferred_lft forever
Можно проверить командой ip neigh show dev vboxnet0, что в ARP-таблице основной системы нет записей
связанных с интерфейсом vboxnet0.
Откроем еще одну консоль на основной системе и запустим tcpdump:
# tcpdump -ne -i vboxnet0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
Запустим ping виртуальной машины с основной системы:
# ping -c 1 192.168.56.33 PING 192.168.56.33 (192.168.56.33) 56(84) bytes of data. 64 bytes from 192.168.56.33: icmp_req=1 ttl=64 time=1.06 ms --- 192.168.56.33 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.067/1.067/1.067/0.000 ms
В ARP-таблице основной системы появилась запись об IP-адресе виртуальной машины:
# ip neigh show dev vboxnet0 192.168.56.33 lladdr 08:00:27:fd:e5:aa STALE
Вывод tcpdump:
# tcpdump -ne -i vboxnet0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:16:29.465780 0a:00:27:00:00:00 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806),
length 42: Request who-has 192.168.56.33 tell 192.168.56.1, length 28
12:16:29.466786 08:00:27:fd:e5:aa > 0a:00:27:00:00:00, ethertype ARP (0x0806),
length 42: Reply 192.168.56.33 is-at 08:00:27:fd:e5:aa, length 28
12:16:29.466815 0a:00:27:00:00:00 > 08:00:27:fd:e5:aa, ethertype IPv4 (0x0800),
length 98: 192.168.56.1 > 192.168.56.33: ICMP echo request, id 5284, seq 1, length 64
12:16:29.467934 08:00:27:fd:e5:aa > 0a:00:27:00:00:00, ethertype IPv4 (0x0800),
length 98: 192.168.56.33 > 192.168.56.1: ICMP echo reply, id 5284, seq 1, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
Каждая запись о
Таким образом, основная система для того, чтобы отправить стандартный эхо-запрос виртуальной машине,
предварительно по
Работа tcpdump была прервана комбинацией клавиш Ctrl+C. Перед завершением
работы tcpdump печатает статистику работы: количество перехваченных, полученных фильтром и отброшенных ядром
пакетов.
Для port. Например:
# tcpdump -n -i eth0 src port 53 # tcpdump -n -i eth0 tcp port 80
В первом случае будут отбираться пакеты, несущие единицы передачи транспортного уровня (TCP или UDP), в которых
порт-источник установлен в 53. Во втором случае — пакеты с TCP-сегментами, у которых порт источника или
назначения равен 80.
Обратимся с основной системы к WEB-серверу, установленному на виртуальной машине:
# lynx 192.168.56.33
предварительно, запустив tcpdump на другой консоли:
# tcpdump -n -i vboxnet0 host 192.168.56.33 and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235,
win 5840, options [mss 1460,sackOK,TS val 2934847 ecr 0,nop,wscale 7], length 0
15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [S.], seq 370041518,
ack 1209026236, win 5792, options [mss 1460,sackOK,TS val 3275261 ecr
2934847,nop,wscale 2], length 0
15:44:37.838157 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 1,
win 46, options [nop,nop,TS val 2934847 ecr 3275261], length 0
15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [P.], seq 1:222,
ack 1, win 46, options [nop,nop,TS val 2934847 ecr 3275261], length 221
15:44:37.839921 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 222,
win 1716, options [nop,nop,TS val 3275262 ecr 2934847], length 0
15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [P.], seq 1:446,
ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934847], length 445
15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 446,
win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [F.], seq 446,
ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934848], length 0
15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [F.], seq 222,
ack 447, win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 223, win 1716,
options [nop,nop,TS val 3275265 ecr 2934848], length 0
…
В данном примере клиент (192.168.56.1) c TCP-порта 41533 устанавливает соединение с сервером (192.168.56.33), слушающим на порту 80, делает запрос, получает необходимые данные и соединение завершается.
Заголовок TCP-сегмента, помимо номеров портов получателя и отправителя содержит ряд параметров :
seq ). Определяет порядок следования байт в отправляемом в сеть
потоке (смещение первого байта в сегменте относительно начала потока данных).ACK ). Максимальный номер байта в полученном сегменте увеличенный
на 1. Отправляемые отправителю подтверждения одновременно служат запросом новой порции данных.SYN - S, ACK , FIN -F , RST — R , PSH - P, URG )win ) — количество байтов данных, ожидаемых отправителем данного, начиная с байта
номер которого указан в поле ack . Для оптимизации передачи отправитель не ждет подтверждения для
каждого отправленного сегмента, а может отправить в сеть группу сегменту (но в байтах не больше размера окна).
Если качество канала плохое (много запросов на повторную передачу, теряются подтверждения) окно уменьшается, если
хорошее — окно увеличивается.Процесс установления двунаправленного соединения по протоколу TCP отражают первые три записи tcpdump:
SYN , начальным "случайным"
номером ( 1209026235 ), с которого будут нумероваться байты в отправляемом им потоке, максимальный размер
окна — объем, который разрешено передавать серверу без подтверждения от клиента (5840):15:44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235, win 5840, options [mss 1460,sackOK,TS val 2934847 ecr 0,nop,wscale 7], length
SYN и ACK , начальным
"случайным" номером ( 370041518 ), с которого будут нумероваться байты в отправляемом им
потоке, и максимальный размер окна для клиента (5792). Данный сегмент также является подтверждением получения
запроса на установление соединения от клиента:15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [S.], seq 370041518, ack 1209026236, win 5792, options [mss 1460,sackOK,TS val 3275261 ecr 2934847,nop,wscale 2], length
ACK , который является подтверждением
получения сегмента от сервера (далее tcpdump отображает относительные значения seq и ask ):15:44:37.838157 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 1, win 46, options [nop,nop,TS val 2934847 ecr 3275261], length
После этого соединение считается установленным.
В следующей паре записей клиент передает в секции данных сегмента серверу запрос протокола прикладного уровня (221 байт) и получает от сервера подтверждение его получения:
15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [P.], seq 1:222, ack 1, win 46, options [nop,nop,TS val 2934847 ecr 3275261], length 221 15:44:37.839921 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 222, win 1716, options [nop,nop,TS val 3275262 ecr 2934847], length 0
При этом флаг PSH (P) используется для оповещения отправляющей стороны о том, что принимающая готова
принимать данные.
Далее сервер отправляет данные клиенту (445 байт) и получает от него подтверждение получения:
15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [P.], seq 1:446, ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934847], length 445 15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 446, win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
Затем по инициативе сервера соединение завершается. Сервер шлет сегмент с установленным флагом FIN:
15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [F.], seq 446, ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934848], length 0
Клиент в ответ также отправляет сегмент с установленным флагом FIN ; данный сегмент одновременно
является подтверждением получения запроса на завершение соединения от сервера:
15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [F.], seq 222, ack 447, win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
Серверу остается лишь подтвердить получение FIN-сегмента от клиента.
15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 223, win 1716, options [nop,nop,TS val 3275265 ecr 2934848], length 0
21:56:14.381091 IP 192.168.56.1.54040 > 192.168.56.33.23: Flags [S], seq 2956835311, win 5840, options [mss 1460,sackOK,TS val 5164501 ecr 0,nop,wscale 7], length 0 21:56:14.381688 IP 192.168.56.33.23 > 192.168.56.1.54040: Flags [R.], seq 0, ack 2956835312, win 0, length 0
В данном примере с системы 192.168.56.1 делается попытка подключится к несуществующему TCP-сервису на узле
192.168.56.33. Удаленная система реагирует отправкой сегмента с установленным флагом (сброса
соединения).
21:55:16.925906 IP 192.168.56.1.41979 > 192.168.56.33.53: 6561+ A? www.tut.by. (28) 21:55:16.926615 IP 192.168.56.33 > 192.168.56.1: ICMP 192.168.56.33 udp port 53 unreachable, length 64
В данном примере сделана попытка отправить UDP-
Беспорядочный (promiscuous) режим — режим работы сетевого адаптера, при котором принимаются все фреймы, а не те, которые предназначены данному узлу, как в обычном состоянии.
Сетевой монитор или анализатор (sniffer) — средство для перехвата и анализа сетевого трафика.
1.В среде VirtualBox запустите виртуальную машину (ВМ) с установленным Debian GNU\Linux и установленным HTTP-сервером с одной сетевой картой, предварительно установив тип сетевого подключения "Виртуальная сеть узла" .
Изучите процесс взаимодействия между HTTP-сервером, установленным на ВМ, и клиентом на основной системе:
1.1.Запустите на консоле ВМ утилиту tcpdump c параметрами -.
1.2.В основной системе запустите командный интерпретатор и используя утилиту telnet установите TCP
соединение с HTTP-сервером, слушающим на 80 порту ВМ:
# telnet <IP-адрес ВМ> 80
Затем отправьте ВМ запрос корневой страницы, закончив ввод двойным нажатием клавиши enter:
GET / HTTP/1.1 Host: <IP-адрес ВМ>
Сервер должен выдать ответ с кодом 200 (HTTP/1.1 200 OK)
1.3.Переключитесь в ВМ и, используя результаты работы tcpdump, последовательно изучите ход сетевого
соединения.
2.Для данного упражнения необходимо, чтобы в виртуальной машине с установленным Debian GNU\Linux были установлены HTTP и SSH-сервера. Сетевая карта виртуальной машины должна быть подключена к виртуальной сети узла VirtualBox.
2.1.Запустите на консоли виртуальной машины tcpdump таким образом, чтобы перехваченные пакеты в
низкоуровневом формате записывались в файл (
ping.ping.ssh (для Windows можно использовать putty или winscp ), подключитесь с основной системы к виртуальной машине и отключитесь).telnet, попробуйте подключиться с основной системы к виртуальной машине на порт
8080.nslookup (apt -get install dnsutils).ping.Затем прервите работу tcpdump комбинацией клавиш Ctrl+C.
2.2.Сконструируйте правила tcpdump, которые бы из полученного файла
2.2.1.Все
2.2.2.
2.2.3.Взаимодействие по протоколу TCP между основной системой и виртуальной машиной.
2.2.4.Взаимодействие между HTTP-клиентом и HTTP-сервером.
2.2.5.Взаимодействие между основной системой и TCP-портом 8080 виртуальной машины. Было ли это взаимодействие удачным?
2.2.6.Отобразите весь UDP-трафик, который присутствует в файле
2.2.7.Отобразите широковещательный трафик (с информацией уровня доступа к сети), который находится в файле
2.2.8.Отобразите ARP-трафик, который содержится в
3. В локальном сегменте сети (tcpdump и объяснить причину данной ситуации:
$ tcpdump -ne -r ex3.dump reading from file ex3.dump, link-type EN10MB (Ethernet) 16:20:38.558302 00:00:00:00:00:01 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.30 tell 192.168.6.5, length 28 16:20:38.580672 00:00:00:00:00:03 > 00:00:00:00:00:01, ethertype ARP (0x0806), length 42: Reply 192.168.6.30 is-at 00:00:00:00:00:03, length 28 16:20:38.639393 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 33887, seq 13729, length 8 16:20:38.654419 00:00:00:00:00:02 > 00:00:00:00:00:01, ethertype ARP (0x0806), length 42: Reply 192.168.6.30 is-at 00:00:00:00:00:02, length 28 16:20:38.683649 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 5362, seq 61839, length 8 16:20:38.709642 00:00:00:00:00:04 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.10 tell 192.168.6.4, length 28 16:20:38.729719 00:00:00:00:00:05 > 00:00:00:00:00:04, ethertype ARP (0x0806), length 42: Reply 192.168.6.10 is-at 00:00:00:00:00:05, length 28 16:20:38.748087 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 4309, seq 56734, length 8 16:20:38.770256 00:00:00:00:00:03 > 00:00:00:00:00:04, ethertype ARP (0x0806), length 42: Reply 192.168.6.10 is-at 00:00:00:00:00:03, length 28 16:20:38.803840 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 46657, seq 6367, length 8 16:20:38.829548 00:00:00:00:00:04 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 42: 192.168.6.4 > 192.168.6.10: ICMP echo request, id 6239, seq 43338, length 8 16:20:38.861968 00:00:00:00:00:05 > 00:00:00:00:00:04, ethertype IPv4 (0x0800), length 42: 192.168.6.10 > 192.168.6.4: ICMP echo reply, id 0, seq 0, length 8 16:20:38.885832 00:00:00:00:00:06 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.20 tell 192.168.6.21, length 28 16:20:38.914436 00:00:00:00:00:03 > 00:00:00:00:00:06, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:03, length 28 16:20:38.953113 00:00:00:00:00:04 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 42: 192.168.6.4 > 192.168.6.10: ICMP echo request, id 41141, seq 12273, length 8 16:20:38.978185 00:00:00:00:00:10 > 00:00:00:00:00:06, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:10, length 28 16:20:39.018692 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 15440, seq 26713, length 8 16:20:39.037768 00:00:00:00:00:05 > 00:00:00:00:00:04, ethertype IPv4 (0x0800), length 42: 192.168.6.10 > 192.168.6.4: ICMP echo reply, id 0, seq 0, length 8 16:20:39.073481 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 1117, seq 65455, length 8 16:20:39.197000 00:00:00:00:00:06 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 70: 192.168.6.21.21519 > 192.168.6.20.53: 28042 A? www.tut.by. (28) 16:20:39.252522 00:00:00:00:00:1a > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.20 tell 192.168.6.100, length 28 16:20:39.270199 00:00:00:00:00:03 > 00:00:00:00:00:1a, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:03, length 28 16:20:39.293142 00:00:00:00:00:10 > 00:00:00:00:00:1a, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:10, length 28 16:20:39.408039 00:00:00:00:00:1a > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 72: 192.168.6.100.21455 > 192.168.6.20.53: 29961 A? www.aport.ru. (30) 16:20:39.546045 00:00:00:00:00:06 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 70: 192.168.6.21.55962 > 192.168.6.20.53: 64123 A? www.tut.by. (28) 16:20:39.685004 00:00:00:00:00:1a > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 72: 192.168.6.100.30522 > 192.168.6.20.53: 41887 A? www.aport.ru. (30)
tcpdumptcpdumptcpdumpВ некоторых случаях для обнаружения проблем функционирования сетевого стека узла и сегментов сети используется анализ сетевого трафика. Существуют средства, которые позволяют отобразить (прослушать) и проанализировать работу сети на уровне передаваемых фреймов, сетевых пакетов, сетевых соединений, датаграмм и прикладных протоколов.
В зависимости от ситуации для диагностики может быть доступен как трафик узла, на котором производится прослушивание сетевого трафика, так и трафик сетевого сегмента, порта маршрутизатора и т. д. Расширенные возможности для перехвата трафика основаны на "беспорядочном" (promiscuous) режиме работы сетевого адаптера: обрабатываются все фреймы (а не только те, которые предназначены данному MAC-адресу и широковещательные, как в нормальном режиме функционирования).
В сети Ethernet существуют следующие основные возможности прослушивания трафика:
Существуют программы (сетевые мониторы или анализаторы, sniffer), которые реализуют функцию прослушивания сетевого трафика (в т.ч. в беспорядочном режиме), отображения его или записи в файл. Дополнительно ПО для анализа может фильтровать трафик на основе правил, декодировать (расшифровать) протоколы, считать статистику и диагностировать некоторые проблемы.
Консольная утилита tcpdump входит в состав большинства Unix-систем и позволяет перехватывать и
отображать сетевой трафик . Утилита использует libpcap, переносимую
C/C++ библиотеку для перехвата сетевого трафика.
Для установки tcpdump в Debian можно использовать команду:
# apt-get install tcpdump
Для запуска данной утилиты необходимо иметь права
tcpdump <опции> <фильтр-выражение>
Для вывода на консоль -i ):
# tcpdump -i eth0
Можно отключить преобразования IP адресов в доменные имена (т.к. при больших объемах трафика создается большое
число запросов к -n:
# tcpdump -n -i eth0
Для вывода данных канального уровня (например, mac адреса и прочее) - опция -e:
# tcpdump -en -i eth0
Вывод дополнительной информации (например, -v:
# tcpdump -ven -i eth0
Увеличение размера захватываемых пакетов (больше 68 байт по умолчанию) — опция -s с указанием
размера ( -s 0 — захватывать пакеты целиком):
# tcpdump -s 0
Запись в файл (непосредственно пакеты - "-w с указанием имени файла:
# tcpdump -w traf.dump
Чтение пакетов из файла — опция - r с указанием имени файла:
# tcpdump -r traf.dump
По умолчанию tcpdump работает в беспорядочном режиме. Ключ -p указывает tcpdump перехватывать только трафик, предназначенный данному узлу.
Дополнительную информацию по ключам и формате фильтров tcpdump можно получить в справочном
руководстве ( man tcpdump ).
Для выделения Ethernet-фреймов используются следующие конструкции tcpdump (общий вид):
tcpdump ether { src | dst | host } MAC_ADDRESS
где src — — host — src или , а также для выделения широковещательного трафика:
tcpdump ether broadcast
Например:
# tcpdump -n -i vlan0 ether src 0:2:b3:d8:d8:2c # tcpdump -n -e -i vlan0 ether broadcast
В первом случае выбираются с интерфейса vlan0 фреймы с указанным MAC-адресом источника. Во втором - выбирается широковещательный трафик на интерфейсе vlan0.
Фильтрация по IP адресам ( net — сеть, для указания mask ):
tcpdump { src | dst } { net | host }
Например:
# tcpdump -n -i eth0 src 192.168.66.1 # tcpdump -n -i eth0 host 192.168.66.1 # tcpdump -n -i eth0 src net 10.0.0.0 mask 255.0.0.0
В первом случае фильтруются
Фильтрация по IP протоколу:
tcpdump { arp | rarp | ip | tcp | udp | icmp }
Например, выбирать
# tcpdump -n -i eth0 icmp
Сложные фильтры могут содержать множество примитивов, связанных между собой с использованием логических
операторов and, or и not.
Например: host 192.168.12.5 and host 192.168.13.4.
Используем хостовую систему и виртуальную машину с сетевым адаптером, настроенным на виртуальную сеть узла. Установим на сетевом адаптере виртуальной машины IP-адрес из той же подсети, что и на адаптер vboxnet0 (адаптер виртуальной сети узла) основной системы.
Настройки адаптера vboxnet0 в основной системе:
# ip addr show dev vboxnet0
5: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UNKNOWN qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
inet6 fe80::800:27ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
Настройки сетевого адаптера в виртуальной машине:
# ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state UP qlen 1000
link/ether 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.56.33/24 scope global eth1
inet6 fe80::a00:27ff:fefd:e5aa/64 scope link
valid_lft forever preferred_lft forever
Можно проверить командой ip neigh show dev vboxnet0, что в ARP-таблице основной системы нет записей
связанных с интерфейсом vboxnet0.
Откроем еще одну консоль на основной системе и запустим tcpdump:
# tcpdump -ne -i vboxnet0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
Запустим ping виртуальной машины с основной системы:
# ping -c 1 192.168.56.33 PING 192.168.56.33 (192.168.56.33) 56(84) bytes of data. 64 bytes from 192.168.56.33: icmp_req=1 ttl=64 time=1.06 ms --- 192.168.56.33 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.067/1.067/1.067/0.000 ms
В ARP-таблице основной системы появилась запись об IP-адресе виртуальной машины:
# ip neigh show dev vboxnet0 192.168.56.33 lladdr 08:00:27:fd:e5:aa STALE
Вывод tcpdump:
# tcpdump -ne -i vboxnet0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:16:29.465780 0a:00:27:00:00:00 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806),
length 42: Request who-has 192.168.56.33 tell 192.168.56.1, length 28
12:16:29.466786 08:00:27:fd:e5:aa > 0a:00:27:00:00:00, ethertype ARP (0x0806),
length 42: Reply 192.168.56.33 is-at 08:00:27:fd:e5:aa, length 28
12:16:29.466815 0a:00:27:00:00:00 > 08:00:27:fd:e5:aa, ethertype IPv4 (0x0800),
length 98: 192.168.56.1 > 192.168.56.33: ICMP echo request, id 5284, seq 1, length 64
12:16:29.467934 08:00:27:fd:e5:aa > 0a:00:27:00:00:00, ethertype IPv4 (0x0800),
length 98: 192.168.56.33 > 192.168.56.1: ICMP echo reply, id 5284, seq 1, length 64
^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel
Каждая запись о
Таким образом, основная система для того, чтобы отправить стандартный эхо-запрос виртуальной машине,
предварительно по
Работа tcpdump была прервана комбинацией клавиш Ctrl+C. Перед завершением
работы tcpdump печатает статистику работы: количество перехваченных, полученных фильтром и отброшенных ядром
пакетов.
Для port. Например:
# tcpdump -n -i eth0 src port 53 # tcpdump -n -i eth0 tcp port 80
В первом случае будут отбираться пакеты, несущие единицы передачи транспортного уровня (TCP или UDP), в которых
порт-источник установлен в 53. Во втором случае — пакеты с TCP-сегментами, у которых порт источника или
назначения равен 80.
Обратимся с основной системы к WEB-серверу, установленному на виртуальной машине:
# lynx 192.168.56.33
предварительно, запустив tcpdump на другой консоли:
# tcpdump -n -i vboxnet0 host 192.168.56.33 and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235,
win 5840, options [mss 1460,sackOK,TS val 2934847 ecr 0,nop,wscale 7], length 0
15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [S.], seq 370041518,
ack 1209026236, win 5792, options [mss 1460,sackOK,TS val 3275261 ecr
2934847,nop,wscale 2], length 0
15:44:37.838157 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 1,
win 46, options [nop,nop,TS val 2934847 ecr 3275261], length 0
15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [P.], seq 1:222,
ack 1, win 46, options [nop,nop,TS val 2934847 ecr 3275261], length 221
15:44:37.839921 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 222,
win 1716, options [nop,nop,TS val 3275262 ecr 2934847], length 0
15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [P.], seq 1:446,
ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934847], length 445
15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 446,
win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [F.], seq 446,
ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934848], length 0
15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [F.], seq 222,
ack 447, win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 223, win 1716,
options [nop,nop,TS val 3275265 ecr 2934848], length 0
…
В данном примере клиент (192.168.56.1) c TCP-порта 41533 устанавливает соединение с сервером (192.168.56.33), слушающим на порту 80, делает запрос, получает необходимые данные и соединение завершается.
Заголовок TCP-сегмента, помимо номеров портов получателя и отправителя содержит ряд параметров :
seq ). Определяет порядок следования байт в отправляемом в сеть
потоке (смещение первого байта в сегменте относительно начала потока данных).ACK ). Максимальный номер байта в полученном сегменте увеличенный
на 1. Отправляемые отправителю подтверждения одновременно служат запросом новой порции данных.SYN - S, ACK , FIN -F , RST — R , PSH - P, URG )win ) — количество байтов данных, ожидаемых отправителем данного, начиная с байта
номер которого указан в поле ack . Для оптимизации передачи отправитель не ждет подтверждения для
каждого отправленного сегмента, а может отправить в сеть группу сегменту (но в байтах не больше размера окна).
Если качество канала плохое (много запросов на повторную передачу, теряются подтверждения) окно уменьшается, если
хорошее — окно увеличивается.Процесс установления двунаправленного соединения по протоколу TCP отражают первые три записи tcpdump:
SYN , начальным "случайным"
номером ( 1209026235 ), с которого будут нумероваться байты в отправляемом им потоке, максимальный размер
окна — объем, который разрешено передавать серверу без подтверждения от клиента (5840):15:44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235, win 5840, options [mss 1460,sackOK,TS val 2934847 ecr 0,nop,wscale 7], length
SYN и ACK , начальным
"случайным" номером ( 370041518 ), с которого будут нумероваться байты в отправляемом им
потоке, и максимальный размер окна для клиента (5792). Данный сегмент также является подтверждением получения
запроса на установление соединения от клиента:15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [S.], seq 370041518, ack 1209026236, win 5792, options [mss 1460,sackOK,TS val 3275261 ecr 2934847,nop,wscale 2], length
ACK , который является подтверждением
получения сегмента от сервера (далее tcpdump отображает относительные значения seq и ask ):15:44:37.838157 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 1, win 46, options [nop,nop,TS val 2934847 ecr 3275261], length
После этого соединение считается установленным.
В следующей паре записей клиент передает в секции данных сегмента серверу запрос протокола прикладного уровня (221 байт) и получает от сервера подтверждение его получения:
15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [P.], seq 1:222, ack 1, win 46, options [nop,nop,TS val 2934847 ecr 3275261], length 221 15:44:37.839921 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 222, win 1716, options [nop,nop,TS val 3275262 ecr 2934847], length 0
При этом флаг PSH (P) используется для оповещения отправляющей стороны о том, что принимающая готова
принимать данные.
Далее сервер отправляет данные клиенту (445 байт) и получает от него подтверждение получения:
15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [P.], seq 1:446, ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934847], length 445 15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 446, win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
Затем по инициативе сервера соединение завершается. Сервер шлет сегмент с установленным флагом FIN:
15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [F.], seq 446, ack 222, win 1716, options [nop,nop,TS val 3275264 ecr 2934848], length 0
Клиент в ответ также отправляет сегмент с установленным флагом FIN ; данный сегмент одновременно
является подтверждением получения запроса на завершение соединения от сервера:
15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [F.], seq 222, ack 447, win 54, options [nop,nop,TS val 2934848 ecr 3275264], length 0
Серверу остается лишь подтвердить получение FIN-сегмента от клиента.
15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags [.], ack 223, win 1716, options [nop,nop,TS val 3275265 ecr 2934848], length 0
21:56:14.381091 IP 192.168.56.1.54040 > 192.168.56.33.23: Flags [S], seq 2956835311, win 5840, options [mss 1460,sackOK,TS val 5164501 ecr 0,nop,wscale 7], length 0 21:56:14.381688 IP 192.168.56.33.23 > 192.168.56.1.54040: Flags [R.], seq 0, ack 2956835312, win 0, length 0
В данном примере с системы 192.168.56.1 делается попытка подключится к несуществующему TCP-сервису на узле
192.168.56.33. Удаленная система реагирует отправкой сегмента с установленным флагом (сброса
соединения).
21:55:16.925906 IP 192.168.56.1.41979 > 192.168.56.33.53: 6561+ A? www.tut.by. (28) 21:55:16.926615 IP 192.168.56.33 > 192.168.56.1: ICMP 192.168.56.33 udp port 53 unreachable, length 64
В данном примере сделана попытка отправить UDP-
Беспорядочный (promiscuous) режим — режим работы сетевого адаптера, при котором принимаются все фреймы, а не те, которые предназначены данному узлу, как в обычном состоянии.
Сетевой монитор или анализатор (sniffer) — средство для перехвата и анализа сетевого трафика.
1.В среде VirtualBox запустите виртуальную машину (ВМ) с установленным Debian GNU\Linux и установленным HTTP-сервером с одной сетевой картой, предварительно установив тип сетевого подключения "Виртуальная сеть узла" .
Изучите процесс взаимодействия между HTTP-сервером, установленным на ВМ, и клиентом на основной системе:
1.1.Запустите на консоле ВМ утилиту tcpdump c параметрами -.
1.2.В основной системе запустите командный интерпретатор и используя утилиту telnet установите TCP
соединение с HTTP-сервером, слушающим на 80 порту ВМ:
# telnet <IP-адрес ВМ> 80
Затем отправьте ВМ запрос корневой страницы, закончив ввод двойным нажатием клавиши enter:
GET / HTTP/1.1 Host: <IP-адрес ВМ>
Сервер должен выдать ответ с кодом 200 (HTTP/1.1 200 OK)
1.3.Переключитесь в ВМ и, используя результаты работы tcpdump, последовательно изучите ход сетевого
соединения.
2.Для данного упражнения необходимо, чтобы в виртуальной машине с установленным Debian GNU\Linux были установлены HTTP и SSH-сервера. Сетевая карта виртуальной машины должна быть подключена к виртуальной сети узла VirtualBox.
2.1.Запустите на консоли виртуальной машины tcpdump таким образом, чтобы перехваченные пакеты в
низкоуровневом формате записывались в файл (
ping.ping.ssh (для Windows можно использовать putty или winscp ), подключитесь с основной системы к виртуальной машине и отключитесь).telnet, попробуйте подключиться с основной системы к виртуальной машине на порт
8080.nslookup (apt -get install dnsutils).ping.Затем прервите работу tcpdump комбинацией клавиш Ctrl+C.
2.2.Сконструируйте правила tcpdump, которые бы из полученного файла
2.2.1.Все
2.2.2.
2.2.3.Взаимодействие по протоколу TCP между основной системой и виртуальной машиной.
2.2.4.Взаимодействие между HTTP-клиентом и HTTP-сервером.
2.2.5.Взаимодействие между основной системой и TCP-портом 8080 виртуальной машины. Было ли это взаимодействие удачным?
2.2.6.Отобразите весь UDP-трафик, который присутствует в файле
2.2.7.Отобразите широковещательный трафик (с информацией уровня доступа к сети), который находится в файле
2.2.8.Отобразите ARP-трафик, который содержится в
3. В локальном сегменте сети (tcpdump и объяснить причину данной ситуации:
$ tcpdump -ne -r ex3.dump reading from file ex3.dump, link-type EN10MB (Ethernet) 16:20:38.558302 00:00:00:00:00:01 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.30 tell 192.168.6.5, length 28 16:20:38.580672 00:00:00:00:00:03 > 00:00:00:00:00:01, ethertype ARP (0x0806), length 42: Reply 192.168.6.30 is-at 00:00:00:00:00:03, length 28 16:20:38.639393 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 33887, seq 13729, length 8 16:20:38.654419 00:00:00:00:00:02 > 00:00:00:00:00:01, ethertype ARP (0x0806), length 42: Reply 192.168.6.30 is-at 00:00:00:00:00:02, length 28 16:20:38.683649 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 5362, seq 61839, length 8 16:20:38.709642 00:00:00:00:00:04 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.10 tell 192.168.6.4, length 28 16:20:38.729719 00:00:00:00:00:05 > 00:00:00:00:00:04, ethertype ARP (0x0806), length 42: Reply 192.168.6.10 is-at 00:00:00:00:00:05, length 28 16:20:38.748087 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 4309, seq 56734, length 8 16:20:38.770256 00:00:00:00:00:03 > 00:00:00:00:00:04, ethertype ARP (0x0806), length 42: Reply 192.168.6.10 is-at 00:00:00:00:00:03, length 28 16:20:38.803840 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 46657, seq 6367, length 8 16:20:38.829548 00:00:00:00:00:04 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 42: 192.168.6.4 > 192.168.6.10: ICMP echo request, id 6239, seq 43338, length 8 16:20:38.861968 00:00:00:00:00:05 > 00:00:00:00:00:04, ethertype IPv4 (0x0800), length 42: 192.168.6.10 > 192.168.6.4: ICMP echo reply, id 0, seq 0, length 8 16:20:38.885832 00:00:00:00:00:06 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.20 tell 192.168.6.21, length 28 16:20:38.914436 00:00:00:00:00:03 > 00:00:00:00:00:06, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:03, length 28 16:20:38.953113 00:00:00:00:00:04 > 00:00:00:00:00:05, ethertype IPv4 (0x0800), length 42: 192.168.6.4 > 192.168.6.10: ICMP echo request, id 41141, seq 12273, length 8 16:20:38.978185 00:00:00:00:00:10 > 00:00:00:00:00:06, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:10, length 28 16:20:39.018692 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 15440, seq 26713, length 8 16:20:39.037768 00:00:00:00:00:05 > 00:00:00:00:00:04, ethertype IPv4 (0x0800), length 42: 192.168.6.10 > 192.168.6.4: ICMP echo reply, id 0, seq 0, length 8 16:20:39.073481 00:00:00:00:00:01 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 42: 192.168.6.5 > 192.168.6.30: ICMP echo request, id 1117, seq 65455, length 8 16:20:39.197000 00:00:00:00:00:06 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 70: 192.168.6.21.21519 > 192.168.6.20.53: 28042 A? www.tut.by. (28) 16:20:39.252522 00:00:00:00:00:1a > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.6.20 tell 192.168.6.100, length 28 16:20:39.270199 00:00:00:00:00:03 > 00:00:00:00:00:1a, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:03, length 28 16:20:39.293142 00:00:00:00:00:10 > 00:00:00:00:00:1a, ethertype ARP (0x0806), length 42: Reply 192.168.6.20 is-at 00:00:00:00:00:10, length 28 16:20:39.408039 00:00:00:00:00:1a > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 72: 192.168.6.100.21455 > 192.168.6.20.53: 29961 A? www.aport.ru. (30) 16:20:39.546045 00:00:00:00:00:06 > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 70: 192.168.6.21.55962 > 192.168.6.20.53: 64123 A? www.tut.by. (28) 16:20:39.685004 00:00:00:00:00:1a > 00:00:00:00:00:03, ethertype IPv4 (0x0800), length 72: 192.168.6.100.30522 > 192.168.6.20.53: 41887 A? www.aport.ru. (30)
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.