Conexões de loopback nftables não funcionam no CentOS 7

Conexões de loopback nftables não funcionam no CentOS 7

Eu removi firewallde instalei nftablesno CentOS 7 (kernel 3.10.0-1160.42.2.el7.x86_64). Meu conjunto de regras é o seguinte:

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

Desinstalei firewalldcompletamente e não tenho nenhuma iptablesregra.

Mas esta nftableconfiguração não permite loopbackconexão, chega até ping 127.0.0.1a atingir timeout.

Outras coisas (por exemplo http, sshencaminhamento de porta etc.) funcionam perfeitamente.

Não consegui encontrar nenhuma solução para isso. nft monitornão imprime nada.

Responder1

Eu descobri! O problema era a masqueradingregra incondicional.

eu substituí

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

com

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

e o problema resolvido!

informação relacionada