/born2beroot_21school

Проект по изучению основ системного администрирования

Primary LanguageShell

born2beroot_21school

Проект по изучению основ системного администрирования (ОС Linux Debian, без графического интерфейса)

ИМЯ КОМПЬЮТЕРА acristin42

ПОЛЬЗОВАТЕЛЬ acristin

ФРАЗА ДЛЯ ШИФРОВАНИЯ SDA5 000

lsblk - показать дерево (разделение дисков)

SUDO

  • программа для системного администрирования UNIX-систем, позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы.

su - - переключение на root (su user - переключение на пользователя user)

apt install sudo - установка sudo

dpkg -l | grep sudo - проверка, установилось ли

dpkg -l - список всех установленных программ

adduser <username> sudo - добавление пользователя в группу sudo (группа пользователей с одинаковыми правами)

getent group sudo - проверим, добавился ли пользователь

Configuration file for sudo

Файл с настройками для пользователей группы sudo

sudo nano /etc/sudoers.d/config

В файле добавить следующие строчки:

Defaults passwd_tries=3 - три попытки ввода пароля, при выполнении команд с использованием sudo

Defaults badpass_message="<custom-error-message>" - сообщение в случае ошибки

sudo mkdir /var/log/sudo - папка, в которую записываем логи, затем возвращаемся в конфигурационный файл и дописываем:

Defaults logfile="/var/log/sudo/logfile” - история взаимодействий будет записываться в logfile (Команды пользователя sudo, запрещенные команды других пользователей - отказано в правах)

TTY-абстракция, — предназначена для использования одного терминала несколькими процессами, некоторых возможностей ввода (например, отправка сигналов специальными клавишами, удаление введённых символов). Такие возможности как изменение цвета символов и фона, изменение начертания символов, перемещение курсора зависят от программы эмуляции или драйвера терминала.

Defaults requiretty

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/binl” - сохранение различных утилит по этим адресам

APT - (сокращение от Advanced Packaging Tool) — это набор утилит для установки, удаления, обновления, поиска пакетов в Linux, а также для управления репозиториями. APT еще называют пакетным менеджером.

SSH

sudo apt-get install wget - средство для скачивания файлов из веб-репозиториев

sudo apt-get update

sudo apt install openssh-server - установка

sudo systemctl status ssh - статус ssh-сервера

service ssh restart - перезапуск

sudo nano /etc/ssh/sshd_config - конфигурационный файл ssh

В файле прописать:

Port 4242 PermitRootLogin no - нельзя подключиться с использованием ssh от имени пользователя root

UFW

apt-get install ufw

sudo ufw enable

sudo ufw status numbered

sudo ufw allow ssh - создание правила для порта

sudo ufw allow 4242

sudo ufw status numbered

sudo ufw delete (number) - удаление правила под номером ...

ПОЛИТИКА ПАРОЛЕЙ

sudo nano /etc/login.defs - файл с временными настройками - сколько пароль живет, в этом файле прописать:

PASS_MAX_DAYS 30 - сколько дней можем использовать пароль

PASS_MIN_DAYS 2 - сколько дней есть на то, чтобы сменить пароль

PASS_WARN_AGE 7 - за сколько дней приходит предупреждение

sudo apt-get install libpam-pwquality - библиотека, которая проверяет качество паролей

sudo nano /etc/pam.d/common-password - файл с политикой поролей

В строку password [success=2 default=ignore] pam_unix.so obscure sha512 добавляем minlen=10 - минимальная длина 10 символов

В строку password requisite pam_pwquality.so retry=3 добавляем:

retry=3 - три попытки

lcredit =-1 - минимум одна прописная буква

ucredit=-1 - минимум одна заглавная буква

dcredit=-1 - минимум одно число

maxrepeat=3 - максимум 3 повторяющихся символа подряд

usercheck=0 - не содержит имя пользователя

difok=7 - минимальное число символов, на которое новый пароль отличается от старого

enforce_for_root - такая политика работает и для пользователя root

passwd - смена пароля

sudo chage -l root - информация о пароле для пользователя

ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЯ

sudo adduser <username>

sudo adduser <username> <groupname>

getent group <groupname>

sudo deluser <username>

sudo groupdel <groupname>

cut -d: -f1 /etc/passwd - список пользователей и служб

СМЕНА ИМЕНИ ХОСТА

hostnamectl - проверка текущего имени

hostnamectl set-hostname new_hostname - смена имени

sudo nano /etc/hosts - файл, который будет выглядеть следующим образом:

127.0.0.1 localhost

127.0.0.1 new_hostname

sudo reboot - перезагружаем компьютер

APPARMOUR

Для новых версий Debian (10+) AppArmour включен по умолчанию.

cat /sys/module/apparmor/parameters/enabled - проверить, включен ли

sudo aa-status - проверка статуса

СКРИПТ

Архитектура вашей операционной системы и ее версия ядра.

uname - короткое название (Linux)

uname -a - полное название

Количество физических процессоров.

lscpu - информация о CPU

grep “^CPU(s)” - берем строчки, которые начинаются с CPU

cut -d: -f2 - берем второй столбец после разделителя “:”

cut -c27-29 - берем символы с 27й позиции

Количество виртуальных процессоров.

nproc - количество процессоров

Текущая доступная оперативная память на вашем сервере и ее коэффициент использования в процентах

free - информация об использовании памяти в системе

free -m - в мегабайтах

grep “Mem” - берем строку Mem

awk ‘{print $2}’ - печатаем 2й столбец

Текущая доступная память на вашем сервере и ее коэффициент использования в процентах.

df -Bm - список файловых систем по именам устройств, с указанием размера, занятого и свободного пространситва и точки монтирования, представление в Мб

grep “^/dev/” - берем строчки, которые начинаются с /dev/

grep -v “/boot$” - берем строчи, в которых нет в конце строки /boot (то есть только строки с root и home)

awk ‘{tsum += $2} END {print tsum}’ - суммируем значения во второй колонке и выводим их

Текущий коэффициент использования ваших процессоров в процентах.

mpstat - статистика по использованию CPU

grep “all” - берем строку с числами

awk ‘{print (100 - $12)}’ - печатаем 100% - свободный процент

Дата и время последней перезагрузки.

who -b - время последней загрузки + заголовок

cut -d” “ -f12-13 - берем только дату и время (без заголовка)

Активен LVM или нет.

lsblk - показывает дерево

grep “lvm” - только те строки, в которых есть lvm

Количество активных подключений

netstat -natp - показывает все соединения

grep “ESTABLISHED” - берем только строки с информацией об установленных соединениях (отсекаем заголовки)

Количество пользователей, использующих сервер

users - список пользователей, подключенных к хосту

wc -w - считаем количество пользователей (слов)

IPv4-адрес вашего сервера и его MAC-адрес (Media Access Control)

hostname -I - выводит ip

ip - просмотр сетевых интерфейсов и присвоенных им ip-адресов

ip l - для физического сетевого устройства

Количество команд, выполненных с помощью программы sudo.

journalctl - просмотр логов загрузки системы

journalctl _COMM=sudo - сообщения из журнала из определенного приложения (относятся к sudo)

grep “COMMAND” - выделяет только записи о запущенных командах

ЗАЩИТА

  1. Как работает виртуальная машина? - виртуальная машина это симулятор работы обычного физического компьютера. Под нее можно так же выделять память, задавать характеристики устройств ввода/вывода, внутри ВМ можно развернуть ОС, причем она будет обособлена от хостовой системы и не будет никак на нее влиять. Поэтому на ВМ можно делать практически что угодно - работать с небезопасным софтом, устанавливать и удалять любые программы и утилиты.

  2. Выбор ОС - для новичков в системном администрировании лучше подходит Debian, так как эта система проще

  3. Debian vs CentOS - Debian поддерживается сообществом волонтеров (в то время как CentOS поддерживается компанией Red Hat), Debian выпускает обновления раз в 2 года (CentOs - постоянно появляются обновления, которые делают систему более стабильной), Debian легче обновляется с одной стабильной версии до другой (в случае CentOS лучше заново установить новую версию, чем устанавливать обновления)

  4. Зачем нужна виртуальная машина? - дешево (одно и то же железо позволяет развернуть несколько систем), развернуть ВМ проще и быстрее, ВМ можно переносить с одного компьютера на другой, что позволяет сократить время простоя, ВМ масштабируются - достаточно поменять параметры в настройках, ВМ безопаснее - гостевая система обособлена от хостовой, если возникают ошибки с безопасностью, систему можно легко переустановить, откатить до последней контрольной точки

  5. Apt vs aptitude - apt низкоуровневый менеджер пакетов, aptitude - верхнеуровневый

  6. APPArmour - система безопасности, изолирует приложения друг от друга

  7. Том — часть долговременной памяти компьютера, рассматриваемая как единое целое для удобства работы. В операционных системах том используется как единица пространства хранения, доступная для разметки (форматирования) под единую файловую систему (такую, как Ext4 или NTFS) либо передаваемая под управление менеджеру томов (такому, как LVM, VxVM, ASM). Logical Volume Manager (LVM) - это система управления томами с данными для Linux. Она позволяет создавать поверх физических разделов (или даже неразбитых винчестеров) логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (т.е. как обычные разделы). Основные преимущества LVM в том, что во-первых одну группу логических томов можно создавать поверх любого количества физических разделов, а во-вторых размер логических томов можно легко менять прямо во время работы. Кроме того, LVM поддерживает механизм снапшотов

Полезные команды

sudo uff status

sudo systemctl status ssh

uname -a

getent group sudo/user42

sudo adduser new

sudo nano /etc/login.defs

sudo nano /etc/pam.d/common-password

sudo grouped evaluating

sudo adduser new evaluating

hostname

hostnamectl set-hostname new_hostname - смена имени

sudo nano /etc/hosts -> 127.0.0.1 localhost, 127.0.0.1 new_hostname

sudo reboot