###### tags: `Linux Labs`
# Отчёт по практической работе №2
## Часть №1 - Основы мониторинга OS Linux
### Команда №1 - df
Введём команду df с некоторыми опциями:

`df -all` - отобразить все файловые системы;
`df -BM` - изменить размер одного блока перед выводом данных. В данном случае все данные в мегабайтах.

`df -h` - выводить размеры в читаемом виде, в мегабайтах или гигабайтах;
`df -H` - выводить все размеры в гигабайтах;
`df -i` - выводить информацию об inode;
`df -k` - выводить размеры в килобайтах.

`df --output` - использовать специальный формат вывода. В данном случае параметров не было задано, поэтому в результате вывода будут видны все поля;
`df -P` - использовать формат вывода POSIX;
`df --total` - выводить всю инорфмацию про использованное и доступное место.

`df --type tmpfs` - вывести всю информацию про файловую систему tmpfs.

`fd -x tmpfs` - вывести информацию обо всех, кроме файловой системы tmpfs.
### Команда №2 - du
Без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах. В моём случае в папке пользователя root была установлена утилита badkarma, что и отобразила утилита:

Вот ещё несколько примеров использования этой команды:





Также du можно использовать вместе с другими командами:

### Команда №3 - free
Ниже предоставлены примеры вывода команды с различными опциями:



Обновление информации каждые 5 секунд:

Обновление каждую секунду и вывод 3 раза:

### Команда №4 - iostat
Пример использования команды без опций и с ними:

Для просмотра ланных в удобном формате:

Для просмотра информации об отдельном устройстве:

Для просмотра инофрмации об каждом разлеле устройства:

Для обновления информации через определённый интервал (в данном случае 1 секунда):

Для отсутствия суммирования с момента запуска системы:

Профилирование нагрузки на файловую систему:

### Команда №5 - mpstat
Запуск без опций:

Для вывода всей информации, которую только может вывести команда:

Демонстрация ещё нескольких опций:

### Команда №6 - vmstat
Вывод команды vmstat с различными опциями и без них

Вывод информации на экран спустя определённый промежуток времени:

### Команда №7 - w
Вывод команды w с различными опциями и без них:

Вывод версии на экран:

### Команда №8 - htop
Установим программу:

Просмотр действующих процессов:

Также можно использовать команду `sudo htop -d 1` для ежесекундного обновления информации в окне.
Ещё можно использовать `sudo htop -t` для вывода процессов в виде дерева:

## Часть №2 - Установка и настройка сервера SSH в Linux
Установим ssh командой `sudo apt-get install ssh`. В данном случае sudo было не обязательным т.к. я находился в режиме суперпользователя:

Запустим ssh сервер:

Подключимся к нему по ssh:

Сгенерируем ключ:

Скопируем открытый ключ на сервер:

Теперь с помощью команды `ssh` мы можем подключится по защищённому каналу на сервер и работать там. Авторизация будет проводиться по фразе, использованной при создании ключа:

Также есть возможность подключение по ssh через putty:
Введём ip адрес хоста:

И выполним подключение:

Также можно изменить порт на любой незарезервированный на интервале 0 - 1024:

Стандартный порт для подключения по ssh - 22. После настройки он выдаёт ошибку. При подключении через 357 порт всё нормально. Это означает, что замена порта прошла успешно:

# UPD
## Файл конфигурации с настройкой запрета авторизации через root.

## Скриншот авторизации с помощью ключа:

## Часть №3 - Установка и настройка SSH-authorized_keys
Ранее мы уже создавали ключи для предыдущего задания. Сделаем это ещё раз, используя ту же команду, но на этот раз нам придётся подтвердить перезапись:

Выгрузим на сервер открытый ключ:

Авторизируемся по ssh:

Сработало. Если ранее пароль был pt_start, то теперь я использовал supkali.
## Часть №4 - Сбор информации о Linux и WGET
### Задание №1 - базовый сбор информации
Соберём информацию о дистрибутиве:

Узнаем информацию о ядре:

Имя активного пользователя:

Сколько работает система:

Права на директорию /home

Ограничим права другим пользователям:

Узнаем с какаими ПК происходит обмен данными:

Показывает, какие сервисы и с какими портами запущены:

Узнаем, что может пользователь:

### Задание №2 - Суидные файлы
Просмотрим систему на различные закладки:

Скачаем приложения для проведения автоматического сбора информации о системе:

Проведём разархивацию:

Сверим контрольные суммы:


Проверим наличие утилиты в каталоге:

Запустим утилиту:

Получим репорт об ошибках:

Также есть возможность просмотреть функции программы:

Также имеется стандартный репорт утилиты:

### Задание №3 - Проверка целостности пакетов
Для просмотра пакетов в системе:

Просмотр установленных утилит:

Рассмотрим утилиту /bin/dir:

Сделаем её бэкап:

И заменим её. Теперь при запуске dir мы можем увидеть, что ничего не будет происходить, кроме как если посмотреть логическую ложь, то будет ошибка:

Теперь нам надо быстро проверить этот пакет. Установим утилиту debsums:

Запустим проверку:

Если нам нудно рассмотреть какой-либо инцидент при проникновении в систему:

Если необходимо сделать по одному конкретному пользователю:

Проведём сортировку:

Здесь не видны наши действия т.к. мы находились в режиме суперпользователя. При запуске от имени обычного пользователя всё в норме:

## Часть №5 - Переменные окружения в Linux .bashrc, .bash_profile и .bash_login
### Задание №1 - Просмотр списка системных переменных окружения
Чтобы проверить наличие необходимой утилиты в системе и сразу же установить ее при надобности:

Теперь воспользуемся `printenv`, чтобы вывести список переменных окружения:

### Задание №2. Запуск команд с указанием нового значения переменной окружения
На время изменим опцию параметра HOME:

Добавим локальный параметр TESTKALI и проверим его:

Теперь удалим его и проверим результат операции:

Пользовательскую конфигурацию можно редактировать:


Обновиться она после ввода следующеу команды:

Наша сохранённая команда все также рабоатет:

### Задание №3 - Создание и удаление системных переменных окружения
Откроем файл /etc/profile:

Перезапустим службу и введём нашу новую системную переменную:
