diff --git a/labs/lab4/assets/43.png b/labs/lab4/assets/43.png new file mode 100644 index 0000000..f83ffd3 Binary files /dev/null and b/labs/lab4/assets/43.png differ diff --git a/labs/lab4/assets/44.png b/labs/lab4/assets/44.png new file mode 100644 index 0000000..329d84b Binary files /dev/null and b/labs/lab4/assets/44.png differ diff --git a/labs/lab4/assets/45.png b/labs/lab4/assets/45.png new file mode 100644 index 0000000..7760269 Binary files /dev/null and b/labs/lab4/assets/45.png differ diff --git a/labs/lab4/assets/46.png b/labs/lab4/assets/46.png new file mode 100644 index 0000000..544c34d Binary files /dev/null and b/labs/lab4/assets/46.png differ diff --git a/labs/lab4/assets/47.png b/labs/lab4/assets/47.png new file mode 100644 index 0000000..c1d1a77 Binary files /dev/null and b/labs/lab4/assets/47.png differ diff --git a/labs/lab4/assets/48.png b/labs/lab4/assets/48.png new file mode 100644 index 0000000..3399e37 Binary files /dev/null and b/labs/lab4/assets/48.png differ diff --git a/labs/lab4/assets/49.png b/labs/lab4/assets/49.png new file mode 100644 index 0000000..e29e735 Binary files /dev/null and b/labs/lab4/assets/49.png differ diff --git a/labs/lab4/assets/50.png b/labs/lab4/assets/50.png new file mode 100644 index 0000000..7f64d0b Binary files /dev/null and b/labs/lab4/assets/50.png differ diff --git a/labs/lab4/assets/51.png b/labs/lab4/assets/51.png new file mode 100644 index 0000000..d249b83 Binary files /dev/null and b/labs/lab4/assets/51.png differ diff --git a/labs/lab4/assets/52.png b/labs/lab4/assets/52.png new file mode 100644 index 0000000..b32cb83 Binary files /dev/null and b/labs/lab4/assets/52.png differ diff --git a/labs/lab4/assets/53.png b/labs/lab4/assets/53.png new file mode 100644 index 0000000..794079c Binary files /dev/null and b/labs/lab4/assets/53.png differ diff --git a/labs/lab4/assets/54.png b/labs/lab4/assets/54.png new file mode 100644 index 0000000..3e62187 Binary files /dev/null and b/labs/lab4/assets/54.png differ diff --git a/labs/lab4/assets/55.png b/labs/lab4/assets/55.png new file mode 100644 index 0000000..6308789 Binary files /dev/null and b/labs/lab4/assets/55.png differ diff --git a/labs/lab4/report.pdf b/labs/lab4/report.pdf index 255b1ea..52bad92 100644 Binary files a/labs/lab4/report.pdf and b/labs/lab4/report.pdf differ diff --git a/labs/lab4/report.typ b/labs/lab4/report.typ index 0e366e2..11c30ae 100644 --- a/labs/lab4/report.typ +++ b/labs/lab4/report.typ @@ -250,6 +250,132 @@ done === Часть 6. Настройка аутентификации по ключу. +Локально я создал пару ssh ключей: + +#align(center)[#image("assets/43.png")] + +Я передал его на `c7-2`: + +#align(center)[#image("assets/44.png")] + +И теперь могу заходить без пароля: + +#align(center)[#image("assets/45.png")] + +И скопировал файл к себе на компьютер: + +#align(center)[#image("assets/46.png")] + === Часть 7. Sudo. +Я установил `sudo` на `c7-1`: + +#align(center)[#image("assets/47.png")] + +Разрешил пользователю из части 2 п.1 повышать привелегии до root. + +#align(center)[#image("assets/48.png")] + +Ограничил права первого из созданных в части 5 пользователей: + +#align(center)[#image("assets/49.png")] +#align(center)[#image("assets/50.png")] + +Проверил работу прав: + +#align(center)[#image("assets/51.png")] +#align(center)[#image("assets/52.png")] +#align(center)[#image("assets/53.png")] + === Часть 8. Получение информации о пользователях. + +Я вывел входы пользователей в систему за текущий месяц: + +#align(center)[#image("assets/54.png")] + +Вывел информацию о пользователе из части 2 п. 1: + +#align(center)[#image("assets/55.png")] + +=== Ответы на вопросы. + +*В части 4 вы использовали готовые команды для настройки NAT. Поясните какие параметры передаются в ключах команды iptables.* + +Пример команды: + +```bash +iptables -t nat -A POSTROUTING -o enp1s0 -s 10.0.0.0/24 -j MASQUERADE +``` + +- `-t nat` — выбрать таблицу NAT; +- `-A POSTROUTING` — добавить правило в цепочку POSTROUTING; +- `-o enp1s0` — указывает выходной интерфейс; +- `-s 10.0.0.0/24` — диапазон внутренних адресов, для которых применяется правило; +- `-j MASQUERADE` — действие: подменить IP-адрес источника на внешний адрес интерфейса. + +Аналогично, при `-j SNAT --to-source ` адрес подменяется на указанный вручную. + +*При создании ключей ssh программа-генератор предлагает ввести пароль. Зачем он нужен и для чего используется?* + +Пароль защищает приватный ключ. +Даже если файл ключа попадёт в чужие руки, без пароля им нельзя воспользоваться. +Это как двойная защита: пароль → разблокирует закрытый ключ, ключ → разблокирует доступ по SSH. + +*При первом подключении по ssh к новому серверу вам выводится хэш и программа предлагает принять его или отклонить. Зачем это нужно?* + +Это fingerprint публичного ключа сервера. +Он нужен, чтобы убедиться, что ты подключаешься к правильному серверу, а не к подменённому. +После подтверждения отпечаток сохраняется в `~/.ssh/known_hosts`. +Если при следующем подключении хэш изменился — SSH предупредит о возможной подмене. + +*Как на сервере ssh определить сколько подключений по ssh есть и от каких пользователей?* + +Можно посмотреть процессы: + +```bash +ss -tuna | grep ':22' +``` + +или более конкретно: + +```bash +who +``` + +или: + +```bash +ps aux | grep sshd +``` + +`sshd` показывает каждое активное соединение, `who` — кто вошёл в систему, с каких IP-адресов, и сколько пользователей сейчас в системе. + +*Если у двух пользователей в Linux будут одинаковые пароли, то сможем ли мы понять это по данным в файле `/etc/shadow`? Почему?* + +Нет. +Файл `/etc/shadow` хранит хэши паролей с солью, то есть у каждого пароля добавляется случайное значение перед хэшированием. +Даже если два пользователя используют одинаковый пароль, их хэши будут разными. +Это сделано специально, чтобы невозможно было определить совпадение паролей. + +*Заполните таблицу, описывающую действие различных атрибутов прав (r, w, x) и атрибутов безопасности (suid, sgid, stiky bit) при назначении их файлу или каталогу. В таблице должны быть следующие столбцы:* + +#table(columns: 4)[*атрибут*][*сокращенное название*][*значение действия для файла*][*значение действия для каталога*][read][r][разрешает чтение файла][разрешает просматривать содержимое каталога `ls`][write][w][разрешает изменять или удалять файл][разрешает создавать и удалять файлы внутри каталога][execute][x][разрешает выполнять файл как программу][разрешает входить в каталог `cd`][setuid][s (u+s)][файл выполняется с правами владельца][не применяется][setgid][s (g+s)][файл выполняется с правами группы][новые файлы внутри каталога наследуют группу каталога][sticky][t][не применяется][удалять файлы может только владелец или root (пример: /tmp)] + +*В Linux существует расширенные права на файлы или каталоги. Работать с ними можно с помощью утилит satfacl и getfacl. Приведите пример команды, с помощью которой мы можем дать конкретному пользователю все права на файл, не делая его владельцем и не добавляя его в группы.* + +Чтобы дать пользователю `alex` все права на файл `/DATA/info.txt`, не меняя владельца и групп: + +```bash +sudo setfacl -m u:alex:rwx /DATA/info.txt +``` + +Проверить можно: + +```bash +getfacl /DATA/info.txt +``` + +=== Вывод. + +В ходе лабораторной работы были изучены основы администрирования Linux-систем: настройка NAT с помощью iptables, управление пользователями и правами доступа, работа с ACL и специальными битами, организация аутентификации по SSH-ключам и настройка sudo. На практике реализовано взаимодействие двух виртуальных машин, проброс портов и защита доступа. Получены навыки безопасной настройки сетевых и пользовательских прав в многопользовательской системе. +