Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СистПриклПрогЗабез(Хихловская).doc
Скачиваний:
25
Добавлен:
10.02.2016
Размер:
961.02 Кб
Скачать

Выходная информация, формируемая tcpdump

Информация, выдаваемая tcpdumpзависит от протокола.

Пример. С помощью клиента udphellocследует послать один байт в порт сервера времени дня в доменеnetcom.com:

bsd:$ udphelloc netcom4. netcom.com daytime

ThuSep16 15:11:49 1999

bsd:$

Хост netcom4 возвращает дату и время вUDР-дейтаграмме

18:12:23 bsd 1127>netcom4.netcom.com.daytime: nop1

18:12:23.389284 netcom4.netcom.com.daytime>bsd.1127:26

bsdпослалnetcom4UDР-дейтаграмму длиной 1 байт, аnetcom4 ответил дейтаграммой длиной 26 байт.

Протокол обмена ICMPпакетами аналогичен.

Трассировка одного запроса, генерируемого программой pingс хостаbsdна хостnetcom4:

1. 06:21:28.690320 bsd>netcom4.netcom.com:icmp:echo request

2. 06:21:29.400433 netcom4.netcom.com.daytime>bsd.1127:26

Строка icmp: означает, что этоICMP-дейтаграмма, а следующий за ней текст описывает тип этой дейтаграммы. Недостаткомtcpdumpявляется неполная поддержка вывода собственно данных. По умолчаниюtcpdumpвыводит только первые 68 байт, что достаточно для заголовков большинства протоколов. Авторыtcpdumpне всегда даютASCII-представление данных из-за возможности кражи паролей. Программы перевода выдачиtcpdumpв кодASCII распространены.

  1. # !/usr/bin/per l5

  2. $ tcpdump= “/usr/sbin/tcpdump”;

  3. open( ICPD, “$tcpdump@ARGV|” )||

  4. “не могу запустить tcpdump; \$!\\n”;

  5. $|=1;

  6. While (<TCPD>)

  7. {

  8. if (/^\t/)

  9. {

  10. chop;

  11. $str=S_;

  12. $str=-tr/\t//d;

  13. $str=pack “H*”, $str;

  14. $str=~tr/|x0-\x1f\x7f-\xff/./;

  15. printf “\t%-40s\t%S\n”, substr ($_,4), $str;

  16. }

  17. else

  18. {

  19. print;

  20. }

  21. }

Программа netstat

Ядро ОС ведет разнообразную статистику об объектах, имеющих отношение к сети. Эту информацию можно получить. Существует четыре вида запросов.

1.Активные сокеты

netstatдает информацию о разных типах сокетов, но интерес представляют только сокеты из адресных доменовinet(AF_INET) иUNIX(AF_LOKALилиAF_UNIX).netstataдает вывод всех типов сокетов или выбрать один тип, указав адресное семейство с помощью опции –f.

При необходимости получить сведения о TCP/ИДР сокеты, то следует вызыватьnetstatтак

Bsd: $ netstat –f inet

Active Internet connections

Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp 0 0 localhost.domain *.* listen

tcp 0 0 bsd domain *.* listen

udp 0 0 localhost.domain *.*

udp 0 0 bsd domain *.*

bsd:$netstat–afinet

При обращении к серверу эхо-контроля с помощью telnet:

Bsd: $telnetbsdecho, то появится соединение в состоянииESTABLISHED:

Proto Recv-Q Send-Q localAddress Foreign Address (state)

tcp 0 0 bsd.echo bsd.1035 ESTABLISHED

tcp 0 0 bsd.1035 bsd.echo ESTABLISHED

tcp0 0 *,echo*,*LISTEN

Т.к. соединение указано с локальной машиной

telnet– клиент подсоединился к порту 7 (порт эхо) и фактически использует его в качестве порта назначения, хост продолжает прослушивать этот порт. Это нормально, так как с точки зрения протоколаTCPсоединение – это 4 адреса : 2 локальныхIP– адреса и порта и 2 удалённыхIP– адреса и порта.inetdпрослушивает порт на универсальном «псевдоадресе»INADDP_ANY(*.echo), тогда какIP– адрес для установленного соединения равенbsd. Если завершить работу клиента (telnet) и снова запуститьnetstat, получим :

Proto

Recv – Q

Send – Q

Local Address

Foreign Address

(state)

tcp

0

0

bsd.1035

Bsd.echo

TIME_WAIT

Клиентная строка соединения находится в состоянии TIME-WAIT.