如何在Ubuntu 18.04

时间:2018-05-31 05:08:38

标签: netfilter ubuntu-18.04

我正在玩libnetfilter_conntrack

来捕捉数据包

到目前为止,以下代码在Ubuntu上工作,除了Ubuntu 18.04。

尽管浏览或访问ssh,但没有输出。

你知道为什么???

static int cb(enum nf_conntrack_msg_type eMsgType,
                struct nf_conntrack *psConntrack,
                void *pvData)
{
    char buf[1024] = {0,};

    nfct_snprintf(buf, sizeof(buf), psConntrack, eMsgType, NFCT_O_DEFAULT, NFCT_OF_TIME);
    printf("%s\n", buf);

    return NFCT_CB_STOP;
}
int main()
{
    struct nfct_handle *pSNfctHandle;

    pSNfctHandle = nfct_open(CONNTRACK, NFCT_ALL_CT_GROUPS);
    nfct_callback_register(pSNfctHandle, NFCT_T_ALL, cb, NULL);

    nfct_catch(pSNfctHandle);
    nfct_close(pSNfctHandle);

    return 0;
}

我在添加nf_conntrack,nf_conntrack_ipv4,nf_conntrack_netlink内核模块后进行了测试。

2 个答案:

答案 0 :(得分:0)

我们在18.04上遇到了类似的问题。到目前为止,唯一已知的解决方案是命令“ ufw enable”,但这是相当高级的。很高兴知道更多原子操作可以在Ubuntu 18.x上重新启用netfilter功能。随便提出建议吧。

答案 1 :(得分:0)

ufw enable 太强大了:)

代替命令:

  

ufw启用

添加以下防火墙规则:

/sbin/iptables -t filter -I OUTPUT  1 -p tcp -m conntrack --ctstate RELATED,ESTABLISHED
/sbin/ip6tables -t filter -I OUTPUT  1 -p tcp -m conntrack --ctstate RELATED,ESTABLISHED

如有必要,您还可以使用INPUT和FORWARD链