Основы TCPdump

Основы TCPdump

Сообщение Oleg65 » 11 окт 2018, 12:32

Tcpdump - это утилита командной строки позволяющая захватывать и анализировать проходящий сетевой трафик. Используется для устранения проблем в сети, а также как инструмент для обеспечения безопасности.
Это мощный и универсальный инструмент включающий в себя множество опций и фильтров. Поскольку это инструмент командной строки, то он идеально подходит для работы на удаленных серверах или устройствах без графического интерфейса для сбора данных, которые будут проанализированы позже. Он может запускаться в фоновом режиме или в виде запланированного задания в таких инструментах как cron.
Здесь будут рассмотрены наиболее распространенные функции tcpdump.

1. Установка

В большинстве дистрибутивов Linux Tcpdump уже установлен, поэтому скорее всего устанавливать его не придется. Проверьте, установлен ли tcpdump в вашей системе:
Код: выделить все
$ which tcpdump
/usr/sbin/tcpdump

Если tcpdump не установлен, то его можно установить с помощью менеджера пакетов дистрибутива. Например, в CentOS или Red Hat Enterprise Linux:
Код: выделить все
$ sudo yum install -y tcpdump

В Ubuntu и Debian:
Код: выделить все
$ sudo apt install tcpdum

Tcpdump необходима libpcap, библиотека для захвата сетевых пакетов. Если она не установлена, то при установке она будет добавлена автоматически, как зависимость.

2. Захват пакетов tcpdump

Для захвата пакетов 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)
...
---- 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

Tcpdump будет захватывать пакеты до получения сигнала прерывания Ctrl+C. В этом примере tcpdump захватил более 9000 пакетов. В данном случае tcpdump захватывал все проходящие пакеты. Для ограничения количества захваченных пакетов и остановки после этого 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.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-адреса и номера портов.
Теперь рассмотрим, что означает этот вывод.

3. Разбор формата вывода

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

Поля могут меняться в зависимости от типа пакета, это общий формат.
Первое поле, 08:41:13.729687, представляет временную метку принятого пакета в соответствии с локальными часами.
IP показывает протокол сетевого уровня - в данном случае IPv4. Пакеты IPv6 обознаются IP6.
Следующее поле, 192.168.64.28.22, это IP-адрес и порт отправителя. За ним следует IP-адрес и порт назначения, 192.168.64.1.41916.
После отправителя и адресата находится TCP флаг Flags[P.]. Типичные значения для этого поля по порядку Значение; Тип флага; Описание:
S SYN Запуск соединения
F FIN Запуск соединения
P PUSH Передача данных
R RST Сброс соединения
. ACK Подтверждение

Это поле может иметь комбинации этих значений, например [S.] для пакета SYN-ACK.
Далее - номера данных содержащихся в пакете. Для первого захваченного пакета это абсолютные номера. Последующие пакеты используют относительные номера. В этом примере последовательность составляет 196:568, что означает, что пакет этого потока содержит номера байтов от 196 до 568.
Далее следует число Ack: ack 1. В данном случае 1, поскольку это данные отправляющей стороны. Для стороны, получающей данные, это поле будет представлять следующий ожидаемый байт (данные) этого потока. Например, число Ack в этом потоке для следующего пакета будет 568.
Следующим полем является размер - 309, представляющее количество байтов доступных для приема буфером.
Наконец, мы видим размер пакета величиной 372, который представляет собой величину данных в байтах. Размер - это разница между последним и первым байтами по порядковым номерам.

4. Фильтрация пакетов

Как упоминалось выше, 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:
Код: выделить все
$ ping opensource.com
PING opensource.com (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 не показывает разрешения имен пакетов при разрешении имени opensource.com:
Код: выделить все
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: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


Хост

Ограничение захвата только пакетами, связанными с определенным хостом:
Код: выделить все
$ 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.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.

Порт

Фильтрация пакетов на основе сервиса или порта. Например, захват пакетов связанных с веб-сервисом (HTTP):
Код: выделить все
$ 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.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


IP отправителя/имя хоста

Можно фильтровать пакеты на основе целевого или IP-адреса отправителя, а так же имени хоста. Например, захват пакетов с хоста 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? opensource.com. (32)
10:02:15.220862 IP 192.168.122.98.39436 > 192.168.122.1.53: 20749+ AAAA? opensource.com. (32)
...
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

Обратите внимание, что tcpdumps захватил пакеты с 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.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 создавая более сложные выражения. Например, для фильтрации пакетов с 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.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.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. Это быстрый способ изучения всех сторон одного и того же потока.

5. Проверка содержимого пакета

В предыдущих примерах мы проверяем только заголовки пакетов, такие как отправитель, адресат, порты и т.д. Иногда это все, что необходимо для устранения проблем с сетевым подключением. Но иногда нужно проверить содержимое пакета, чтобы убедиться, что отправляемое сообщение содержит то, что нам нужно или что мы получили ожидаемый ответ. Чтобы просмотреть содержимое пакета tcpdump предоставляет два дополнительных флага: -X для вывода содержимого в шестнадцатеричном формате и ASCII или -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..<..@.@.....zb6.'....P...@......r............
............................
13:02:14.910734 IP 54.204.39.132.80 > 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
...
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: opensource.com
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, 23 Sep 2018 17:02:14 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 207
X-Content-Type-Options: nosniff
Location: https://opensource.com/
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://opensource.com/">here</a>.</p>
</body></html>
...
.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). Для зашифрованных соединений этот вывод менее полезен.

6. Сохранение снимков в файл

Еще одна полезная функция, предоставляемая 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 означает «захват пакетов» и является соглашением для файлов этого формата.
Как видно из этого примера, на экран ничего не выводится, а захват завершается после захвата 10 пакетов (опция -c10).
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: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

Поскольку пакеты больше не захватываются непосредственно из сетевого интерфейса, то для чтения файла 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: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 обеспечивает большую гибкость при захвате и анализе сетевого трафика. Если необходим графический инструмент для понимания сложных потоков обратите внимание на Wireshark. Одним из преимуществ Wireshark является то, что он может читать файлы .pcap, захваченные tcpdump. Вы можете использовать tcpdump для захвата пакетов на удаленном компьютере, который не имеет графического интерфейса и анализировать файл с результатами в Wireshark, но это уже другая тема.
Удачи! ;)
Аватар пользователя
Oleg65
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 863
Стаж: 3 года 9 месяцев 2 дня
Откуда: г.Коломна Моск.обл.
Благодарил (а): 72 раз.
Поблагодарили: 209 раз.

Основы TCPdump

Спонсор

Спонсор
 

Вернуться в Сети. Настройка и администрирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron