Microsoft Defender Network Filtering Platform

Copyright (c) 2021 Microsoft Corporation.  All rights reserved.

This project is a userspace firewall application. Clients can connect to it over UNIX domain socket.
Thie application provides the packets based on the what iptables rules clients has installed and redirected to a particular chain 
on this this program is listening on.

Basic Installation
==================
This application is dependent on following other sofwares based on which it's getting compiled or used.
Prerequisite to install this package:
 
# Ubuntu-16.04/18.04/20.04
    Compile time dependencies
    - libnetfilter-queue-dev
    - libnftnl-dev
    - libmnl-dev 
    - libglib2.0-dev

    Runtime or package dependencies
    - libnetfilter_queue
    - libmnl
    - libnetfilter-queue1
    - libglib2.0-0

# CentOS-7
    Compile time dependencies
    - libnetfilter_queue-devel
    - libmnl-devel
    - libnfnetlink-devel

    Runtime or package dependencies
    - libmnl
    - libnfnetlink
    - libnetfilter_queue
    - libnetfilter_conntrack
    - glib2

  1. `cd' to the directory containing the Makefile and run:
      make

  2. sudo ./mde_netfilter

  3. Need to install iptables rules to get it working. for e.g.
  $ sudo iptables -N mdequeue
  $ sudo iptables -I OUTPUT -p udp  --sport 12345 -m mark ! --mark 0x1/0x1 -j mdequeue
  $ test_client

Compilers and Options
=====================
  This application can be compiled using gcc or Clang. use below option to select the Compilers. Default compiler is gcc
  export CC=clang
  make
