Задание №2: Доступ к сети Интернет на ISP
В данном задании настраивается интернет-провайдер (ISP). Его задача — принимать трафик из локальных сетей офисов (HQ и BR) и выпускать их в глобальную сеть через динамическую трансляцию адресов (NAT / Masquerade).
Место выполнения
Все команды выполняются на виртуальной машине ISP (isp.au-team.irpo).
1. Теоретическая справка: что мы настраиваем и зачем?
Зачем нужен ip_forward = 1?
По умолчанию ядро Linux настроено как обычный компьютер: если на его сетевую карту приходит пакет, адресованный не ему, ядро его просто отбрасывает. Включение директивы net.ipv4.ip_forward = 1 сообщает ядру: «Ты теперь маршрутизатор, пересылай транзитные пакеты между разными интерфейсами».
Зачем нужен NAT Masquerade?
Сети наших офисов (172.16.1.0/28, 172.16.2.0/28, 192.168.x.x) относятся к приватным диапазонам RFC 1918. В открытом Интернете эти адреса не маршрутизируются. Механизм Masquerade («Маскарад») подменяет обратный серый адрес пакета на реальный IP-адрес внешнего интерфейса enp7s1, полученный от магистрального провайдера. Когда из Интернета приходит ответ, ISP возвращает пакет обратно нужному офисному серверу.
Шаг 1. Включение маршрутизации пакетов в ядре
Открываем конфигурационный файл сетевых параметров ядра:
vim /etc/net/sysctl.confПамятка по работе в Vim
- Вход в режим редактирования: нажмите клавишу
i. - Выход в командный режим: нажмите
Esc. - Сохранить и выйти: введите
:wqи нажмитеEnter(или:q!для отмены и выхода без сохранения).
Находим данную строчку и меняем значение с 0 на 1:
net.ipv4.ip_forward = 1Как сделать это одной командой без редактора
echo "net.ipv4.ip_forward = 1" >> /etc/net/sysctl.confПерезапускаем сетевую подсистему, чтобы ALT Linux применил новые системные параметры:
systemctl restart networkШаг 2. Установка и настройка межсетевого экрана nftables
В ALT Linux современным стандартом управления правилами трансляции и фильтрации является nftables (пришёл на замену устаревшему iptables).
2.1. Установка пакетов
# Обновляем кэш репозиториев и устанавливаем пакет nftables и текстовый редактор nano:
apt-get update && apt-get install nftables nano -y2.2. Создание файла с правилами трансляции (NAT)
Создаём конфигурационный файл правил /etc/nftables/nftables.nft:
nano /etc/nftables/nftables.nftВажно
Если в файле присутствует другая конфигурация, полностью её удалите
Вставляем следующий текст:
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat;
oifname "enp7s1" masquerade
}
}Разбор каждой строчки конфигурации:
#!/usr/sbin/nft -f— шебанг, указывающий, что файл является исполняемым сценарием правилnftables.flush ruleset— сброс правил. Очищает текущую таблицу в оперативной памяти перед загрузкой, чтобы правила не задваивались при повторном запуске.table ip nat { ... }— объявляет таблицу для протокола IPv4 с именемnat.chain postrouting { ... }— цепочка пост-маршрутизации. Срабатывает в самый последний момент — когда маршрутизатор уже решил, через какой интерфейс вытолкнуть пакет наружу.type nat hook postrouting priority srcnat;— привязывает цепочку к стандартному хуку ядра для подмены адреса источника (srcnat).oifname "enp7s1" masquerade— ключевое правило: для всего трафика, уходящего через внешний интерфейсenp7s1(Outbound Interface Name), включить динамическую маскировку (подмену IP на адрес интерфейса).
2.3. Запуск и добавление в автозагрузку
Чтобы правила не слетели после перезагрузки машины на экзамене, настраиваем автозапуск службы:
# Включаем службу в автозапуск и сразу запускаем её (флаг --now):
systemctl enable --now nftables
# Принудительно очищаем текущие правила и загружаем наш файл:
nft flush ruleset
nft -f /etc/nftables/nftables.nftЧто делает nft -f?
Ключ -f (file) компилирует и мгновенно загружает набор правил из указанного текстового файла прямо в ядро Linux.
Шаг 3. Проверка работоспособности (Верификация)
На демонстрационном экзамене обязательно убедитесь, что всё применилось:
1. Проверяем статус правил в ядре:
nft list rulesetЧто должны увидеть: консоль выведет блок table ip nat ровно с теми строками, которые мы внесли в файл. Если вывод пустой — файл не применился через nft -f.
2. Проверяем статус пересылки пакетов:
sysctl net.ipv4.ip_forwardЧто должны увидеть:
net.ipv4.ip_forward = 13. Проверяем доступность внешнего Интернета:
ping -c4 ya.ruЧто должны увидеть: успешные ответы (4 packets transmitted, 4 received, 0% packet loss). Это подтверждает, что интерфейс enp7s1 получил IP по DHCP и DNS-резолвинг работает штатно.
