Skip to content
  • Pablo Neira Ayuso's avatar
    netfilter: ctnetlink: add support for user-space expectation helpers · bc01befd
    Pablo Neira Ayuso authored
    This patch adds the basic infrastructure to support user-space
    expectation helpers via ctnetlink and the netfilter queuing
    infrastructure NFQUEUE. Basically, this patch:
    
    * adds NF_CT_EXPECT_USERSPACE flag to identify user-space
      created expectations. I have also added a sanity check in
      __nf_ct_expect_check() to avoid that kernel-space helpers
      may create an expectation if the master conntrack has no
      helper assigned.
    * adds some branches to check if the master conntrack helper
      exists, otherwise we skip the code that refers to kernel-space
      helper such as the local expectation list and the expectation
      policy.
    * allows to set the timeout for user-space expectations with
      no helper assigned.
    * a list of expectations created from user-space that depends
      on ctnetlink (if this module is removed, they are deleted).
    * includes USERSPACE in the /proc output for expectations
      that have been created by a user-space helper.
    
    This patch also modifies ctnetlink to skip including the helper
    name in the Netlink messages if no kernel-space helper is set
    (since no user-space expectation has not kernel-space kernel
    assigned).
    
    You can access an example user-space FTP conntrack helper at:
    http://people.netfilter.org/pablo/userspace-conntrack-helpers/nf-ftp-helper-userspace-POC.tar.bz
    
    
    
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
    bc01befd