Code Monkey home page Code Monkey logo

purifier's Introduction

Purifier

Purifier is a fast transparent stateful firewall powered by DPDK. It was created to solve transport layer DDoS attacks.

Installation

mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
  • Load Modules to Enable Userspace IO
sudo modprobe uio
sudo insmod kmod/igb_uio.ko
  • Define DPDK environment variable set path to DPDK
export RTE_SDK=/path/to/rte_sdk
  • set target (In most cases it will be x86_64-native-linuxapp-gcc)
export RTE_TARGET=x86_64-native-linuxapp-gcc
  • Compile the application
cd ../src
make

Runing app

For example to bind eth1 and eth2 from the current driver and move to use igb_uio

./tools/dpdk_nic_bind.py --bind=igb_uio eth1
./tools/dpdk_nic_bind.py --bind=igb_uio eth2

Run the app

./build/purifier -c 0x7 -n 4

Constraints

  • Tested with ixgbe NIC's

TODO

  • Add mbuf extension
  • Add ip defragmentation
  • Add telnet/ssh support
  • Rework lookup with SSE/AVX
  • Add new white/black lists based on bitmaps

purifier's People

Contributors

medvedv avatar phsm avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.