Маршрутизация и фильтрация через ОС на сервере с использованием 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
для трафика, маршрутизируемого в ОС.