Table of Contents

Linux - это универсальная и безопасная операционная система, которая широко используется в сфере кибербезопасности благодаря своему открытому исходному коду. Однако начинающим пользователям может быть сложно использовать интерфейс командной строки (CLI) Linux для выполнения задач кибербезопасности. Цель данного руководства - ознакомить начинающих пользователей с основными и расширенными командами командной строки Linux CLI, полезными для целей кибербезопасности.

Основные команды Linux для кибербезопасности

Печать рабочего каталога

Команда pwd (print working directory) используется для отображения текущего рабочего каталога в CLI. Рабочий каталог - это каталог, в котором вы в данный момент находитесь в файловой системе. Эта команда полезна для навигации по файловой системе и понимания своего местоположения по отношению к другим каталогам. Например, если вы находитесь в каталоге home и хотите перейти в каталог documents, то можно воспользоваться следующими командами:

$ pwd
/home/user
$ cd documents
$ pwd
/home/user/documents

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

Список

Команда ls используется для вывода списка содержимого каталога в CLI. Команда выводит имена файлов и каталогов в текущем рабочем каталоге. Команда полезна для определения файлов и каталогов в определенном месте. Например, если необходимо просмотреть содержимое каталога documents, можно воспользоваться следующей командой:

$ ls documents
file1.txt file2.pdf file3.docx

В приведенном примере команда выводит список содержимого каталога documents, в котором находятся три файла: file1.txt, file2.pdf и file3.docx. Для получения списка содержимого текущего рабочего каталога можно также использовать команду без аргументов. Например:

$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos

В приведенном примере команда выводит список содержимого домашнего каталога, который содержит несколько подкаталогов, таких как Desktop, Documents, Downloads и т.д.

Изменить каталог

Команда cd (change directory) используется для изменения текущего рабочего каталога в CLI. Эта команда позволяет перемещаться по файловой системе и получать доступ к файлам, расположенным в разных местах. Например, если необходимо изменить текущий рабочий каталог на каталог документов, то можно воспользоваться следующей командой:

$ cd documents

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

$ cd /usr/local/bin

В приведенном примере команда изменяет текущий рабочий каталог на каталог /usr/local/bin, что является абсолютным путем. В качестве альтернативы для изменения рабочего каталога можно использовать относительный путь. Например:

$ cd ../..

В приведенном примере команда изменяет текущий рабочий каталог на два уровня вверх от текущего рабочего каталога. Обозначение “.” представляет собой родительский каталог, и его можно использовать для навигации по дереву каталогов.

Concatenate

Команда cat (concatenate) используется для отображения содержимого файла в CLI. Команда полезна для просмотра содержимого текстовых файлов, таких как файлы журналов или конфигурационные файлы. Например, если необходимо просмотреть содержимое файла с именем “file1.txt”, можно воспользоваться следующей командой:

$ cat file1.txt

В приведенном примере команда выводит содержимое файла “file1.txt”. С помощью этой команды можно также объединить несколько файлов и отобразить их содержимое в CLI. Например:

$ cat file1.txt file2.txt file3.txt

В приведенном примере команда выводит содержимое трех файлов: file1.txt, file2.txt и file3.txt. Также можно использовать команду с подстановочными знаками для объединения всех файлов, соответствующих определенному шаблону. Например:

$ cat *.txt

В приведенном примере команда выводит содержимое всех файлов с расширением “.txt” в текущем рабочем каталоге. Эта команда удобна для быстрого просмотра содержимого нескольких файлов, не открывая их по отдельности.

Глобальная печать регулярных выражений

Команда grep (глобальная печать регулярных выражений) используется для поиска определенных строк или шаблонов в файле или наборе файлов в CLI. Команда полезна для выявления закономерностей в лог-файлах или поиска определенной информации в конфигурационных файлах. Например, если необходимо найти все вхождения слова “error” в файле с именем “logfile.txt”, можно воспользоваться следующей командой:

$ grep "error" logfile.txt

В приведенном примере команда ищет все вхождения слова “error” в файле “logfile.txt” и выводит соответствующие строки в CLI. Для поиска более сложных шаблонов можно также использовать команду с регулярными выражениями. Например, если требуется найти все строки, содержащие слово, начинающееся с “p” и заканчивающееся “y”, можно использовать следующую команду:

$ grep "p.*y" logfile.txt

В приведенном примере команда ищет в файле “logfile.txt” все строки, содержащие слово, начинающееся с “p” и заканчивающееся “y”. Регулярное выражение “p.*y” соответствует любой строке, начинающейся на “p” и заканчивающейся на “y”, с любым количеством символов между ними. Эта команда полезна для поиска закономерностей в файлах журналов, которые могут помочь выявить угрозы безопасности или проблемы с производительностью.

Изменить режим

Команда chmod (change mode) используется для изменения прав доступа к файлу или каталогу в CLI. Эта команда необходима для защиты файлов и каталогов и контроля за тем, кто имеет к ним доступ. Разрешения представлены тремя цифрами, которые соответствуют соответственно владельцу, группе и другим. Цифры вычисляются по следующей формуле:

4 = read
2 = write
1 = execute

Например, если необходимо предоставить владельцу права на чтение и запись, а группе и другим - только на чтение файла с именем “file1.txt”, то можно воспользоваться следующей командой:

$ chmod 644 file1.txt

В приведенном примере команда устанавливает права доступа к файлу “file1.txt” на 644. Первая цифра (6) представляет собой права владельца - чтение и запись (4 + 2 = 6). Вторая цифра (4) представляет собой разрешение для группы - только чтение. Третья цифра (4) представляет собой права доступа для других, которые также доступны только для чтения.

Для изменения разрешений можно также использовать команду с буквами. Например, если необходимо предоставить владельцу и группе права на чтение и запись, а остальным - нет, для файла с именем “file2.txt” можно использовать следующую команду:

$ chmod ug=rw,o= file2.txt

В приведенном примере команда устанавливает права доступа к файлу “file2.txt” в ug=rw,o=, где “ug” означает владельца и группу, “r” - разрешение на чтение, а “w” - разрешение на запись. Знак “=” означает “установить права на”, а “o=” - “снять все права для других”. Эта команда полезна для контроля доступа к конфиденциальным файлам и каталогам и предотвращения несанкционированного доступа.

Расширенные команды Linux для обеспечения кибербезопасности

Network Mapper

Команда nmap - это мощный инструмент сканирования сети в CLI, который может быть использован для определения хостов и сервисов в сети, а также потенциальных уязвимостей. Команда может выполнять различные методы сканирования, включая обнаружение хостов, сканирование портов и обнаружение операционной системы.

Одним из наиболее простых способов использования nmap является сканирование одного IP-адреса или хоста. Например, для сканирования одного IP-адреса (192.168.1.1) на наличие открытых портов можно использовать следующую команду:

$ nmap 192.168.1.1

Приведенная выше команда выполнит сканирование TCP SYN на целевом IP-адресе и выдаст список открытых портов. В результате будут показаны открытые порты, а также служба, работающая на каждом порту, состояние порта (открыт/закрыт), а иногда и дополнительная информация, например, операционная система, работающая на целевом компьютере.

Nmap также может использоваться для одновременного сканирования нескольких хостов или IP-адресов. Например, для сканирования диапазона IP-адресов (192.168.1.1-255) на наличие открытых портов можно использовать следующую команду:

$ nmap 192.168.1.1-255

Приведенная выше команда просканирует все IP-адреса в диапазоне и вернет открытые порты и сервисы для каждой цели.

Помимо базового обнаружения хостов и сканирования портов, nmap может выполнять и более сложные операции, такие как определение служб и версий, обнаружение ОС и сканирование уязвимостей. Такие сканирования могут быть полезны для выявления потенциальных уязвимостей в сети и защиты ее от возможных атак.

TCP Packet Dumper

Команда tcpdump используется для захвата и анализа сетевого трафика в CLI, что позволяет устранять неполадки в сети, анализировать ее поведение и выявлять потенциальные угрозы безопасности. Команда перехватывает пакеты в реальном времени и может фильтровать их по различным критериям, таким как IP-адрес источника или назначения, протокол и порт.

Одним из основных способов использования tcpdump является захват всего сетевого трафика на определенном интерфейсе. Например, чтобы перехватить весь трафик на интерфейсе eth0, можно использовать следующую команду:

$ sudo tcpdump -i eth0

Приведенная выше команда перехватывает все пакеты на интерфейсе eth0 и отображает их в режиме реального времени в CLI. В выводе будут указаны IP-адреса источника и назначения, протокол и другая информация о каждом пакете.

Tcpdump также может быть использован для фильтрации пакетов по различным критериям. Например, чтобы перехватить все пакеты, отправленные на определенный IP-адрес или с него, можно воспользоваться следующей командой:

$ sudo tcpdump host 192.168.1.1

Приведенная выше команда перехватывает все пакеты, отправленные на IP-адрес 192.168.1.1 или с него, и отображает их в режиме реального времени в CLI. Вы также можете отфильтровать пакеты по протоколу (например, TCP, UDP), номеру порта или другим критериям.

Помимо захвата пакетов в режиме реального времени, tcpdump можно использовать для захвата пакетов в файл для последующего анализа. Например, чтобы перехватить все пакеты на интерфейсе eth0 и сохранить их в файл с именем “capture.pcap”, можно воспользоваться следующей командой:

$ sudo tcpdump -i eth0 -w capture.pcap

Приведенная выше команда перехватывает все пакеты на интерфейсе eth0 и сохраняет их в файл “capture.pcap” в формате pcap, который впоследствии может быть проанализирован с помощью таких инструментов, как Wireshark. Эта команда полезна для анализа поведения сети и выявления потенциальных угроз безопасности.

Состояние процесса

Команда ps отображает в CLI информацию о запущенных процессах в системе Linux, что позволяет выявить подозрительные процессы, которые могут быть запущены в системе и потенциально угрожать ее безопасности. Команда может отображать широкий спектр информации о запущенных процессах, включая идентификатор процесса (PID), пользователя, использование процессора и памяти, а также имя команды.

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

$ ps aux

Приведенная выше команда выводит список всех запущенных процессов в системе с указанием их PID, пользователя, использования процессора и памяти, а также имени команды. Эта команда полезна для получения общего представления о процессах, выполняющихся в системе, и выявления подозрительных процессов.

Ps также может быть использована для отображения информации о конкретном процессе или наборе процессов. Например, для отображения информации о процессе с определенным PID (например, PID 1234) можно использовать следующую команду:

$ ps -p 1234

Приведенная выше команда выведет информацию о процессе с PID 1234, включая его пользователя, использование процессора и памяти, а также имя команды. Также можно вывести информацию о множестве процессов, указав несколько PID.

Помимо отображения информации о запущенных процессах, ps можно использовать для мониторинга состояния процессов в режиме реального времени. Например, для мониторинга использования процессора и памяти конкретным процессом (например, PID 1234) в режиме реального времени можно использовать следующую команду:

$ ps -p 1234 -o %cpu,%mem

Приведенная выше команда отображает использование процессора и памяти процессом с PID 1234 в режиме реального времени, обновляя данные каждую секунду. Эта команда полезна для мониторинга производительности критических процессов и выявления потенциальных узких мест.

Сетевая статистика

Команда netstat выводит в CLI информацию об активных сетевых соединениях в системе Linux, что позволяет выявлять несанкционированные сетевые подключения и потенциальные угрозы безопасности. Команда может отображать широкий спектр информации об активных сетевых соединениях, включая локальный и удаленный адреса, используемый протокол (например, TCP, UDP) и состояние соединения.

Одно из самых простых применений netstat - вывод списка всех активных сетевых соединений в системе. Например, для отображения списка всех активных сетевых соединений можно использовать следующую команду:

$ netstat -a

Приведенная выше команда выводит список всех активных сетевых подключений в системе с указанием их локальных и удаленных адресов, используемого протокола и состояния подключения. Эта команда полезна для получения общего представления об активных сетевых подключениях в системе и выявления несанкционированных подключений.

Netstat также может использоваться для отображения информации о сетевых соединениях для конкретного протокола (например, TCP). Например, чтобы вывести список всех активных TCP-соединений в системе, можно воспользоваться следующей командой:

$ netstat -at

Приведенная выше команда выведет список всех активных TCP-соединений в системе с указанием их локальных и удаленных адресов, а также состояния соединения.

Помимо отображения информации об активных сетевых соединениях, netstat может использоваться для вывода сетевой статистики по конкретному протоколу (например, TCP). Например, для отображения статистики по всем TCP-соединениям в системе можно воспользоваться следующей командой:

$ netstat -st

Приведенная выше команда выводит статистику по всем TCP-соединениям в системе, включая количество активных соединений, количество соединений в каждом состоянии и количество возникших ошибок. Эта команда полезна для мониторинга общего состояния сети и выявления возможных проблем с производительностью.

Найти файлы

Команда find используется для поиска файлов и каталогов в системе Linux в CLI, что делает ее полезной для определения местоположения определенных файлов и каталогов, которые могут быть скрыты или труднодоступны. Команда осуществляет поиск файлов и каталогов по целому ряду критериев, включая их имя, размер, время модификации и права доступа.

Одним из основных способов использования find является поиск файлов и каталогов по имени. Например, для поиска всех файлов в текущем каталоге и его подкаталогах, имеющих имя “example.txt”, можно использовать следующую команду:

$ find . -name example.txt

Приведенная выше команда выполнит поиск всех файлов в текущем каталоге и его подкаталогах, имеющих имя “example.txt”, и отобразит полный путь к ним.

Find также может быть использован для поиска файлов и каталогов по их размеру. Например, для поиска всех файлов в текущем каталоге и его подкаталогах, размер которых превышает 1 МБ, можно использовать следующую команду:

$ find . -size +1M

Приведенная выше команда выполнит поиск всех файлов в текущем каталоге и его подкаталогах, размер которых превышает 1 МБ, и отобразит полный путь к ним.

Помимо поиска файлов и каталогов по имени и размеру, команда find может использоваться для поиска файлов и каталогов по времени их модификации и разрешениям. Например, для поиска всех файлов в текущем каталоге и его подкаталогах, которые были изменены в течение последних 7 дней, можно использовать следующую команду:

$ find . -mtime -7

Приведенная выше команда выполнит поиск всех файлов в текущем каталоге и его подкаталогах, которые были изменены за последние 7 дней, и отобразит полный путь к ним.

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


Использование командной строки Linux для обеспечения кибербезопасности может оказаться непосильным для новичков. Однако с помощью базовых и расширенных команд, описанных в данном руководстве, вы сможете начать использовать Linux CLI в своих интересах в области кибербезопасности. Не забывайте соблюдать осторожность при выполнении команд и тщательно изучать действие каждой команды перед ее использованием.

Чтобы узнать больше об использовании Linux для обеспечения кибербезопасности, загрузите ** Kali Linux операционная система, разработанная специально для тестирования на проникновение и цифровой криминалистики.

Заключение

В заключение следует отметить, что интерфейс командной строки Linux является мощным инструментом для профессионалов в области кибербезопасности, но для новичков он может оказаться сложным. Изучив основные и дополнительные команды, описанные в данном руководстве, вы сможете начать использовать Linux CLI в своих интересах в области кибербезопасности. Не забывайте об осторожности при выполнении команд и тщательно изучайте действие каждой команды перед ее использованием. С практикой и опытом Вы сможете овладеть навыками работы с командной строкой Linux и поднять свои навыки в области кибербезопасности на новый уровень.