# Занятие 2. Администрирование Linux #
# Часть 1. Основы мониторинга OS Linu #
## 1. Команда df в linux ##
### Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать ###

### Посмотрим, что говорит справка. Результат выполнения df –help ###

### Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать: ###

### Ключ -h позволяят вывести данные в более удобном формате ###

### С ключом -a, утилита выводит информацию о всех системах известных ядру, которые были смонтированы ###

### Если вы хотите вывести только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs ###

### Также можно отфильтровать две файловые системы ###

### Или же указать файловую систему, которую нужно отображать ###

### Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды ###

### С помощью опции -i вы можете посмотреть информацию про состояние inode в вашей файловой системе ###

### Вывести объем доступного пространства в каталоге ###

## 2. Команда du в Linux ##
### При выполнении без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах ###

### Вы также можете передать команде du несколько файлов и каталогов в качестве аргументов ###

### Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге ###

### Например, чтобы получить общий размер */var/lib* и всех его подкаталогов, вы должны выполнить следующую команду ###

### Чтобы сообщить только общий размер указанного каталога, а не подкаталогов, используйте параметр -s ###

### Параметр -c указывает du сообщать общую сумму. Это полезно, когда вы хотите получить объединенный размер двух или более каталогов ###

### Если вы хотите отобразить использование диска подкаталогами n-уровня, используйте параметр --max-depth и укажите уровень подкаталогов. Например, чтобы получить отчет о каталогах первого уровня, вы должны использовать ###

### По умолчанию утилита du повторно использует дисковое пространство, используемое каталогом или файлом. Чтобы узнать очевидный размер файла, используйте переключатель --apparent-size . «Видимый размер» файла — это фактический объем данных в файле ###

### du также позволяет использовать шаблон оболочки. Например, чтобы получить размер всех каталогов, начинающихся с «Do» в вашем домашнем каталоге, вы должны запустить ###

### Например, чтобы напечатать 5 самых больших каталогов внутри каталога */var* вы должны передать вывод du в команду sort чтобы отсортировать каталоги по их размеру, а затем передать результат в команду head которая распечатает только 5 верхних каталогов ###

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

### Чтобы просмотреть информацию в удобочитаемом формате (обычно в мегабайтах и гигабайтах), используйте параметр -h ###

### Например, чтобы отобразить результат в мегабайтах, введите ###

### Чтобы отобразить строку, показывающую итоги столбца, используйте параметр -t . Это дает вам сумму памяти и свопа в столбцах total, used и free ###

### Например, чтобы распечатывать информацию о памяти каждые пять секунды, вы должны выполнить ###

### Чтобы отображать результат определенное количество раз, используйте параметр -c ( --count ). В примере ниже команда выведет результат десять раз ###

### Допустим, вы хотите открыть серию приложений и посмотреть, как влияет ваша память. Для тестового вывода мы будем использовать читаемый человеком формат, используя степени 1000 (Gb) вместо 1024 (GiB). Мы собираемся записать в течение 20 секунд, чтобы проанализировать воздействие. Мы собираем данные каждые 5 секунд, и будем делать это за 4 цикла. Вот этот пример, отформатированный для командной строки и ее вывода ###

### Мы подождали несколько секунд, а затем открыли несколько вкладок браузера и получил доступ к некоторым закладкам. Стресс этих видов деятельности отмечен колебаниями объема производства. Обратите внимание, что эффект будет более выраженным при использовании выходного формата с меньшим округлением. В наших чисто демонстрационных целях это не нужно ###

### Это покажет вам только один вывод для команды free, но этот вывод будет изменяться через регулярные промежутки времени ###




## 4. Iostat ##
### Установим ###

### IOSTAT инструмент, который доступен через команду iostat. Введите эту команду, чтобы увидеть, как она работает: Самый простой пример использования утилиты, это запустить её без параметров. Она выведет отчёт с со средней статистикой с момента включения системы до момента запуска программы ###

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

### Чтобы посмотреть данные по нужному устройству просто укажите это устройство ###

### Можно посмотреть статистику по каждому разделу устройства, тогда надо воспользоваться опцией -p ###

### Чтобы утилита автоматически обновляла данные каждую секунду просто добавьте интервал. Например ###

### Если вы не хотите, чтобы утилита суммировала все данные с момента запуска операционной системы, то можно использовать опцию -y. Но работает она только если задан интервал ###

## Профилирование нагрузки на файловую систему с помощью iostat ##
### Сначала нужно понять какие разделы имеются в системе ###

### Раздел на котором расположен swap ###

### Пример получение лог файлы ###

### Содержание лог файла ###

## 5. mpstat ##
### Отчёт об использовании процессора ###

### Параметр «-P ALL», покажет все индивидуальные процессоры или ядра вместе со статистикой ###

### Для отображения статистически о конкретном CPU или ядре, используйте опцию «-P», как показано ниже:

### Можно посмотреть версию утилиты ###

### Справочная инфомрация ###

### vmstat предоставляет краткую информацию о различных ресурсах системы ###

### Приведенный ниже пример иллюстрирует применение vmstat для обнаружения программ, которые потребляют слишком много ресурсов CPU ###

### Количество вилок с момента загрузки ###

### Статистика диска ###

### Общая статистика диска ###


### vmstat --help ###

## 6. Утилита/команда "w" ##
### Выводит краткую сводку о работающих в системе в данный момент пользователях (залогиненных пользователях), а также о том, какие процессы у них запущены ###

### Не выводить заголовок у таблицы ###

### Игнорировать имена пользователей при определении времени текущего процесса и времени CPU ###

### Использовать сокращенный формат вывода. Не выводить колонки JCPU и PCPU ###

### Включить или выключить вывод поля from ###

### Выводить в поле from IP-адрес вместо имени хоста (hostname), если это возможно ###

### Выводить информацию в старом формате. Время, которое меньше 1 минуты, не выводится ###

### Вывести версию утилиты w ###

## 7. Утилита htop ##
### Установка ###

### Запуск утилиты ###

### Для установки времени обновления htop используйте опцию -d после которой укажите время обновления в десятой части секунд ###

### Чтобы программа выводила новые данные раз в 5 секунд ###

### Для вывода процессов в виде дерева используйте опцию -t ###

# Часть 2. Установка и настройка сервера SSH в Linux #
## Скачаем ssh ##

## После установки ssh сервер автоматически запустится. service sshd status ##

## Настройки хранятся в файле /etc/ssh/sshd_config ##

## Для адресов семейства IPv6 используется значение inet6 ##

## Параметр ListenAddress позволяет задавать порты для отдельных сетевых интерфейсов ##

## Отключение вазможности испольования ssh1 ##

## Очень полезным является параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей ##

в таком случае серверу необходимо явно указывать, где хранятся открытые ключи пользователей. Это может быть как один общий файл для хранения ключей всех пользователей (обычно это файл etc/.ssh/authorized_keys), так и отдельные для каждого пользователя ключи. Второй вариант предпочтительнее в силу удобства администрирования и повышения безопасности. Благодаря шаблону автоподстановки с маской «%h» будет использоваться домашний каталог пользователя.

## Важно также отключать парольный доступ ##

## Или же в случае, если всё-таки необходимо использовать доступ по паролю, то обязательно нужно отключать авторизацию по пустому паролю ##

## Для указания разрешённых или запрещённых пользователей и групп служат директивы DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Значениями для них являются списки имён, разделяемых пробелами ##

## Следует также отключать root-доступ ##

Иногда, когда следует задавать мультисерверную конфигурацию, очень удобно использовать алиасы (Aliases), что позволяет настроить сразу несколько режимов доступа (с разными хостами, портами и т. д.) и использовать их, указывая при этом конкретный алиас.
Настройки для алиасов хранятся либо глобально в /etc/ssh/ssh_config, либо раздельно для пользователей в ~/.ssh/config


## Для применения сделанных настроек необходим перезапуск SSH-сервера: systemctl restart sshd или service sshd restart ##

## Подключение по ssh с debian ##


## Для генерации ключей используется утилита ssh-keygen ##


## Подключение с рабочего хоста windows через putty ##



## Подключение с рабочего хоста windows через putty по ключу доступа ##
### Генерируем ключь с помощью PuTTYkeygen ###

### Исправляем сгенерированный публичный клчю. Приводим его к виду ###

### Передаём публичный ключь на сервер ###

### В меню аутентификации нужно выбрать файл приватного ключа ###

### Заполняем поля ###

### Установленное соединение ###

# Часть 3. Установка и настройка SSH-authorized_keys #
## Сгенерируйте на локальном компьютере пару ключей SSH ##


## Копирование открытого ключа с использованием SSH-Copy-ID ##

## Публичный слепок ключа появился на сервере debian ##

## Вход без пароля ##

## На debian добавлю пользователя в группу sudo ##


## В файле конфигурации ssh запретим вход в систему через SSH с использованием паролей учётной записи ##

## Перезапустим службу ssh ##

## Ключ был удалён чтобы продеманстрировать добавление ключа на сервер другим способом ##
Загрузка публичного с помощью стандартного метода SSH

## После ввода пароля содержимое ключа id_rsa.pub будет скопировано в конец файла authorized_keys учетной записи удаленного пользователя ##

# Часть 4. Сбор информации о Linux и WGET #
## Информация о версии дистрибутива ##

## Информация о ядре ##

## Отображение текущего вошедшего в систему пользователя ##

## Время работы системы ##

## Посмотрим права деррик тории home ##

## Ограничиваем права других пользователей ##
Чтобы они не смогли открывать директорию.

## Отображение с какими компьютерами происходит обмен данными ##

## Отображение запущенных сервисов с потоками ##

## sudo -l - позволяет нам понять, что есть в этом машинки и что пользователь может ##

## В системе могут быть различные закладки ##



## Скачаем с помощью wget утилиту lynis ##

## Разархивируем ##

## Проверим контрольную сумму файла ##

## Контрольная сумма соответствует скаченной версии файла. ##
Запускаем утилиту lynis


## Вывод report-отчёт ##

## Выполним команду sudo ./lynis show options ##

## Перенаправлять файлы лучше через стандартный report утилиты ##

## Проверим файлы логов ##


## Посмотрим имеющиеся пакеты в системе ##

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

## Например рассмотрим утилиту /bin/dir /bin/dir --help которая позволяет нам работать по сути как ls ##

С имитируем подмену или правку када программы
## Сначаала сделаем backup sudo mv /bin/dir /bin/dir.bak ##

## Водим команду sudo cp /bin/false /bin/dir ##

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

## соответственно, чтобы нам быстро проверить этот пакет мы можем выполнить команду debsums ##

## debsums <название программного пакета> - Отображает пакеты, которые необходимо проверить с помощью debsums ##


## Можно также проверить утилитой ##

## Если кто-то смог проникнуть в систему и что-то деал в ней нам поможет команда find. Например, если нам надо рассмотреть какой-либо инцидент ##

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


## Данный файл можно отсортировать ##

Можно увидеть, что менялось и в какое время, что позволит увидеть все изменения.
# Часть 5. Переменные окружения в Linux .bashrc, .bash_profile и .bash_login #
## Установим утилиту coreutils ##

## Теперь воспользуемся командой чтобы раскрыть список всех переменных окружения ##

## Изменим на вермя значение параметра ##

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

## Удалим локальную переменную ##

## Пользовательскую конфигурацию можно редактировать через sudo nano .bashrc ##

## Чтобы добавить переменную нужно написать export имя=значение ##

## Обновление конфигурации произойдет после повторного старта файла, а делается это через source ##

## Проверим значение наличие переменной ##

## Системные переменные нужно прописать в /etc/profile ##

## Аналагичным образом применем изменения (source) и проверим значение переменной ##

.bash_profile заимствует свое имя из файла ksh оболочки profile, в то время .bash_login заимствует свое имя из файла csh оболочки login.
Если оба ~/.bash_profileи ~/.bash_login существуют, то ~/.bash_login файл будет проигнорирован.