Лабораторная работа №1

Цель работы

Подготовительная часть

Для подготовки к лабораторной работе необходимо:

Теоретическая часть

Ping

Утилита ping используется для проверки соединений в сетях на основе TCP/IP. Она отправляет указанному узлу сети сообщения типа Echo Request и фиксирует поступающие ответы типа Echo Reply по протоколу ICMP. Время между отправкой запроса и получением ответа позволяет определить двусторонние задержки (RTT, от англ. Round Trip Time) по маршруту и частоту потери пакетов, то есть косвенно определить загруженность каналов передачи данных и промежуточных устройств.

Полное отсутствие ICMP-ответов может также означать, что удалённый узел (или какой-либо из промежуточных маршрутизаторов) игнорирует ICMP Echo Request или блокирует ICMP Echo Reply.

Перечислим наиболее используемые опции программы ping, поставляемой в составе ОС GNU/Linux:

Пример работы утилиты ping:

$ ping -c4 yandex.ru

PING yandex.ru (213.180.204.11) 56(84) bytes of data.

64 bytes from yandex.ru (213.180.204.11): icmp_req=1 ttl=58 time=21.8 ms

64 bytes from yandex.ru (213.180.204.11): icmp_req=2 ttl=58 time=16.3 ms

64 bytes from yandex.ru (213.180.204.11): icmp_req=3 ttl=58 time=9.19 ms

64 bytes from yandex.ru (213.180.204.11): icmp_req=4 ttl=58 time=29.6 ms

--- yandex.ru ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3008ms

rtt min/avg/max/mdev = 9.195/19.257/29.659/7.502 ms

Traceroute

Утилита traceroute предназначена для определения маршрутов следования пакетов в сетях TCP/IP.

Для определения промежуточных маршрутизаторов traceroute отправляет целевому узлу серию UDP-пакетов (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL на 1. Это поле в заголовке IP указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL равным 1, и поэтому первый же маршрутизатор отбрасывает пакет и возвращает обратно ICMP-сообщение типа Time Exceeded, указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на экран). Затем traceroute повторяет отправку серии пакетов, но уже с TTL равным 2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их ко второму маршрутизатору. Второй маршрутизатор, получив пакеты с TTL равным 1, так же возвращает Time Exceeded. Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При получении ответа от этого узла, либо после достижения максимального числа промежуточных узлов (хопов), процесс трассировки завершается.

На оконечном хосте пакет с TTL равным 1 не отбрасывается и не вызывает ICMP-сообщения типа Time Exceeded.

Утилита traceroute входит в поставку большинства современных сетевых операционных систем. В системах Microsoft Windows эта программа носит название tracert, а в системах GNU/Linux, *BSD, Cisco IOS и Mac OS — traceroute. Перечислим наиболее используемые опции программы traceroute:

Пример работы утилиты traceroute:

# traceroute -I mephi.ru

traceroute to mephi.ru (80.250.160.250), 30 hops max, 60 byte packets

1 router.lan (192.168.1.1) 2.061 ms 2.335 ms 2.692 ms

2 mo-bb-Po4.msk.corbina.net (195.14.54.84) 19.478 ms 20.360 ms 21.163 ms

3 mo-crs-be4.corbina.net (78.107.184.23) 21.558 ms 21.856 ms 21.993 ms

4 net310-gw.corbina.net (195.14.59.38) 22.530 ms 22.931 ms 23.349 ms

5 m9-ix.msk.runnet.ru (193.232.244.44) 25.179 ms 25.298 ms 26.163 ms

6 * * *

7 m9-2-gw.msk.runnet.ru (194.85.40.214) 7.502 ms 6.996 ms 6.748 ms

8 * * *

9 www.mephi.ru (80.250.160.250) 5.447 ms 5.628 ms 6.174 ms

Netcat

Утилита netcat (nc) позволяет устанавливать соединения и передавать данные по протоколам TCP и UDP путем связывания стандартного ввода с сетевым выводом, а также сетевого ввода со стандартным выводом.

В простейшем случае netcat вызывается так:

nc <адрес> <порт>

Перечислим наиболее используемые опции программы netcat:

Примечания:

  1. Рекомендуется дополнительно указывать опцию –v для большей информативности хода подключения.
  2. Начиная с версии 5.00, в составе сетевого сканера Nmap поставляется продвинутый аналог nc – ncat.

Сетевой сканер Nmap

Сетевой сканер Nmap представляет собой сканер портов, позволяющий определять состояние портов, соответствующие им службы, их версии и т.д. на удалённых сетевых узлах. Благодаря поддержке собственных сценариев, Nmap позволяет идентифицировать уязвимости в службах и, таким образом, является сканером безопасности.

Пример работы Nmap:

# nmap -T4 -F -sS scanme.nmap.org

Starting Nmap 5.51 ( http://nmap.org ) at 2012-02-19 23:22

Nmap scan report for scanme.nmap.org (74.207.244.221)

Host is up (0.30s latency).

Not shown: 97 closed ports

PORT   STATE    SERVICE

22/tcp open     ssh

25/tcp filtered smtp

80/tcp open     http

Nmap done: 1 IP address (1 host up) scanned in 3.82 seconds

Режимы сканирования

Самыми распространенными режимами сканирования являются TCP-, SYN-, UDP- и ICMP-сканирование:

По умолчанию используется SYN-сканирование, если у пользователя достаточно привилегий. В противном случае запускается TCP connect().

Указание портов для сканирования

По умолчанию Nmap сканирует 1000 самых распространенных портов# в случайном порядке. С ключом -F (от слова Fast) список  сканируемых портов сокращается до 100.

Задание конкретных портов возможно следующими способами:

Указание адресов для сканирования

Адреса для сканирования могут задаваться следующим образом:

Определение версии ОС и сервисов

Проводит серию тестов с помощью различных IP-протоколов с определёнными параметрами и сравнивает полученные результаты с базой данных

-A: Enables OS detection and Version detection, Script scanning and Traceroute

Просмотр и сохранение результатов

Для просмотра хода сканирования достаточно нажать любую клавишу:

Stats: 0:00:05 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Scan

SYN Stealth Scan Timing: About 1.20% done; ETC: 23:30 (0:04:07 remaining)

Порт по версии Nmap может иметь следующие шесть состояний:

Результаты сканирования можно сохранить в следующих основных форматах:

Анализатор сетевого трафика Tcpdump

Tcpdump является стандартным анализатором сетевого трафика (сниффером), позволяет просмотреть передаваемые по сети пакеты, их содержимое и сохранить дамп трафика в файл. Пример работы:

1. 000107 192.168.2.13 > 192.168.2.254: icmp: 192.168.2.13 udp port 3631 unreachable

2. 000313 192.168.2.254.53 > 192.168.2.13.3656:  4 ServFail 0/0/0 (22) (DF)

3. 000287 192.168.2.254 > 192.168.2.100: icmp: net 205.188.179.233 unreachable [tos 0xc0]

4. 010956 192.168.2.254.139 > 192.168.2.13.3661: P 1:5(4) ack 73 win 5840 NBT Packet (DF)

5. 276274 192.168.2.150.3053 > 192.168.2.254.53:  7+ A? ya.ru. (42)

6. 001162 192.168.2.100.32772 > 192.168.2.254.16007: . ack 73 win 5840 (DF)

Основные параметры:

После параметров можно указать выражение для фильтрации трафика. Примеры фильтров:

Фильтры можно группировать, используя экранированные скобки, а также ключевые слова and (логическое И) и or (логическое ИЛИ), к примеру:

tcpdump host 192.168.1.1 and \( port 80 or port 8080 \)

Рабочее задание

  1. Опробовать на практике сетевые утилиты ping и traceroute. IP-адреса лаборатории: 192.168.100.0/24, IP-адрес сервера - 192.168.100.1. Также доступен Интернет.
  2. С помощью сетевой утилиты nc передайте произвольный текстовой файл с одного компьютера на другой.
  3. Опробовать на практике сканер сетевой nmap. Просканируйте следующие компьютеры различными способами, включая определение операционной системы и версий сетевых служб: 127.0.0.1, 192.168.100.1. Убедитесь в результатах работы сканера nmap, используя анализатор трафика tcpdump.

Примечание: Во время проведения лабораторной работы рекомендуется использовать для tcpdump фильтр «port not nfs», т.к. основной трафик составляет сетевая файловая система NFS

Справочный материал

Ниже представлены основные команды Unix, которые необходимо знать:

В ходе выполнения лабораторной работы могут быть полезными следующие горячие клавиши:

Перенаправление стандартных потоков ввода-вывода осуществляется при помощи специальных символов.

Кроме того, существуют возможность совместной работы нескольких программ, стандартный вывод одной из которых непосредственно связывается со стандартным вводом другой без использования промежуточных временных файлов. Реализуется это посредством конвейеров (англ. pipe):

Список литературы

  1. http://nmap.org/book/man.html