upd lab4
BIN
labs/lab4/assets/43.png
Normal file
|
After Width: | Height: | Size: 271 KiB |
BIN
labs/lab4/assets/44.png
Normal file
|
After Width: | Height: | Size: 272 KiB |
BIN
labs/lab4/assets/45.png
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
labs/lab4/assets/46.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
labs/lab4/assets/47.png
Normal file
|
After Width: | Height: | Size: 274 KiB |
BIN
labs/lab4/assets/48.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
labs/lab4/assets/49.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
labs/lab4/assets/50.png
Normal file
|
After Width: | Height: | Size: 310 KiB |
BIN
labs/lab4/assets/51.png
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
labs/lab4/assets/52.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
labs/lab4/assets/53.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
labs/lab4/assets/54.png
Normal file
|
After Width: | Height: | Size: 319 KiB |
BIN
labs/lab4/assets/55.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
@@ -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. На практике реализовано взаимодействие двух виртуальных машин, проброс портов и защита доступа. Получены навыки безопасной настройки сетевых и пользовательских прав в многопользовательской системе.
|
||||
|
||||
|
||||