###### tags: `Linux`
# Отчет по заданиям к практической работе №4. Безопасность Linux-серверов:
## Практическая работа №4.1.
|1. `Snapshot'ы` систем. |
|-|
||
||
|2. `SAMBA` - установка и настройка. |
|-|
|`sudo apt-get update`|
|`sudo apt-get install -y samba samba-client`|
||
|Создадим резервную копию файла конфигурации `Samba`.|
|`sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak`|
||
|Создадим директорию, к которой все пользователи будут иметь общий доступ.|
|`sudo mkdir -p /samba/public`|
||
|Перейдем к этому каталогу и изменим режим доступа и владельца.|
|`cd /samba`|
|`sudo chmod -R 0755 public`|
||
|Создадим каталог, к которому доступ будет ограничен.|
|`sudo mkdir /samba/private`|
||
|Создадим группу пользователей, которые будут иметь доступ к приватным данным.|
|`sudo groupadd smbgr`|
||
|Создадим нужного пользователя с помощью команды `useradd`.|
|`sudo useradd user1`|
||
|Добавим созданного пользователя в группу.|
|`sudo usermod -aG smbgr user1`|
||
|Изменим группу, которой принадлежит приватная директория.|
|`sudo chgrp smbgr /samba/private`|
||
|Зададим пароль, с помощью которого пользователь будет подключаться к каталогу.|
|`sudo smbpasswd -a user1`|
||
|Откроем файл конфигурации на редактирование.|
|`sudo nano /etc/samba/smb.conf`|
||
|Заменим содержимое файла на следующие строки|
||
|Проверим настройки в `smb.conf` можно с помощью команды.|
|`testparm -s`|
||
|Перезапустим сервис.|
|`sudo service smbd restart`|
||
|Добавим сервис в автозагрузку.|
|`sudo systemctl enable smbd`|
||
|Вход с Windows.|
||
||
||
||
||
|Вход с Linux.|
|`sudo smbclient //100.65.105.53/private -U user1`|
||
|3. `iptables` - установка и настройка. |
|-|
|`sudo apt-get install iptables -y`|
||
|Рассмотрим правила `iptables`.|
|`sudo iptables -L`|
||
|Нам необходимо настроить правила для входящего трафика по портам `137`,`138`,`139`,`445`. Из открытых источников узнал, что порт `137`,`138` работает поверх `UDP`, а `139`,`445` поверх `TCP`. Исходя из этих данных, настроим правила.|
||
|`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`|
||
|Сохраним конфиги, чтобы они работали после перезагрузки.|
||
||
||
||
||
||
## Практическая работа №4.2.
|1.Fail2Ban|
|-|
|`sudo apt-get update`|
||
|`sudo apt-get install fail2ban`|
||
|`service fail2ban start`|
||
||
|`ls -al /etc/fail2ban`|
||
|`cd /etc/fail2ban`|
|`sudo nano jail.conf`|
||
||
|`sudo nano jail.local`|
||
|`service fail2ban restart`|
||
||
|Попробуем имитировать подбор пароля.|
|`sudo hydra -l root -P /usr/share/hydra/dpl4hydra_local.csv ssh://100.65.105.53 -I -v`|
||
||
|Более подключиться с данных машин не удается, проверим в бане ли они.|
|`fail2ban-client status`|
|`fail2ban-client status sshd`|
||
|Сбросим баны.|
||
|`service fail2ban restart`|
||
||
|Далее запускаем `hydra` ещё раз.|
|`sudo hydra -l root -P /usr/share/hydra/dpl4hydra_local.csv ssh://100.65.105.53 -I -v`|
||
|`sudo cat /var/log/auth.log`|
||
|Бан прилетел.|
||
|Проверим, что будет, если отключить `fail2ban` и запустить `hydra`.|
|`service fail2ban stop`|
||
|`sudo hydra -l root -P /usr/share/hydra/dpl4hydra_local.csv ssh://100.65.105.53 -I -v`|
||
|Cудя по логам, hydra подбирает пароли.|
||
## Практическая работа №4.3.
|1.Разворачивание сервера `nginx`.|
|-|
|Установим пакеты, необходимые для подключения apt-репозитория:|
|`sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring`|
||
|Теперь нужно импортировать официальный ключ, используемый `apt` для проверки подлинности пакетов. Скачаем ключ.|
||
|Проверим, верный ли ключ был загружен:|
|`gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg`|
||
|Подключим `apt-репозиторий` для стабильной версии `nginx`.|
||
|Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настроим закрепление.|
||
|Установим `nginx`.|
|
||
|2.Переходим к настройке `nginx` от `DDoS` атак на наш сервер.|
|-|
|Устанавливаем `fail2ban` и `ipset`.|
|`apt install fail2ban`|
|`apt install ipset`|
||
|`nano /etc/nginx/sites-enabled/default`|
||
|`nano /etc/nginx/nginx.conf`|
||
|Вбиваем `IP-адрес` сервера в браузере, переходим в режим разработчика и далее делаем многочисленные запросы.|
||
|Выйдет ошибка 503.|
||
|`cat /var/log/nginx/error.log`|
||
|Данные `log-файла` дададут нам нужную информация для настройки фильтрации `fail2ban`.|
|3. Настройка `fail2ban` от `DDoS` атак на наш сервер.|
|-|
|`nano /etc/fail2ban/jail.local`|
||
|`cd /etc/fail2ban/jail.local`|
|`sudo nano iptables-blocktype.local`|
||
|`service fail2ban restart`|
||
|`iptables -L -v`|
||
|`fail2ban-client status`|
||
|`fail2ban-client status nginx-limit-req`|
||
|`Переходим и делаем спам запросов.`|
||
|`iptables -L -v`|
||
|`fail2ban-client status nginx-limit-req`|
||
|`fail2ban-client unban 100.65.105.53`|
||