Rambler's Top100
ГлавнаяО себеФоткиРазбиралкиМарафон
Карта

Используем SNORT

Как tcpdump. (слушаем сеть иными словами)

В целях отладки и тестирования интересно знать иногда, что у нас делается в сети. Для этого можно использовать и snort. (Микроскопом по гвоздям... однако, как иногда приятно микроскопом да по гвоздям :-) ). И так:

user@host# snort -vde

здесь, -v - позволяет вывести IP и TCP/UDP/ICMP заголовки;
-d - позволяет увидеть данные в пакетах;
-e - выводит заголовки канального уровня (MAC-адреса и пр.).
Выше указанная команда выдает что-то типа:


Log directory = /var/log/snort

Initializing Network Interface eth0

        --== Initializing Snort ==--
Decoding Ethernet on interface eth0

        --== Initialization Complete ==--

-*> Snort! <*-
Version 1.8.6 (Build 105)
By Martin Roesch (roesch@sourcefire.com, www.snort.org)
09/02-16:12:50.351602 0:80:48:89:5:3E -> 1:0:5E:0:0:2 type:0x800 len:0x3C
193.124.167.226 -> 224.0.0.2 ICMP TTL:128 TOS:0x0 ID:256 IpLen:20 DgmLen:28
Type:10  Code:0  ROUTER SOLICITATION
00 00 00 00                                      ....

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

09/02-16:12:50.601110 ARP who-has 193.124.164.182 tell 193.124.164.160

09/02-16:12:50.701639 ARP who-has 193.124.167.254 tell 193.124.164.141

09/02-16:12:50.716590 0:0:C0:DC:66:42 -> 1:0:5E:0:1:16 type:0x800 len:0x63
193.124.166.157:427 -> 224.0.1.22:427 UDP TTL:32 TOS:0x0 ID:8445 IpLen:20 DgmLen:85
Len: 65
01 01 00 39 00 00 65 6E 00 03 4C 9B 00 00 00 29  ...9..en..L....)
42 69 6E 64 65 72 79 2E 4E 6F 76 65 6C 6C 2F 2F  Bindery.Novell//
28 53 56 43 4E 41 4D 45 2D 57 53 3D 3D 53 48 41  (SVCNAME-WS==SHA
4D 41 4E 41 45 56 41 29 2F                       MANAEVA)/

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

09/02-16:12:51.035006 ARP who-has 193.124.163.208 tell 193.124.167.207

09/02-16:12:51.460994 ARP who-has 193.124.167.254 tell 193.124.162.238

09/02-16:12:51.600966 ARP who-has 193.124.164.182 tell 193.124.164.160

09/02-16:12:51.665363 0:0:C0:DC:66:42 -> 1:0:5E:0:1:16 type:0x800 len:0x63
193.124.166.157:427 -> 224.0.1.22:427 UDP TTL:32 TOS:0x0 ID:8701 IpLen:20 DgmLen:85
Len: 65
01 01 00 39 00 00 65 6E 00 03 4C 9B 00 00 00 29  ...9..en..L....)
42 69 6E 64 65 72 79 2E 4E 6F 76 65 6C 6C 2F 2F  Bindery.Novell//
28 53 56 43 4E 41 4D 45 2D 57 53 3D 3D 53 48 41  (SVCNAME-WS==SHA
4D 41 4E 41 45 56 41 29 2F                       MANAEVA)/

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

и так далее...

Как видно, по умолчанию используется eth0. Если нас больше интересует второй интерфейс, добавим просто "-i eth1" и получим требуемое.

Теперь, допустим, нам интересно поизучать общение двух машин по протоколу ftp. Пусть машинна server - сервер, а client - клиент. Тогда в командной строке, чтобы наблюдать только необходимый нам трафик, можно написать,
user@host# snort -vde '(dst host client and src host server and \
user@host# (src port 20 or 21)) or 
user@host# (src host client and dst host server and (dst port 20 or 21))'

Здесь, в первом логическом блоке, выделенном скобками, определяем пакеты направляющиеся от сервера с определенных портов к клиенту, во втором - пакеты от клиента к серверу на порты 20 и 21.
Так как нас интересуют и те, и другие пакеты, между блоками используется логичесакя связка 'or'.
С помощью примитивов dst host и src host задаем источник и пункт назначения.
С помощью примитивов src port и dst port указываем порты отправители и порты приемники пакетов, которые нас интересуют. Поскольку нас интересует пакет либо 20-го, либо 21-го порта, используем между примитивами логическую связку 'or'.
Логическим 'and' свяжем теперь примитивы, правила задаваемые которыми должны выполнятся для одного пакета.

После такого введения дальнейшую информацию можно уже черпать из ман-страниц.

Смотри еще:
ГлавнаяО себеФоткиРазбиралкиМарафон
Карта

Обратная связь: otokarev@ngs.ru

Rambler's Top100

Hosted by uCoz