# Практическая работа № 2
###### tags: `pt` `linux`
## 1. Мониторинг ОС Linux при помощи утилит df, du, free, iostat, mpstat, vmstat, w, htop.
### df
Выдает отчет о доступном и используемом дисковом пространстве на файловых системах

---
#### df -a

> включенает в список файловые системы с размером блоков равным 0 (псевдофайловые системы специального назначения и фс типа "ignore" и "auto")
---
#### df -B [size] // df --block-size=[size]

> выдачет информации о размерах фс в указанном размере
---
#### df -h // df --human-readable

> форматирует размер фс, приводя их к стандартным размерам в KiB, MiB, GiB...
1 KiB = 1 K = 1024 Bytes
1 KB = 1000 Bytes
---
#### df -H // df --si

> форматирует размер фс, приводя их к размерам единиц измерения в системе SI, т.е. в килобайтах, мегабайтах...
1 KiB = 1 K = 1024 Bytes
1 KB = 1000 Bytes

---
#### df -i // df --inode

> выдает информацию об используемых в фс inode'ов
---
#### df -k

> устанавливает размер блока в 1 Кибибайт (1024 байт)
---
#### df -l // df --local

> выдает информацию только о локальных фс
---
#### df -m

> устанавливает размер блока в 1 Мебибайт (1024 КиБ)
---
#### df --sync

> делать системный вызов sync перед получением данных об используемом дисковом пространстве (на некоторых фс данный метод может предоставить более точные показания с потерей скорости выполнения команды)
---
#### df --output=[field]

> указывает формат вывода информации об интересуемых полях
---
#### df -P // df --portability

> использует формат вывода по стандарту POSIX
___
#### df --total

> добавляет строчку total с информацией обо всей ОС
---
#### df -T // df --print-type

> выдает тип каждой фс
---
#### df -t [fs_type] //df --type=[fs_type]

> выдает информацию о выбранных фс
---
#### df -x [fs_type] // df --exclude-type=[ds_type]

> не выдает информацию о выбранных фс
---
#### df --help

> выдает информацию об используемых опциях команды df
---
#### df --version

> выдает информацию о версии программы
---
#### Задания из практики
###### df

###### df -h

###### df -a

###### df -x tmpfs

###### df -a -x tmpfs -x bpf

###### df -t tmpfs

###### df -h /dev/sda1

###### df -hi /dev/sda1

###### df -h /

> df не применима к директориям (информация будет выводится о фс, чаастью которой является данная директория)
### du
Оценка места на диске, занятого файлами / каталогами
---
#### du -a // du --all

> показывает размеры всех файлов, а не только каталогов
---
#### du -b // du --bytes

> показывает размеры в байтах, а не кибибайтах
---
#### du --block-size=[size]

> выдает размеры в блоках заданной длины
---
#### du -c // du --total

> выдает дополнительную информацию о сумме размеров аргументов программы
---
#### du --exclude [dir] // du --exclude=[dir]

> не выдает информацию об указанной директории
---
#### du -h // du --human-readable

> форматирует размер данных, переводя их в Кибибайты, Мебибайты и т.д.
---
#### du --si

> форматирует размер данных, переводя их в систему SI: Килобайты, Мегабайты и т.д.
---
#### du --max-depth=[n_recurse]

> выдает информацию о вложенных каталогах (файлах при опции -a) при указанной степени глубины/рекурсии осмотра основной директории
---
#### du -S // du --separate-dirs

> выдает отдельно размеры каждой директории не включая размеры подкаталогов
---
#### Задания из практики
###### du

###### du Documents

###### du Documents Pictures .zshrc

###### du -a Pictures

###### du -h /var

###### du -sh /var

###### du -csh /var/local /var/log /var/lib

###### du -h --max-depth=1 /var

###### du -sh --apparent-size /var/lib

###### du -csh Do*

###### du -h /var | sort -rh | head -5

---
### free
Предоставление информации об общем объеме физической памяти и памяти подкачки , а также о свободной и используемой памяти

---
#### free -h // free --human

> выдает размер памяти в формате KiB, MiB, GiB
---
#### free -b // free --bytes

> выдает размер памяти в байтах
---
#### free -k // free --kibi

> выдает размер памяти в Кибибайтах
---
#### free --kilo/mega/giga

> выдает размер памяти в килобайтах, мегабайтах и гигабайтах
---
#### free -k/m/g

> выдает размер памяти в кибибайтах, мебибайтах и гигибайтах
---
#### free --si

> выдает размер памяти, используя систему SI (1 K = 1000 bytes)
---
#### free -t // free --total

> выдает дополнительную строчку информации, суммируя разные разделы памяти
---
#### free -s [sec]

> позволяет выводить информацию о памяти раз в заданное количество секунд
---
#### free -s [sec] -c [num]

> позволяет выводить информацию о памяти раз в заданное количество секунд определенное количество раз
---
#### Задания практики
###### free -s 5 -c 5

###### free -h--si -s 5 -c 4

###### watch free- h


---
### iostat
Отчет по статистике процессора и статистике ввода/вывода для устройств и разделов.

---
#### iostat -c

> отображает информацию об использовании процессора
---
#### iostat -d

> отображает информацию об использовании устройств
---
#### iostat -h

> форматирует размеры данных, переводя их в читаемый вид
---
#### iostat -m

> форматирует размеры данных, переводя их в мегабайты
---
#### iostat -k

> форматирует размеры данных, переводя их в килобайты
---
#### iostat -o JSON

> представляет информацию о процессах и устройствах в формате JSON
---
#### iostat -p

> отображает информацию о блочных устройствах и всех их разделов
---
#### iostat -x

> показывает расширенную статистику
---
#### iostat -y [num]

> выводит информацию о процессорах и устройствах раз в num секунд с момента запуска утилиты
---
#### iostat -z

> не выводит информацию о дисках, на которых нет активности
---
#### Задания практики
###### iostat -h

###### iostat /dev/sda1

###### iostat -p /dev/sda1

###### iostat -p /dev/sda1 1

###### iostat -p -y /dev/sda1 3

###### iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' >> iostat.log &

###### iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}'

---
### mpstat
Отчет по статистике, связанной с процессорами.

---
#### mpstat -A // mpstat -I ALL -u -P ALL

> выводит информацию о всех процессорах, их прерываниях и параметров, указанных в опции -u
---
#### mpstat -P ALL

> выводит информацию о всех процессорах/ядрах
---
#### mpstat -P [num]

> выводит информацию о процессоре/ядре под определенным номером
---
#### mpstat -V

> указывает версию программы
---
#### mpstat --help

> выводит обзорную информацию о возможных опциях команды
---
### vmstat
Отчет о статистике виртуальной памяти

---
#### vmstat -a

> выводит информацию об активной/неактивной памяти
---
#### vmstat -f

> выводит количество fork-процессов.
---
#### vmstat -s

> выводит общую статисктику в табличном виде
---
#### vmstat -d

> выводит информацию о памяти на определенных дисках
---
#### vmstat -D

> выводит статистику по дискам
---
#### vmstat -w

> выводит информацию в более удобном широком виде
---
#### vmstat [num] [count]

> выводит обновляемую раз в "num" секунд "count" раз
---
### w
Показывает, кто вошел в систему и что они делают (какой процесс запущен)

---
#### w -h // w --no-header

> выводит информацию без заголовка
---
#### w -u // w --no-current

> игнорирует имена пользователей в последнем процессе и времени этого процесса
---
#### w -s // w --short

> не выводит колонки JCPU и PCPU
---
#### w -f // w --from

> в зависимости от ОС убирает/добавляет колонку "FROM"
---
#### w -i // w --ip-addr

> при возможности выводит ip-адрес вместо имени хоста
#### w -o // w --old-style

> выводит информацию в старом стиле (не выводит значения меньше одной минуты)
---
#### w -V // w --version

> выводит версию программы
---
### htop
Интерактивный просмотрщик процессов

---
#### htop -d [num]

> обновляет информацию раз в num-десятых секунды
---
#### htop -t


> вывод процессы в виде дерева зависимостей
---
## 2. Установка и настройка сервера SSH в Linux
### Установка

### Настройка конфигов: изменен порт, отключена возможность подключения по root-пользователю

### Проверка доступности ssh-сервера, используя Xshell


## 3. Установка и настройка SSH-authorized_keys
### Создание ключей SSH на SSH-сервере

### Копирование открытого ключа с хоста на ssh-сервер с помощью ssh-copy-id и подключением по паролю

### Появление открытого ключа хоста на ssh-сервере в файле authorized_keys

### Настройки ssh-сервера

### Возможность подключиться с удаленного хоста по ключам с отключенной возможностью подключения по паролю


### Передача открытого ключа удаленного хоста на ssh-сервер, используя пароль

### Возможность подключиться с удаленного хоста по ключам с отключенной возможностью подключения по паролю



### Доказательство того, что Xshell установлен на основном хосте

## 4. Сбор информации о Linux и WGET
#### cat /etc/*release

> Информация о дистрибутиве и его версии
---
### uname -a

> версия ядра
---
### whoami

> просмотр имя пользователя
---
### uptime

> время работы устройства
---
### ls -la /home

> просмотр прав на директорию
---
### chmod o-rx /home/kali

> ограничение прав в каталоге
---
### ip neighbor

> показывает соседей в сети, чьи ip/mac-адреса известны
---
### ss -tunlp

> просмотр портов и их состояний
---
### sudo -l

> просмотр возможностей пользователя
---
### find / -user root -perm -4000 -exec lb -ldb {} \; 2> /dev/null

---
### wget "https://downloads.cisofy.com/lynis/lynis-3.0.6.tar.gz"

> установка утилиты для мониторинга системы
---
### tar -xvf lynis-3.0.6.tar.gz

> распаковка архива
---
### sha256sum lynis-3.0.6.tar.gz

> проверка достоверности пакета по хеш-сумме
---
### ./lynis audit system

> запуск утилиты анализа системы

> log-файлы

---
### dpkg -l

> просмотр пакетов
---
### dpkg -L coreutils

> просмотр системных утилит
---
### /bin/dir --help

> просмотр утилиты dir
---
### mv /bin/dir /bin/dir1 ; cp /bin/false /bin/dir

> создание бэкапа программы и замена ее на другую программу
---
### dir ; echo $?

> просмотр работы утилиты dir
---
### debsums -ac coreutils ; debsums -cs coreutils ; debsums -ac

> проверка пакетов на изменение системной утилиты
---
### dpkg --verify coreutils

> проверка пакетов на изменение системной утилиты
---
### find / -printf "%T@;%Tc;%p\\n"

> вывод и фильтрация данных
---
### find / -printf "%T@;%Tc;%p\\n" > timeline.csv

> перенаправление данных в таблицу
---
### head timeline.csv

> попытка поиска информации о создании файла
---
### sort -nr timeline.csv | less

> сортировка по времени = видим создание файла timeline.csv
---
### cat timeline.csv | grep *.csv

> создание файла timeline.csv
---
## 5. Переменные окружения в Linux .bashrc, .bash_profile и .bash_login
### printenv

> переменные окружения
---
### env HOME=/home/kali

> изменение значения переменной окружения
---
### TESTKALI=/home/kali

> добавление новой переменной
---
### unset TESTKALI

> отключение новой переменной
---
### nano ~/.zshrc

> изменения файла конфигурации переменных окружения
---
### source .zshrc

> применение настроек и проверка
---
### nano /etc/profile

> применение настроек и проверка
