Skip to content

Задание №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. Включение маршрутизации пакетов в ядре ​

Открываем конфигурационный файл сетевых параметров ядра:

bash
vim /etc/net/sysctl.conf

Памятка по работе в Vim

  • Вход в режим редактирования: нажмите клавишу i.
  • Выход в командный режим: нажмите Esc.
  • Сохранить и выйти: введите :wq и нажмите Enter (или :q! для отмены и выхода без сохранения).

Находим данную строчку и меняем значение с 0 на 1:

text
net.ipv4.ip_forward = 1

Как сделать это одной командой без редактора

bash
echo "net.ipv4.ip_forward = 1" >> /etc/net/sysctl.conf

Перезапускаем сетевую подсистему, чтобы ALT Linux применил новые системные параметры:

bash
systemctl restart network

Шаг 2. Установка и настройка межсетевого экрана nftables ​

В ALT Linux современным стандартом управления правилами трансляции и фильтрации является nftables (пришёл на замену устаревшему iptables).

2.1. Установка пакетов ​

bash
# Обновляем кэш репозиториев и устанавливаем пакет nftables и текстовый редактор nano:
apt-get update && apt-get install nftables nano -y

2.2. Создание файла с правилами трансляции (NAT) ​

Создаём конфигурационный файл правил /etc/nftables/nftables.nft:

bash
nano /etc/nftables/nftables.nft

Важно

Если в файле присутствует другая конфигурация, полностью её удалите

Вставляем следующий текст:

bash
#!/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. Запуск и добавление в автозагрузку ​

Чтобы правила не слетели после перезагрузки машины на экзамене, настраиваем автозапуск службы:

bash
# Включаем службу в автозапуск и сразу запускаем её (флаг --now):
systemctl enable --now nftables

# Принудительно очищаем текущие правила и загружаем наш файл:
nft flush ruleset
nft -f /etc/nftables/nftables.nft

Что делает nft -f?

Ключ -f (file) компилирует и мгновенно загружает набор правил из указанного текстового файла прямо в ядро Linux.


Шаг 3. Проверка работоспособности (Верификация) ​

На демонстрационном экзамене обязательно убедитесь, что всё применилось:

1. Проверяем статус правил в ядре: ​

bash
nft list ruleset

Что должны увидеть: консоль выведет блок table ip nat ровно с теми строками, которые мы внесли в файл. Если вывод пустой — файл не применился через nft -f.


2. Проверяем статус пересылки пакетов: ​

bash
sysctl net.ipv4.ip_forward

Что должны увидеть:

text
net.ipv4.ip_forward = 1

3. Проверяем доступность внешнего Интернета: ​

bash
ping -c4 ya.ru

Что должны увидеть: успешные ответы (4 packets transmitted, 4 received, 0% packet loss). Это подтверждает, что интерфейс enp7s1 получил IP по DHCP и DNS-резолвинг работает штатно.

Работает на VitePress • Быстрый и удобный движок для документации