Las conexiones de loopback de nftables no funcionan en CentOS 7

Las conexiones de loopback de nftables no funcionan en CentOS 7

Lo eliminé firewallde instalé nftablesen CentOS 7 (kernel 3.10.0-1160.42.2.el7.x86_64). Mi conjunto de reglas es el siguiente:

# 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
        }
}

Lo he desinstalado firewalldpor completo y no tengo ninguna iptablesregla.

Pero esta nftableconfiguración no permite loopbackla conexión, incluso ping 127.0.0.1se agota el tiempo de espera.

Otras cosas (por ejemplo http, sshreenvío de puertos, etc.) funcionan perfectamente.

No pude encontrar ninguna solución a esto. nft monitorno imprime nada.

Respuesta1

¡Me lo imaginé! El problema era la masqueradingregla incondicional.

reemplacé

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

con

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

y el problema solucionado!

información relacionada