- 5 инструментов для мониторинга сети в Linux
- Старый добрый Ping
- EtherApe
- Tcpdump
- Wireshark
- Заключение
- Сравнение инструментов сканирования локальной сети
- Тестовая среда
- Результаты тестирования
- Выводы
- Top 3 IP Scanners for Linux
- 🚶♂️ 5 Утилит Linux для проверки сетевого подключения
- 1 telnet
- 2 ncat или nc
- 3 wget
- 4 curl
- 5 nmap
- Заключение
- Nmap — руководство для начинающих
5 инструментов для мониторинга сети в Linux
В данной статье мы посмотрим, что можно использовать из консольных инструментов и другого свободно распространяемого ПО. Знание нескольких простых команд и того, в каких случаях их использовать, поможет вам в будущем стать специалистом в области сетевой диагностики. Мы будем использовать для тестов Ubuntu 10.04, но все тестируемое так же хорошо работает и на других дистрибутивах.
Старый добрый Ping
EtherApe
EtherApe может быть установлена из Центра приложений Ubuntu. Данная программа использует библиотеки GNOME и libpcap для отображения визуальной карты всего сетевого трафика, проходящего через выбранный интерфейс. После установки значок EtherApe появится в меню Приложения / Система. Однако, когда мы ее запустили таким образом, мы не смогли открыть ни одного сетевого устройства, поскольку для этого необходимы права суперпользователя. Поэтому мы запустили EtherApe из командной строки, используя sudo :
Когда вы запустили программу, она должна начать строить графическое отображение трафика, проходящего через основной Ethernet-интерфейс. Вы можете выбрать другое устройство, если ваш компьютер имеет несколько сетевых карт, через меню Capture / Interfaces. EtherApe также может отображать данные из сохраненного pcap-файла и отображать трафик определенного протокола.
Tcpdump
Команда запуска tcpdump для захвата базового трафика может быть следующей:
$ sudo tcpdump s w pktfile.pcap
Wireshark
Wireshark предоставляет очень богатую информацию о захваченном трафике, а также позволяет использовать инструменты для фильтрации/отображения пакетов по любым критериям. На сайте Wireshark имеются ссылки на видео с инструкциями по использованию программы, которые помогут вам в ней быстро освоиться.
Заключение
На сайте «Путеводитель по программному обеспечению для Linux» вы найдете краткие описания и ссылки на сайты разработчиков как упомянутых в данной статье, так и других программ для мониторинга и администрирования сетей.
Сравнение инструментов сканирования локальной сети
Когда я работал в нескольких государственных организациях кавычкодавом, овощем пентестером, суровые бородатые дяди в свитерах учили меня использовать только Nmap для сканирования сети. Сменив место работы, Добби стал свободен от предрассудков и решил выбрать сканер самостоятельно на основании псевдо-объективных данных сравнения реального функционала популярных сканеров, которые смог найти в сети самостоятельно, или, спросив у коллег, какой их любимый сканер. Собственно, о результатах внутреннего холливара сравнения сетевых сканеров и решил написать статью. Объективность не гарантирую, но постарался сделать колличественный анализ. Кому интересно, что из этого вышло, добро пожаловать под кат.
Старый и опытный волк безопасник предложил свой любимый и привычный консольный Nmap. Ещё один наш выходец из «госухи», combonik, говорил, что разницы нету, опенсорсный или вендорский, главное — веб-интерфейс для работы. Ещё наш погонщик менеджер сказал, что вендорские сканеры — самые лучшие, аргументируя свои слова тем, что такие сканеры имеют постоянную поддержку, удобный интерфейс для работы и постоянные обновления.
Дабы сгладить наши противоречия, было решено провести блиц-тестирование сетевых сканеров уязвимостей. Холивар среди пентестеров Hacken привел нас к новой задаче — проведению сравнительной характеристики по результатам сканирования. Для проведения сравнения эффективности сканирования было выбрано четыре сканера: Rapid7 Nexpose, Tenable Nessus, OpenVAS 9 и Nmap. Их выбрали на основании аналитики интернет-публикаций и личного опыта. Лично я делал ставку на Nessus, но увы, не угадал.
Rapid7 Nexpose – это сканер уязвимостей, который выполняет активное сканирование IT-инфраструктуры на наличие ошибочных конфигураций, дыр, вредоносных кодов, и предоставляет рекомендации по их устранению. Под анализ попадают все компоненты инфраструктуры, включая сети, операционные системы, базы данных и web-приложения. По результатам проверки Rapid7 Nexpose в режиме приоритетов классифицирует обнаруженные угрозы и генерирует отчеты по их устранению. [2]
Tenable Nessus Scanner – это сканер, предназначенный для оценки текущего состояния защищённости традиционной ИТ-инфраструктуры, мобильных и облачных сред, контейнеров и т.д. По результатам сканирования выдаёт отчёт о найденных уязвимостях. Рекомендуется использовать, как составную часть Nessus Security Center. [3]
OpenVAS — это сканер уязвимостей с открытым исходным кодом. OpenVAS предназначен для активного мониторинга узлов вычислительной сети на предмет наличия проблем, связанных с безопасностью, оценки серьезности этих проблем и для контроля их устранения. Активный мониторинг означает, что OpenVAS выполняет какие-то действия с узлом сети: сканирует открытые порты, посылает специальным образом сформированные пакеты для имитации атаки или даже авторизуется на узле, получает доступ к консоли управления, и выполняет на нем команды. Затем OpenVAS анализирует собранные данные и делает выводы о наличии каких-либо проблем с безопасностью. Эти проблемы, в большинстве случаев касаются установленного на узле необновленного ПО, в котором имеются известные и описанные уязвимости, или же небезопасно настроенного ПО. [1,6]
Nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем.[4,5]
Тестовая среда
Для проведения тестирования я собрал тестовую сеть на VMware Workstation 12 Pro в схему, которая представлена на рис. 1.
Nessus Scanner запускался в режиме «Basic Network Scanning». [3]
Rapid 7 Nexpose запускался в режиме «Full audit without Web Spider». [2]
OpenVAS 9 запускался в режиме «default». [1,6]
Nmap запускался двумя командами: [4,5]
Результаты тестирования
Nexpose обнаружил 527 уязвимости (см. Диаграмма 1), из них:
Репорт
167 – получили статус “critical” — уязвимости необходимо закрывать в первую очередь.
349 – получили статус “severe” — уязвимости сложны в эксплуатации, но могут привести к тяжёлым последствиям.
46 – получили статус “moderate” — найденные уязвимости могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки.
Найдены уязвимости не только тестированных систем, но и потенциальные уязвимости в системе виртуализации.
Tenable Nessus обнаружил 168 уязвимостей (см. Диаграмма 2), из них:
Репорт
3 – получили статус “critical”
9 – получили статус “high”
33 – получили статус “medium”
5 – получили статус “low”
118 получили статус “info”
Уязвимости уровня “critical” и “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” и “info” — могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
OpenVAS 9 обнаружил 53 уязвимости (см. Диаграмма 3), из них:
Репорт
Результаты срабатывания IDS
16 – получили статус “high”
33 – получили статус “medium”
4 – получили статус “low”
Уязвимости уровня “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
Отдельно следует отметить полученные результаты с помощью сканера Nmap. Сканирование проводилось двумя командами, которые описывались выше. Результатом выполнения стал вывод информации об операционной системе, открытых сервисах и найденные возможные уязвимые сервисы и ссылки.
Использование скрипта “vuln” определило следующие типы уязвимостей:
Выводы
Для формирования выводов я применил количественный метод оценки по суммарному количеству найденных уязвимостей. В результате выяснилось, что наибольшую глубину сканирования проводит Nexpose. Довольно слабо отработал Nessus, так как в режиме сканирования сети выдал много служебных данных о системах и сервисах, которые только дают информацию для аналитики. С очень слабой стороны показал себя сканнер OpenVAS 9 с последними обновлениями. Отдельного слова требует Nmap – очень хороший инструмент для проведения аналитического тестирования с возможностью расширения с помощью NSE-скриптов.
Во время тестирования IDS Suricata обнаружила сканнеры NMap и OpenVAS.
Данное тестирование не является каноничным, как например, тесты Gartner или NSS Labs. Но не смотря на это, думаю, статья будет актуальна для специалистов в сфере администрирования систем и технического аудита.
P.S. А для чего это всё делалось?
Необходимо было принять на вооружение выбрать сканер для компании Hacken. Кроме того, проведение сканирования внутренней сети регламентировано стандартами управления информационной безопасности в коммерчиских организациях, банковской, энергетической и прочих сферах деятельности. Сканирование сети необходимо проводить не только для получения сертификации для организации, но и для управления уязвимостями в информационно-телекоммуникационной системе, контроля обновления операционных систем и другие не менее важные задачи по управлению информационной безопасностью. [8, 11]
Top 3 IP Scanners for Linux
Unlike port scanners, which scan for open ports, IP scanners simply try to find hosts that are alive on a network. If you are searching for IP scanners for Windows, you will surely find an abundant supply of them. In Linux, however, you may be searching a little harder to find a quality, easy to use IP scanner. Here is a list of the 3 best IP scanners for Linux, rated on speed and usability.
Ubuntu: sudo apt-get install arp-scan
OpenSuse (12.1): wget http://download.opensuse.org/repositories/security/openSUSE_12.1/i586/arp-scan-1.8-1.1.i586.rpm
The easiest way to scan the network you are in is to run any of the following commands (they all do the same thing):
sudo arp-scan 192.168.1.0/24 #Scans 192.168.1.0 255.255.255.0
sudo arp-scan 192.168.1.1-192.168.1.254 #Scans the obvious range
You will see results like this:
192.168.1.10 00:0c:29:a4:16:48 VMware, Inc.
192.168.1.11 00:0e:2e:3a:c1:2d Edimax Technology Co., Ltd.
192.168.1.20 00:e0:81:31:97:47 TYAN COMPUTER CORP.
Total Time: 1.381 seconds
Ubuntu: sudo apt-get install nmap
OpenSuse: sudo zypper install nmap
To scan for alive hosts on a network, run any of the following commands (they all do the same thing):
You will see results like this:
Host 192.168.1.11 is up (0.0089s latency).
MAC Address: 00:0E:2E:3A:C1:2D (Edimax Technology Co.)
Host 192.168.1.20 is up (0.00063s latency).
MAC Address: 00:E0:81:31:97:47 (Tyan Computer)
Host 192.168.1.21 is up (0.00099s latency).
MAC Address: 00:E0:81:31:45:26 (Tyan Computer)
Total Time: 1.82 seconds
3. Angry IP Scanner – This tool, perhaps better know to Windows users, is also available on Linux, as a Java application. I rated Angry IP Scanner #3 because it is significantly slower than arp-scan and nmap, however, it has a nice and simple GUI that many people find intuitive. To check if you have Java installed, run this command:
To install Java, run this command:
Ubuntu : sudo apt-get install openjdk-6-jre
OpenSuse: sudo zypper install java-1_6_0-openjdk
You can download the Angry IP Scanner here:
Ubuntu: wget http://sourceforge.net/projects/ipscan/files/ipscan3-binary/3.0-beta6/ipscan_3.0-beta6_i386.deb
OpenSuse: wget http://sourceforge.net/projects/ipscan/files/ipscan3-binary/3.0-beta6/ipscan-3.0_beta6-2.i386.rpm
There are 32 and 64 bit Deb and RPM files for Debian/Ubuntu and Fedora/RedHat/Suse/Mandriva. Angry IP Scanner is one of the few IP scanners for Linux that has a nice GUI. It’s very simple to use. Simply enter the range of IP addresses you want to scan and click Start:
Total Time: 25.9 seconds
As you can see, there are several high quality and fast IP scanners for Linux. If you have a favorite that isn’t listed here, feel free to leave a comment.
🚶♂️ 5 Утилит Linux для проверки сетевого подключения
Хотите знать, как проверить соединение между двумя конечными точками сети?
Одной из распространенных задач для сетевиков является проверка возможности соединения для устранения проблем с сетью.
Это может быть что-то вроде того, что приложение не может подключиться к серверной службе, не может извлечь данные из внешнего URL-адреса, или проверить, открыт ли поток и т. д.
Как бы то ни было, вам помогут следующие утилиты / команды.
Они протестированы на CentOS 7.x, и я не вижу причин им не сработать также на другом дистрибутиве Linux.
Давайте исследуем их по порядку…
1 telnet
Одна из широко используемых команд для проверки необходимых подключений между серверами – IP-адресом другого сетевого устройства.
Синтаксис команды прост.
Допустим, вы хотите проверить, можете ли вы подключиться к порту 8080 по IP-адресу 10.0.0.1; тогда команда будет такой:
Если проблема с подключением отсутствует, вы должны увидеть сообщение о подключении.
В большинстве случаев telnet должен помочь.
Однако, если вам нужен какой-то другой вариант, вот несколько альтернатив telnet.
2 ncat или nc
Ncat (a.k.a. nc) – мощная сетевая утилита со многими функциями, такими как привязка и принятие соединения, удаленное выполнение команд, запись и чтение данных и т. д.
Она работает как на IPv4, так и на IPv6.
Чтобы выполнить простой тест, дабы проверить, открыт порт или нет, выполните следующее:
Давайте рассмотрим пример тестирования порта 443 на itsecforu.ru
Как уже упоминалось, вы также можете использовать nc для привязки соединения для прослушивания определенного порта.
Это может быть удобно, если у вас не запущены реальные службы, но вы хотите убедиться, что соединение существует.
Чтобы начать прослушивание порта:
Это свяжет порт с заданным номером.
Если ncat не установлен, вы можете сделать это с помощью yum install nc на серверах CentOS / RHEL.
Полезные статьи о использовании и описании команды netcat:
3 wget
wget – полезная команда для загрузки / тестирования HTTP, HTTPS и FTP.
Если вы работаете веб-инженером или часто сталкиваетесь с проблемами, связанными с Интернетом, то wget – ваш надежный товарищ и друг.
Тестирование с использованием wget простое и быстрое.
Вот пример тестирования tools.itsecforu.ru
Если он показывает connected, значит, проблема с подключением отсутствует.
4 curl
Curl – это многоцелевой инструмент.
Знаете ли вы, что вы можете использовать подключение по telnet к порту с помощью curl?
Ну, теперь вы знаете. 🙂
Ниже приведен рабочий пример.
И, когда нет проблем с портом прослушивания или брандмауэром, вы увидите, что-то вроде такого вывода.
Вы также можете использовать curl для загрузки данных. Он поддерживает несколько протоколов – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER и т. д.
Интересные статьи про инструмент Curl
5 nmap
О нем мы говорили тут миллион раз 🙂
И наверное этот инструмент не нуждается в представлении, но всеже.
Популярный инструмент с сотнями функций.
Часто он рассматривается как инструмент безопасности.
Nmap позволяет тестировать один IP / порт или в диапазоне.
Чтобы проверить один порт
Пример тестирования порта 443 на siterelic.com
Посмотрите на столбец состояния.
Если вы видите open, значит, соединение в порядке.
И, если состояние filtered, это означает, что подключение не существует.
Некоторые полезные статьи по Nmap
Заключение
Telnet постепенно отключается в последней версии Linux.
Но всегда есть вышеупомянутые альтернативы telnet.
Nmap — руководство для начинающих
Многие слышали и пользовались замечательной утилитой nmap. Ее любят и системные администраторы, и взломщики. Даже Голливуд знает про нее — в фильме «Матрица» при взломе используется nmap.
nmap — это аббревиатура от «Network Mapper», на русский язык наиболее корректно можно перевести как «сетевой картограф». Возможно, это не лучший вариант перевода на русский язык, но он довольно точно отображает суть — инструмент для исследования сети и проверки безопасности. Утилита кроссплатформенна, бесплатна, поддерживаются операционных системы Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X.
Рассмотрим использование утилиты в Debian. В стандартной поставке дистрибутива nmap отсутствует, установим его командой
# aptitude install nmap
Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей, вызов nmap выглядит следующим образом:
Для опытов возьмем специальный хост для экспериментов, созданный самими разработчиками nmap — scanme.nmap.org. Выполним от root’а
Ключи сканирования задавать необязательно — в этом случае nmap проверит хост на наличие открытых портов и служб, которые слушают эти порты.
Запустим командой:
Через несколько секунд получим результат:
Interesting ports on scanme.nmap.org (74.207.244.221):
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Ничего необычного, ssh на стандартном порту и http на 80. Nmap распознаёт следующие состояния портов: open, filtered, closed, или unfiltered. Open означает, что приложение на целевой машине готово для принятия пакетов на этот порт. Filtered означает, что брандмауэр, фильтр, или что-то другое в сети блокирует порт, так что Nmap не может определить, является ли порт открытым или закрытым. Closed — не связанны в данный момент ни с каким приложением, но могут быть открыты в любой момент. Unfiltered порты отвечают на запросы Nmap, но нельзя определить, являются ли они открытыми или закрытыми.
Хинт: Если во время сканирования нажать пробел — можно увидеть текущий прогресс сканирования и на сколько процентов он выполнен. Через несколько секунд получаем ответ, в котором пока что интересна строчка Device type:
Вообще, точную версию ядра средствами nmap определить невозможно, но примерную дату «свежести» и саму операционную систему определить можно. Можно просканировать сразу несколько хостов, для этого надо их перечислить через пробел:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
Service Info: OS: Linux
Прогресс налицо — мы узнали точные названия используемых служб и даже их версии, а заодно узнали точно, какая операционная система стоит на сервере. С расшифровкой никаких проблем не возникает, все вполне понятно.
Nmap выведет очень много информации, я не стану приводить пример. Сканирование может длится довольно долго, занимая несколько минут.
Сканирование проходит довольно быстро, так как по сути это обычный ping-тест, отвечает ли хост на ping. Следует учесть, что хост может не отвечать на ping из-за настроек фаерволла. Если нужный участок сети нельзя ограничить маской, можно указать диапазон адресов, с какого и по какой надо провести сканирование. Например, есть диапазон адресов с 192.168.1.2 до 192.168.1.5. Тогда выполним:
Ответ будет выглядеть так:
Host 192.168.1.2 is up (0.0023s latency)
Host 192.168.1.3 is up (0.0015s latency)
Host 192.168.1.4 is up (0.0018s latency)
Host 192.168.1.5 is up (0.0026s latency)
В моем случае все ip в данный момент были в сети.
Это далеко не все возможности nmap, но уместить их в рамках одной статьи несколько сложновато.
Если вам ближе GUI — есть замечательная утилита Zenmap — графическая оболочка для nmap, умеющая заодно и строить предполагаемую карту сети.
Хочу предупредить, что сканирование портов на удаленных машинах может нарушать закон.
UDPInflame уточнил, что сканирование портов все-таки не является противозаконным.