В качестве результата пришлите ответы на вопросы в личном кабинете студента на сайте netology.ru.
Firewall (межсетевой экран) - это устройство или программный продукт (есть разные исполнения), которое просматривает входящий и исходящий трафик и на основании определённых правил безопасности принимает решения о том, пропустить данный трафик (к сети, хосту или приложениям хоста) или нет.
Рекомендуем вам ознакомиться с методическими документами ФСТЭК, посвящённым межсетевым экранам.
В рамках данной лабораторной работы сделаем базовые настройки МЭ для Linux.
Для выполнения этого ДЗ потребуются две виртуальные машины: Ubuntu и Kali
Для установки на машине с Kali выполните следующие команды:
sudo apt update
sudo apt install telnet
Запустим виртуальную машину Ubuntu и установим следующие программы:
- nginx - веб-сервер (возможность публикации веб-страниц)
- openssh-server - сервер ssh (Secure Shell - возможность управления с использованием интерпретатора команд на удалённом сервере)
- vsftpd - сервер ftp (File Transfer Protocol - протокол передачи файлов)
Для установки на машине с Ubuntu выполните следующие команды:
sudo apt update
sudo apt install nginx openssh-server vsftpd telnet
Установленные приложения запустятся после установки сразу в виде сервисов и откроют следующие порты:
- nginx откроет порт 80
- openssh-server откроет порт 22
- vsftpd откроет порт 21
С прошлой лекции вы уже знаете, что по умолчанию в режиме NAT каждая VM работает изолированно. Поэтому нам необходимо внести некоторые изменения.
1. Откройте свойства сети виртуальной машины и выберем внутреннюю сеть:
2. Запустите Ubuntu и настройте сеть:
3. Выполните аналогичные настройки для Kali (но в качестве адреса укажите 192.168.0.1):
4. После всех проверьте, что всё работает с помощью утилиты ping (обе VM должны быть запущены):
5. Запустите виртуальную машину Kali
6. Проверьте доступность сервисов, для этого воспользуйтесь программой telnet
О программе telnet
Программа telnet является одним из самых простых средств проверки доступности сервисов на удаленном хосте.
Проверка производится следующим образом:
telnet \<адрес\> \<порт\>
У нас адрес уже известен - это адрес Ubuntu (192.168.0.2)
Если появится сообщение: telnet: Unable to connect to remote host: Connection refused
или долго "висит": Trying XXX.XXX.XXX.XXX
значит, на данном порту сервис недоступен.
Примечание: для выхода из сеанса telnet, нужно:
- Нажать
Ctrl
и]
на клавиатуре, после этого приглашение изменит свой вид на telnet> - Ввести
q
и нажатьEnter
на клавиатуре
Перейдите в терминал Kali и выполните следующие проверки:
1. Проверка порта 80:
kali@kali:~$ telnet 192.168.0.2 80
Trying 192.168.0.2...
Connected to 192.168.0.2.
2. Проверка порта 22
kali@kali:~$ telnet 192.168.0.1 22
Во время этой проверки может быть задан вопрос о ключах:
The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.
ECDSA key fingerprint is SHA256: ----------------------------------------------.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
В этом случае нужно набрать слово yes
3. Проверка порта 21:
kali@kali:~$ telnet 192.168.0.2 21
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
220 (vsFTPd 3.0.3)
Если все проверки завершились успешно, значит все сервисы запущены.
Нам поступила задача закрыть FTP для доступа из сети, оставив открытыми только 80 и 22 порты. Для этого воспользуемся МЭ, входящим в состав Ubuntu и закроем доступ.
1. Перейдите в Ubuntu:
2. Введите команду:
user@user-VirtualBox:~$ sudo ufw status verbose
Status: inactive
# это означает, что МЭ выключен
Напоминаем, что документацию вы можете почитать прямо в консоли с помощью команды man ufw
(выход с помощью клавиши q
, навигация с помощью стрелок или пробела).
3. Включите МЭ:
user@user-VirtualBox:~$ sudo ufw enable
Firewall is active and enabled on system startup
(для отключения нужно ввести команду: sudo ufw disable
)
4. Теперь МЭ работает, чтобы убедиться в этом, перейдите в Kali и повторите запросы telnet:
telnet 192.168.0.2 80
telnet 192.168.0.1 22
telnet 192.168.0.2 21
На все ваши попытки должен быть получен следующий ответ:
Trying 192.168.0.2...
Т.е. соединение не устанавливается.
5. Перейдите в Ubuntu и выполните следующие команды:
# разрешение http (порт 80)
user@user-VirtualBox:~$ sudo ufw allow http
Rule added
Rule added (v6)
# разрешение ssh (порт 21)
user@user-VirtualBox:~$ sudo ufw allow ssh
Rule added
Rule added (v6)
6. Вернитесь в Kali и проверьте команды telnet:
kali@kali:~$ telnet 192.168.0.2 80
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
^]
telnet> q
Connection closed.
kali@kali:~$ telnet 192.168.0.2 22
Trying 192.168.0.2...
Connected to 192.168.0.2.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
^]
telnet> q
Connection closed.
Попытка подключения к 21 порту закончится безуспешно.
Таким образом, мы познакомились с базовой работой МЭ, позволяющей открывать доступ к определённым портам. По умолчанию применяется правило "всё, что явно не разрешено - запрещено".
В качестве результата работы пришлите вывод команды sudo ufw status verbose
.
На странице документации вы можете прочитать примеры расширенного синтаксиса настройки правил, позволяющих вам разрешать доступ с определённых ip, подсетей и т.д.
Откройте в Kali Wireshark и проследите, как происходит процесс соединения при отключенном МЭ и при включенном (на 21 порт не стоит allow
).
В качестве ответа опишите разницу в процессе установления соединения (или попытках установления соединения) при отключенном МЭ и при включенном МЭ (на 21 порт не стоит allow
).