CSI Linux. Полное руководство по OSINT. Часть 1. Domain Tools

Продолжаем подробно рассказывать вам о пользователях и группах в Linux и сегодня поговорим о том как пользоваться командами chown и chmod.

tc (Traffic Control)

Это набор инструментов для контроля сетевого трафика внутри Linux. tc предоставляет вам просто головокружительные возможности, от которых захватывает дух. Но ошибочно полагать, что конфигурация управления трафиком является простым процессом. Тем не менее понимание его сути позволит контролировать инженерию трафика прямо в Linux.

Руководство на этом ресурсе может показаться не совсем удобным, но на Debian Wiki есть более удачно структурированный материал с описанием нескольких способов использования tc.

Чаще всего tc используется для задержки пакетов сетевого подключения. С помощью этой программы вы можете управлять входящими и исходящими пакетами, осуществляя их задержку или даже полное удаление. Рассмотрим относительно простой пример с применением задержки при сетевом подключении. Сначала проверим показатели ping в отношении Google:

[email protected]:~ $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=13.6 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=10.9 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=15.5 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=13.8 ms

Не так уж плохо. Между нами и Google ~13.5 мс задержки. А предположим, мы захотели проверить, как будет работать приложение при более длительной задержке. В практику уже давно и прочно вошло стресс-тестирование приложений в условиях слабого Интернет-соединения. Если вы не знаете, как ваше приложение поведет себя в таких неоптимальных сетевых условиях, то вряд ли сможете предсказать, как оно будет функционировать во всех других случаях.

Вызовем задержку в 100 мс с помощью tc: 

sudo tc qdisc add dev eth0 root netem delay 100ms [email protected]:~ $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=110 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=116 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=119 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=113 ms

Превосходно! Теперь мы видим, что имитированная нами задержка в 100ms добавилась к имевшейся ранее. Не забудьте устранить это отклонение после тестирования:

sudo tc qdisc del dev eth0 root

Основные сетевые команды Unix-подобных операционных систем: соединение, домены

Для любой команды, которая существует на Unix-системах, вы можете просмотреть справку с полным описанием синтаксиса и всех допустимых параметров. Для этого в командной строке выполните команду:

man <command> где <command> — это название той команды, по которой вы хотите получить справку.

Например,

man ping

Для завершения выполнения любой команды, если она не завершилась автоматически, используйте сочетание клавиш “Ctrl+C”.

Все утилиты, приведенные ниже, должны быть установлены на вашу операционную систему прежде, чем использовать вызывающие их команды. В некоторых случаях они устанавливаются по умолчанию на ОС. Например, для использования whois на ОС CentOS нужно предварительно выполнить команду установки этой утилиты:

#yum install jwhois Соединение с сервером

Используйте следующие команды для проверки соединения с сервером.

ping — проверяет есть ли связь с удаленным компьютером, посылает ему так называемый ICMP ECHO_REQUEST.

Самый простой синтаксис:

ping <IP_адрес>

где <IP_адрес> — IP уддаленного компьютера, с которым вы хотите установить связь.

Если DNS работает корректно, то вместо IP_адреса допустимо использовать имя удаленного хоста. Например,

ping

nmap — утилита для сканирования портов и исследования сети.

Эту команду можно использовать для проверки, открыты ли порты на удаленном хосте. Например,

Читайте также:  Вышла iOS 13.4 beta 4 для разработчиков — что нового

nmap -p10-100 <ip>

проверяет, открыты и порты на хосте с IP-адресом ip в диапазоне от 10 до 100.

mtr — утилита для трассировки соединения с удаленным хостом. Например,

mtr

выводит следующий результат:

Сведения о домене

whois — утилита для получения подробной информации о домене. Например,

whois

выведет всю открытую информацию о домене Если эти сведения избыточны, используйте команду с параметрами. Например,

whois | grep -iE ‘nserver|status|nameser|state’

Используйте команду

man whois

для получения сведений обо всех параметрах утилиты.

dig — утилита, которая дает возможность обращаться из командной строки к серверу DNS.

Самый простой синтаксис команды:

dig <имя_домена>

Например,

dig

Команда выведет общую информацию о сервере имен домена

Опросите определенный DNS сервер командой с параметром

dig @

В полученном ответе к общей информации добавляются секции AUTHORITY SECTION и ADDITIONAL SECTION. В них содержатся  имена и IP-адреса серверов, которые обрабатывали запрос, соответственно.

Для просмотра всех ресурсных записей DNS сервера используйте следующий синтаксис команды

dig ANY <domain_name>

Например,

dig any

Для получения сведений о конкретной ресурсной записи используйте синтаксис

dig <record_name> <domain_name> где <record_name> — название ресурсной записи, <domain_name> — имя домена.

Например,

dig mx

выдаст информацию об mx-записях домена

Запросить данные о полной зоне домена можно, используя параметр AXFR. Например,

dig AXFR @

Результатом последней команды может быть ошибка, поскольку в домене эта информация конфиденциальна.

Используйте команду

dig +trace <domain_name>

для трассировки маршрута к домену через все промежуточные серверы имен.

host — утилита для выполнения разных запросов к DNS-серверу. Обычно используется для получения IP-адресов по имени домена. Например,

host

выдаст все возможные IP-адреса домена

Более подробная информация об использовании host содержится в справке man host.

Перезапуск сервисов

Используйте следующую команду для перезапуска сервиса на любой unix-подобной операционной системе:

Читайте также:  Linux: команды для настройки сети из консоли

service <service_name> start/restart/stop где <service_name> — имя сервиса. Как установить и использовать команды dig и nslookup в Linux? Как пользоваться nslookup | Losst Как пользоваться командой nslookup для DNS запросов — Команда nslookup. 7 практических примеров 10 часто используемых команд nslookup

Xargs: когда канала недостаточно

Некоторые команды не считываются из стандартного входа, канала или файла. Им, как правило, требуются аргументы. Кроме того, некоторые системы ограничивают количество аргументов в командной строке.

Например команда rm tmpdir/*.log завершится ошибкой, если файлов .log будет слишком много.

Итак, команда xargs решает сразу обе проблемы: преобразует стандартный поток ввода команды в литеральные аргументы и разбивает args на допустимое число, многократно запуская команду.

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

xargs touch <

Параметры

тип_записи_ресурса Указывает тип записи ресурса DNS. По умолчанию используется тип A. В следующей таблице перечислены допустимые значения для этой команды.

Значение Описание
A Указывает IP-адрес компьютера.
ANY Указывает все типы данных.
CNAME Указывает каноническое имя для псевдонима.
GID Указывает идентификатор группы для имени группы.
HINFO Указывает тип процессора и операционной системы компьютера.
MB Указывает имя домена почтового ящика.
MG Указывает члена почтовой группы.
MINFO Предоставляет сведения о почтовом ящике или списке рассылки.
MR Указывает имя домена переименования почты.
MX Указывает почтовый обменник.
NS Указывает сервер имен DNS для заданной зоны.
PTR Выдает имя компьютера, если запрос состоит из IP-адреса, иначе выдает указатель на другие сведения.
SOA Указывает начальную запись для зоны DNS.
TXT Выдает текстовую информацию.
UID Указывает идентификатор пользователя.
UINFO Выдает информацию пользователя.
WKS Выдает описание известных служб.

{help|?} Выводит краткое описание подкоманд nslookup.