Маршрутизация и фильтрация через ОС на сервере с использованием iptables

Исходные данные

  • Сервер с установленным DOSGate, настроенный согласно документации.
  • Настроены входные интерфейсы.

Настройка

Установить зависимости:

apt install iptables nftables iproute2

Настроить все интерфейсы:.

  • Входные и выходные - как статические без шлюза.
  • Если для входа / выхода используются VLAN, настроить интерфейсы с соответствующими тегами.

Выбрать неиспользуемую таблицу маршрутизации:

  • Добавьте имя таблицы в файл /etc/iproute2/rt_tables
  • Используйте имя таблицы в команде ip route.

Добавить маршруты в таблицу R:

ip route add x.x.x.x/x via z.z.z.z table R

Добавить правила для входных интерфейсов:

ip rule add iif <input_intf> table R

Установить iptables-nft как основную версию для iptables:

update-alternatives --config iptables

Включить машрутизацию IPv4 и IPv6:

Для IPv4:

sysctl -w net.ipv4.conf.ip_forward=1

Для IPv6:

sysctl -w net.ipv6.conf.<input_intf>.forwarding=1

Отключить rpfilter на входных интерфейсах:

Для всех интерфейсов:

sysctl -w net.ipv4.conf.all.rp_filter=0

Для конкретного интерфейса:

sysctl -w net.ipv4.conf.<input_intf>=0

Создать набор правил в iptables.

Добавить правило -j PASS для трафика, маршрутизируемого в ОС.