This commit is contained in:
nik
2025-10-07 23:00:19 +03:00
parent c61e8d9139
commit 3d92357149
15 changed files with 126 additions and 0 deletions

BIN
labs/lab4/assets/43.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

BIN
labs/lab4/assets/44.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

BIN
labs/lab4/assets/45.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

BIN
labs/lab4/assets/46.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
labs/lab4/assets/47.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

BIN
labs/lab4/assets/48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
labs/lab4/assets/49.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
labs/lab4/assets/50.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

BIN
labs/lab4/assets/51.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
labs/lab4/assets/52.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
labs/lab4/assets/53.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
labs/lab4/assets/54.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

BIN
labs/lab4/assets/55.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

View File

@@ -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 <IP>` адрес подменяется на указанный вручную.
*При создании ключей 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. На практике реализовано взаимодействие двух виртуальных машин, проброс портов и защита доступа. Получены навыки безопасной настройки сетевых и пользовательских прав в многопользовательской системе.