###### tags: `Linux` # Отчет по заданиям к практической работе №4. Безопасность Linux-серверов: ## Практическая работа №4.1. |1. `Snapshot'ы` систем. | |-| |![](https://i.imgur.com/3oDxdT8.png)| |![](https://i.imgur.com/ldnG9F3.png)| |2. `SAMBA` - установка и настройка. | |-| |`sudo apt-get update`| |`sudo apt-get install -y samba samba-client`| |![](https://i.imgur.com/PeTKAYf.png)| |Создадим резервную копию файла конфигурации `Samba`.| |`sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak`| |![](https://i.imgur.com/x2bVNn0.png)| |Создадим директорию, к которой все пользователи будут иметь общий доступ.| |`sudo mkdir -p /samba/public`| |![](https://i.imgur.com/A4mn8KU.png)| |Перейдем к этому каталогу и изменим режим доступа и владельца.| |`cd /samba`| |`sudo chmod -R 0755 public`| |![](https://i.imgur.com/s1Exa6a.png)| |Создадим каталог, к которому доступ будет ограничен.| |`sudo mkdir /samba/private`| |![](https://i.imgur.com/PaB0v3D.png)| |Создадим группу пользователей, которые будут иметь доступ к приватным данным.| |`sudo groupadd smbgr`| |![](https://i.imgur.com/BGHeheb.png)| |Создадим нужного пользователя с помощью команды `useradd`.| |`sudo useradd user1`| |![](https://i.imgur.com/1gKK5DM.png)| |Добавим созданного пользователя в группу.| |`sudo usermod -aG smbgr user1`| |![](https://i.imgur.com/ZfoU4pT.png)| |Изменим группу, которой принадлежит приватная директория.| |`sudo chgrp smbgr /samba/private`| |![](https://i.imgur.com/7v3h0X6.png)| |Зададим пароль, с помощью которого пользователь будет подключаться к каталогу.| |`sudo smbpasswd -a user1`| |![](https://i.imgur.com/k0Xy5WP.png)| |Откроем файл конфигурации на редактирование.| |`sudo nano /etc/samba/smb.conf`| |![](https://i.imgur.com/c6SXHvR.png)| |Заменим содержимое файла на следующие строки| |![](https://i.imgur.com/WS0EuUM.png)| |Проверим настройки в `smb.conf` можно с помощью команды.| |`testparm -s`| |![](https://i.imgur.com/jMRuhpm.png)| |Перезапустим сервис.| |`sudo service smbd restart`| |![](https://i.imgur.com/unUetmo.png)| |Добавим сервис в автозагрузку.| |`sudo systemctl enable smbd`| |![](https://i.imgur.com/WUgdvvP.png)| |Вход с Windows.| |![](https://i.imgur.com/1c5FbZp.png)| |![](https://i.imgur.com/WKYTFH5.png)| |![](https://i.imgur.com/1c5FbZp.png)| |![](https://i.imgur.com/ngD5vcE.png)| |![](https://i.imgur.com/WBQkigp.png)| |Вход с Linux.| |`sudo smbclient //100.65.105.53/private -U user1`| |![](https://i.imgur.com/dyMIvxM.png)| |3. `iptables` - установка и настройка. | |-| |`sudo apt-get install iptables -y`| |![](https://i.imgur.com/aaScfwN.png)| |Рассмотрим правила `iptables`.| |`sudo iptables -L`| |![](https://i.imgur.com/ukds4O2.png)| |Нам необходимо настроить правила для входящего трафика по портам `137`,`138`,`139`,`445`. Из открытых источников узнал, что порт `137`,`138` работает поверх `UDP`, а `139`,`445` поверх `TCP`. Исходя из этих данных, настроим правила.| |![](https://i.imgur.com/7v9X7wl.png)| |`sudo iptables -A INPUT -p udp --dport 137 -s 100.65.105.0/24 -j ACCEPT`| |`sudo iptables -A INPUT -p udp --dport 138 -s 100.65.105.0/24 -j ACCEPT`| |`sudo iptables -A INPUT -p tcp --dport 139 -s 100.65.105.0/24 -j ACCEPT`| |`sudo iptables -A INPUT -p tcp --dport 445 -s 100.65.105.0/24 -j ACCEPT`| |![](https://i.imgur.com/6s11zmy.png)| |Сохраним конфиги, чтобы они работали после перезагрузки.| |![](https://i.imgur.com/JxTicg7.png)| |![](https://i.imgur.com/2YhBc1a.png)| |![](https://i.imgur.com/UGI0ymj.png)| |![](https://i.imgur.com/PScpLqG.png)| |![](https://i.imgur.com/GYftFJl.png)| |![](https://i.imgur.com/vcTuRKg.png)| ## Практическая работа №4.2. |1.Fail2Ban| |-| |`sudo apt-get update`| |![](https://i.imgur.com/r5Q3En3.png)| |`sudo apt-get install fail2ban`| |![](https://i.imgur.com/qlQZ44L.png)| |`service fail2ban start`| |![](https://i.imgur.com/6Eyg2Ms.png)| |![](https://i.imgur.com/LxiuPok.png)| |`ls -al /etc/fail2ban`| |![](https://i.imgur.com/FnueVNQ.png)| |`cd /etc/fail2ban`| |`sudo nano jail.conf`| |![](https://i.imgur.com/LYr3Mzf.png)| |![](https://i.imgur.com/kZNF6OD.png)| |`sudo nano jail.local`| |![](https://i.imgur.com/H4chHdl.png)| |`service fail2ban restart`| |![](https://i.imgur.com/WhRRO27.png)| |![](https://i.imgur.com/Rje4aCN.png)| |Попробуем имитировать подбор пароля.| |`sudo hydra -l root -P /usr/share/hydra/dpl4hydra_local.csv ssh://100.65.105.53 -I -v`| |![](https://i.imgur.com/pXIsywH.png)| |![](https://i.imgur.com/D594zG1.png)| |Более подключиться с данных машин не удается, проверим в бане ли они.| |`fail2ban-client status`| |`fail2ban-client status sshd`| |![](https://i.imgur.com/EyXDHh5.png)| |Сбросим баны.| |![](https://i.imgur.com/9LtS7dF.png)| |`service fail2ban restart`| |![](https://i.imgur.com/laMDatR.png)| |![](https://i.imgur.com/N1uWCrV.png)| |Далее запускаем `hydra` ещё раз.| |`sudo hydra -l root -P /usr/share/hydra/dpl4hydra_local.csv ssh://100.65.105.53 -I -v`| |![](https://i.imgur.com/T2wHGiI.png)| |`sudo cat /var/log/auth.log`| |![](https://i.imgur.com/zT7NUZk.png)| |Бан прилетел.| |![](https://i.imgur.com/HdTN9fV.png)| |Проверим, что будет, если отключить `fail2ban` и запустить `hydra`.| |`service fail2ban stop`| |![](https://i.imgur.com/JvCfj7q.png)| |`sudo hydra -l root -P /usr/share/hydra/dpl4hydra_local.csv ssh://100.65.105.53 -I -v`| |![](https://i.imgur.com/4v0d1D3.png)| |Cудя по логам, hydra подбирает пароли.| |![](https://i.imgur.com/t6iC7Iy.png)| ## Практическая работа №4.3. |1.Разворачивание сервера `nginx`.| |-| |Установим пакеты, необходимые для подключения apt-репозитория:| |`sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring`| |![](https://i.imgur.com/clmCp3Y.png)| |Теперь нужно импортировать официальный ключ, используемый `apt` для проверки подлинности пакетов. Скачаем ключ.| |![](https://i.imgur.com/qokwdUe.png)| |Проверим, верный ли ключ был загружен:| |`gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg`| |![](https://i.imgur.com/ypXw35k.png)| |Подключим `apt-репозиторий` для стабильной версии `nginx`.| |![](https://i.imgur.com/s74NjR9.png)| |Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настроим закрепление.| |![](https://i.imgur.com/wMHwAdi.png)| |Установим `nginx`.| |![](https://i.imgur.com/rOIpYMx.png) |![](https://i.imgur.com/jdPYQaU.png)| |2.Переходим к настройке `nginx` от `DDoS` атак на наш сервер.| |-| |Устанавливаем `fail2ban` и `ipset`.| |`apt install fail2ban`| |`apt install ipset`| |![](https://i.imgur.com/ZQ05Aqa.png)| |`nano /etc/nginx/sites-enabled/default`| |![](https://i.imgur.com/57dSF66.png)| |`nano /etc/nginx/nginx.conf`| |![](https://i.imgur.com/Glhdkkq.png)| |Вбиваем `IP-адрес` сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы.| |![](https://i.imgur.com/rqy65kb.png)| |Выйдет ошибка 503.| |![](https://i.imgur.com/Kcci06r.png)| |`cat /var/log/nginx/error.log`| |![](https://i.imgur.com/0wKg7VH.png)| |Данные `log-файла` дададут нам нужную информация для настройки фильтрации `fail2ban`.| |3. Настройка `fail2ban` от `DDoS` атак на наш сервер.| |-| |`nano /etc/fail2ban/jail.local`| |![](https://i.imgur.com/kLCIb7j.png)| |`cd /etc/fail2ban/jail.local`| |`sudo nano iptables-blocktype.local`| |![](https://i.imgur.com/rO3WsRu.png)| |`service fail2ban restart`| |![](https://i.imgur.com/Mv7WIHP.png)| |`iptables -L -v`| |![](https://i.imgur.com/ppHXcUz.png)| |`fail2ban-client status`| |![](https://i.imgur.com/MQtIXuY.png)| |`fail2ban-client status nginx-limit-req`| |![](https://i.imgur.com/1kLaSyz.png)| |`Переходим и делаем спам запросов.`| |![](https://i.imgur.com/hI4e9to.png)| |`iptables -L -v`| |![](https://i.imgur.com/4kyDIfu.png)| |`fail2ban-client status nginx-limit-req`| |![](https://i.imgur.com/tXGchPp.png)| |`fail2ban-client unban 100.65.105.53`| |![](https://i.imgur.com/OmpxCAm.png)|