Table of contents
Open Table of contents
Настройка Компонентов Обеспечения Информационной Безопасности
Вступительная Часть
- Автор - Эльнур Бадалов
В этом отчете изложены все шаги по настройке Компонентов Обеспечения Информационной Безопасности. Это задание было одним из этапов сореванования по Кибербезопасности на платформе “IT PLANETA”.
Текст Задания:
Компания пригласила вас для выполнения настройки компонентов обеспечения
информационной безопасности. В компании было закуплены новые компьютеры, на которых
было установлена операционная система REDOS. Ваша задача – настроить межсетевое
экранирование, виртуальную частную сеть. В сети участвуют два компьютера через открыто
локальную сеть 10.0.0.0/24. Туннель должен быть 10.1.1.0/32. Туннель поднимается
автоматически после запуска машины (планировщик задания). Условные обозначения –
Компьютер А и Компьютер Б. На компьютере А установлено два интерфейса, один из которых
может ходить в глобальную сеть, компьютер Б ходит в глобальную сеть через компьютер А.
На компьютере А настроен NAT. Настройки межсетевого экранирования настраивается
средством iptables и применяются каждый раз как перезагружается компьютер. Компания не
хочет, что бы пользователи ходили на ресурсы социальных сетей (vk, ok, mail). Трафик по
туннелю должен быть зашифрован и использовалась программа openvpn. По результатам
работы необходимо подготовить отчет, где необходимо отобразить все ваши действия и где
каждый раздел отмечает настройку отдельного компонента или технологии. Каждый раздел
должен быть протестирован.
Условности
Технология Виртуализация примененная для решения Задания:
VMWare
Условные названия Компьютеров:
- VM A
- VM B
Перед каждым шагом будет указано на какой машине испроняются команды.
Сайты поддающиеся блокировки:
vk.com
mail.ru
ok.ru
Подготовка виртуальной инфраструктуры
Действия
- Создано две виртуальные машины (VM A и VM B) в VMWare с параметрами:
- OS:
RED OS 8
- RAM: 2 ГБ
- CPU: 1 ядро
- Диск: 20 ГБ
- Сеть:
- VM A:
vmnet8
(NAT) +vmnet2
(Host-only, 10.0.0.0/24) - VM B:
vmnet2
(Host-only, 10.0.0.0/24).
- VM A:
- OS:
- Настройка
vmnet2
в Virtual Network Editor:- Тип: Host-only
- Подсеть: 10.0.0.0/24
- Отключен доступ к внешнему интерфейсу хоста.
VM A
VM B
Сетевая Настройка
Настройка произведена на “Virtual Network Editor”:
Настройка Интерфейсов на Виртуальных Машинах
VM A
Так как нет DHCP, следует настроить конфигурацию интерфейса вручную.
# узнаём какой интерфейс не получил IP - в моем случае интерфейс ens224
ip a
# настраиваем внутреннюю сеть
sudo nmcli con add type ethernet ifname ens224 con-name local-lan ip4 10.0.0.1/24
sudo nmcli con up local-lan
# проверяем присвоил ли IP
ip a
VM B
# узнаём какой интерфейс не получил IP - в моем случае интерфейс ens160
ip a
# настраиваем интерфейс ens160
sudo nmcli con mod "ens160" \
ipv4.addresses 10.0.0.2/24 \
ipv4.gateway 10.0.0.1 \
ipv4.dns "8.8.8.8" \
ipv4.method manual
sudo nmcli con down "ens160" && sudo nmcli con up "ens160"
Тестирование
Для тестирования сети с каждой машины будет запущен ping
:
VM A
Ping прошел успешно.
VM B
Ping прошел успешно.
Схема Сети на Начальный Момент
[Интернет]
|
[Компьютер A]
| ens160 (NAT): 192.168.209.142
| ens224 (LAN): 10.0.0.1
|
[Компьютер B]
ens160: 10.0.0.2 (шлюз: 10.0.0.1)
Настройка IP Forwarding
На VM A:
Действия
Скачивания Пакетов
sudo dnf install iptables-services -y
Управление параметрами ядра Linux
# изменить конфигурацию:
sudo nano /etc/sysctl.conf
# добавить
net.ipv4.ip_forward = 1
# применить изменения
sudo sysctl -p
Настройка Iptables
# Добавление правила маскарадинга для NAT
sudo iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
# Разрешение пересылки трафика с интерфейса ens224
sudo iptables -A FORWARD -i ens224 -j ACCEPT
# Разрешение пересылки трафика на интерфейс ens224
sudo iptables -A FORWARD -o ens224 -j ACCEPT
# Сохранение текущих правил iptables в файл конфигурации, чтобы они сохранялись после перезагрузки
sudo iptables-save | sudo tee /etc/sysconfig/iptables
# Включение и запуск службы iptables, чтобы правила применялись автоматически при загрузке системы
sudo systemctl enable --now iptables
Тестирование
Для тестирования IP Forwarding, с VM B будет издан запрос на веб ресурс:
Запрос на веб ресурс прошел успешно.
Настройка Openvpn
Действия На VM A
Скачивания Пакетов
sudo dnf install openvpn easy-rsa -y
Генерация Ключей
Генерация Ключей для шифрования туннеля VPN.
# Создание директории для easy-rsa и копирование необходимых файлов
mkdir -p ~/easy-rsa && cp -r /usr/share/easy-rsa/3/* ~/easy-rsa
# Переход в директорию easy-rsa
cd ~/easy-rsa
# Инициализация инфраструктуры PKI (
./easyrsa init-pki
# Создание центра сертификации
./easyrsa build-ca
# Генерация запроса на сертификат для сервера
./easyrsa gen-req server
# Подписание сертификата сервера с использованием CA
./easyrsa sign-req server server
# Генерация параметров Диффи-Хеллмана для безопасного обмена ключами
./easyrsa gen-dh
# Создание ключа для TLS-аутентификации
openvpn --genkey secret ta.key
Создание Конфига Сервера
Создание конфига /etc/openvpn/server/server.conf
cat <<EOF | sudo tee /etc/openvpn/server/server.conf
dev tun
proto udp
port 1194
server 10.1.1.0 255.255.255.0
topology subnet
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
tls-auth /etc/openvpn/server/ta.key 0
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
push "route 10.0.0.0 255.255.255.0"
verb 3
EOF
# Копирование ключей
sudo mkdir -p /etc/openvpn/server
sudo cp ~/easy-rsa/pki/{ca.crt,dh.pem} /etc/openvpn/server/
sudo cp ~/easy-rsa/pki/issued/server.crt /etc/openvpn/server/
sudo cp ~/easy-rsa/pki/private/server.key /etc/openvpn/server/
sudo cp ~/easy-rsa/ta.key /etc/openvpn/server/
Настройка автозапуска OpenVPN сервера:
# Автозапуск
sudo systemctl enable --now openvpn-server@server
Генерация клиентских ключей
# Генерация клиентских ключей
cd ~/easy-rsa
./easyrsa gen-req client
./easyrsa sign-req client client
Действия На VM B
Копирование ключей на клиент
# Следует создать нужную диреторию
sudo mkdir -p /etc/openvpn/client
# Поместить туда файлы: ca.crt, client.crt, client.key, ta.key
Поместить конфигурацию OpenVPN для клиента
cat <<EOF | sudo tee /etc/openvpn/client/client.conf
client
dev tun
proto udp
remote 10.0.0.1 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/client/ca.crt
cert /etc/openvpn/client/client.crt
key /etc/openvpn/client/client.key
tls-auth /etc/openvpn/client/ta.key 1
cipher AES-256-CBC
verb 3
EOF
Настройка автозапуска OpenVPN клиента:
# Автозапуск
sudo systemctl enable --now openvpn-client@client
Тестирование
Проверка Интерфейсов на Виртульных Машинах
VM A
VM B
Проверка Сервисов Сервера и Клиента OpenVPN
VM A
VM B
Проверка Досягаемости Интернета Виртуальной Машиной B через A
Запрос на веб ресурс проходит успешно.
Схема Сети после Настройки OpenVPN
[Интернет]
|
[Компьютер A (10.0.0.1)]
|— ens160 (NAT: 192.168.209.142)
|— ens224 (LAN: 10.0.0.1)
|— tun0 (VPN: 10.1.1.1)
|
[Компьютер B (10.0.0.2)]
|— ens160 (LAN: 10.0.0.2)
|— tun0 (VPN: 10.1.1.6)
Настройка Блокирование указанных Веб Ресурсов
Действия
На VM A
# Создаем новую цепочку
sudo iptables -N STREAM
# Добавляем правила для vk.com
sudo iptables -I OUTPUT -m string --string "vk.com" --algo bm --from 1 --to 600 -j STREAM
sudo iptables -I FORWARD -m string --string "vk.com" --algo bm --from 1 --to 600 -j STREAM
# Добавляем правила для ok.ru
sudo iptables -I OUTPUT -m string --string "ok.ru" --algo bm --from 1 --to 600 -j STREAM
sudo iptables -I FORWARD -m string --string "ok.ru" --algo bm --from 1 --to 600 -j STREAM
# Добавляем правила для mail.ru
sudo iptables -I OUTPUT -m string --string "mail.ru" --algo bm --from 1 --to 600 -j STREAM
sudo iptables -I FORWARD -m string --string "mail.ru" --algo bm --from 1 --to 600 -j STREAM
# Устанавливаем действие REJECT для цепочки STREAM
sudo iptables -A STREAM -j REJECT
# Сохраняем правила
sudo iptables-save | sudo tee /etc/sysconfig/iptables
Тестирование
Для Тестирования, веб запросы будут отправлены этим сайтам и сайту на которую нет блокировки.
На VM B:
Сайты заблокированы успешно.