Loopback-соединения nftables не работают в CentOS 7

Я удалил firewalldи установил nftablesв ядре CentOS 7 (3.10.0-1160.42.2.el7.x86_64). Мой набор правил выглядит следующим образом:

# nft list ruleset

table ip my_table {
        set ssh_evils {
                type ipv4_addr
        }

        set sip_evils {
                type ipv4_addr
        }

        set dialers {
                type ipv4_addr
        }

        set sip_origins {
                type ipv4_addr
                elements = { 27.a.b.c, 51.p.q.r,
                             139.x.y.z }
        }

        set port_fw {
                type ipv4_addr
                elements = { 27.a.b.c }
        }

        set iax_ports {
                type inet_service
                elements = { 4501 }
        }

        chain input {
                type filter hook input priority 0; policy drop;
                iif "lo" accept
                tcp dport ssh ip saddr @ssh_evils counter packets 0 bytes 0 drop
                udp dport sip ip saddr @sip_evils counter packets 0 bytes 0 drop
                ct state vmap { invalid : drop, established : accept, related : accept, new : accept }
                udp dport { 1100-1199, 10000-20000 } accept
                udp dport @iax_ports accept
                udp dport { sip } ip saddr @sip_origins accept
                udp dport { sip } ip saddr @dialers accept
                tcp dport { ssh, http, https } accept
                icmp type echo-request limit rate 500/second accept
        }

        chain dummy1 {
                type filter hook prerouting priority -100; policy accept;
        }

        chain dummy2 {
                type filter hook forward priority 0; policy accept;
        }

        chain dummy3 {
                type filter hook postrouting priority 100; policy accept;
        }

        chain port_forward {
                type nat hook prerouting priority -10; policy accept;
                tcp dport 40004 ip saddr @port_fw dnat to 192.168.101.4:http
                tcp dport 40005 ip saddr @port_fw dnat to 192.168.101.5:http
                tcp dport 40009 ip saddr @port_fw dnat to 192.168.101.9:http
                tcp dport 50001 ip saddr @port_fw dnat to 10.1.1.2:http
        }

        chain sip_forward {
                type nat hook prerouting priority -10; policy accept;
                udp dport { 6060-6080 } redirect to :sip
        }

        chain tmp_forward {
                type nat hook prerouting priority -10; policy accept;
        }

        chain masq {
                type nat hook postrouting priority 10; policy accept;
                masquerade
        }
}

Я полностью удалил firewalldи не имею никакого правила iptables.

Но эта nftableконфигурация не позволяет loopbackсоединение, даже ping 127.0.0.1получает тайм-аут.

Прочее (. http, sshпорт -перенаправление и т. д. )работает отлично.

Я не смог найти никакого решения этой проблемы. nft monitorничего не печатает.

0
задан 10 September 2021 в 16:02
1 ответ

Я понял! Проблема заключалась в безусловном правиле masquerading.

Я заменил

chain masq {
        type nat hook postrouting priority 10; policy accept;
        masquerade
}

на

chain masq {
        type nat hook postrouting priority 10; policy accept;
        oif != "lo" masquerade
}

и проблема решена!

0
ответ дан 10 September 2021 в 21:59

Теги

Похожие вопросы