Помощь в настройке nftables для сервера с двумя интерфейсами
Здравствуйте!
Озвучиваю ТЗ. Имеется сервер с двумя сетевыми интерфейсами, один выходит в локалку(LAN), другой во внешнюю сеть(WAN). Необходимо, чтобы сервер позволял подключения из обеих сетей по определенным портам, например ssh, http, https, позволял пинг, разрешал доступ к dns. При этом, по дефолту, сервер должен выходить в интернет через WAN, однако, в случае если WAN, по какой-то причине недоступен (намеренно отключен, например), исходящие соединения шли через шлюз в локалке. Также, никакой компьютер локалки не может использовать сервер в качестве роутера. Все прочие соединения закрыть. ipv6 соединения или отключить или настроить также как ipv4.
Я не могу понять как в принципе подружить два интерфейса.
Ниже заготовка, очевидно, нерабочая.
#!/usr/sbin/nft -f
flush ruleset
define WAN_NIC = { eth0 }
define LAN_NIC = { eth1 }
table ip filter {
chain input {
type filter hook input priority 0; policy drop;
ct state invalid drop
iifname "lo" accept
iifname "lo" ip saddr != 127.0.0.0/8 drop
iifname $WAN_NIC tcp sport { ssh, http, https, http-alt } tcp dport 32768-65535 ct state established accept
iifname $LAN_NIC tcp sport { ssh } tcp dport 32768-65535 ct state established accept
}
chain output {
type filter hook output priority 0; policy drop;
oifname "lo" accept
oifname "lo" ip daddr != 127.0.0.0/8 drop
oifname $WAN_NIC tcp dport { ssh, http, https, http-alt } tcp sport 32768-65535 ct state new,established accept
oifname $LAN_NIC tcp dport { ssh } tcp sport 32768-65535 ct state new,established accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
}