From 30cb9112a55c3a36bd74ab8cc1629341931d381f Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 8 Oct 2025 11:33:44 +0300 Subject: [PATCH] upd lab4 --- labs/lab4/report.pdf | Bin 6089949 -> 6088583 bytes labs/lab4/report.typ | 41 +++++++++++------------------------------ 2 files changed, 11 insertions(+), 30 deletions(-) diff --git a/labs/lab4/report.pdf b/labs/lab4/report.pdf index 52bad922c0564ef730fd48438f49ca19ab293d6d..5724cda6e74b0c297c1bf0bb667e5711b2c47c1c 100644 GIT binary patch delta 24635 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 delta 25963 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 адрес подменяется на указанный вручную. +`-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 предупредит о возможной подмене. +Это fingerprint публичного ключа сервера. Он нужен, чтобы убедиться, что мы подключаемся к правильному серверу, а не к подменённому. После подтверждения отпечаток сохраняется в `~/.ssh/known_hosts`. Если при следующем подключении хэш изменился — SSH предупредит о возможной подмене. *Как на сервере ssh определить сколько подключений по ssh есть и от каких пользователей?* -Можно посмотреть процессы: - ```bash ss -tuna | grep ':22' ``` -или более конкретно: +или ```bash who ``` -или: +или ```bash ps aux | grep sshd ``` -`sshd` показывает каждое активное соединение, `who` — кто вошёл в систему, с каких IP-адресов, и сколько пользователей сейчас в системе. +`sshd` показывает каждое активное соединение, `who` — кто вошёл в систему, с каких ip, и сколько пользователей сейчас в системе. *Если у двух пользователей в Linux будут одинаковые пароли, то сможем ли мы понять это по данным в файле `/etc/shadow`? Почему?* -Нет. -Файл `/etc/shadow` хранит хэши паролей с солью, то есть у каждого пароля добавляется случайное значение перед хэшированием. -Даже если два пользователя используют одинаковый пароль, их хэши будут разными. -Это сделано специально, чтобы невозможно было определить совпадение паролей. +Нет. Файл `/etc/shadow` хранит хэши паролей с солью, то есть у каждого пароля добавляется случайное значение перед хэшированием. Даже если два пользователя используют одинаковый пароль, их хэши будут разными. *Заполните таблицу, описывающую действие различных атрибутов прав (r, w, x) и атрибутов безопасности (suid, sgid, stiky bit) при назначении их файлу или каталогу. В таблице должны быть следующие столбцы:* @@ -363,13 +345,13 @@ ps aux | grep sshd *В Linux существует расширенные права на файлы или каталоги. Работать с ними можно с помощью утилит satfacl и getfacl. Приведите пример команды, с помощью которой мы можем дать конкретному пользователю все права на файл, не делая его владельцем и не добавляя его в группы.* -Чтобы дать пользователю `alex` все права на файл `/DATA/info.txt`, не меняя владельца и групп: +Чтобы дать пользователю `vlad` все права на файл `/DATA/info.txt`, не меняя владельца и групп: ```bash -sudo setfacl -m u:alex:rwx /DATA/info.txt +sudo setfacl -m u:vlad:rwx /DATA/info.txt ``` -Проверить можно: +Проверить можно при помощи: ```bash getfacl /DATA/info.txt @@ -377,5 +359,4 @@ getfacl /DATA/info.txt === Вывод. -В ходе лабораторной работы были изучены основы администрирования Linux-систем: настройка NAT с помощью iptables, управление пользователями и правами доступа, работа с ACL и специальными битами, организация аутентификации по SSH-ключам и настройка sudo. На практике реализовано взаимодействие двух виртуальных машин, проброс портов и защита доступа. Получены навыки безопасной настройки сетевых и пользовательских прав в многопользовательской системе. - +В ходе лабораторной работы я изучил основы администрирования linux-систем: настройка nat, управление пользователями и правами доступа, работа с acl, организация аутентификации по ssh-ключам и настройка sudo. На практике реализовано взаимодействие двух виртуальных машин, проброс портов и защита доступа.