Giter Site home page Giter Site logo

waf's Introduction

WAF

This project is a WAF (Application Firewall) for Linux that protects HTTP servers from the following threats:

  • Dos (Denial-of-service) attack

  • DDOS (Distributed Denial-of-Service) attack

  • SQL injection

The project has three parts. The actual WAF porgram, a user interface and a server.

  1. The WAF program is the part that protects the server from attacks and also saves a log of all of the attacks that occurred and sends them to the server. The program has a config file that saves settings like which account(username and password) to save the log and the maximum number of packets that are sent when there is a dos or ddos attack on the server. The attacker's IP is added to a blacklist, and if he tries to send any packet from his IP, the packet will be dropped immediately.

  2. The user interface is the part of the program that makes it possible for the user to watch his log, change settings for the program, and edit the blacklist. It's also connected to the server to login, create a new account, and get the log.

  3. The server saves all of the logs, authenticates users when they want to login and create accounts. The server is a multithreaded server.

How to run

server:

To run the server open the terminal in the folder server or, go to the folder using the command: cd "WAF executable files"/server/

And then run the server using the command: sudo ./main

WAF:

To run the WAF open the terminal in the folder WAF or, go to the folder using the command: cd "WAF executable files"/client/WAF/

And then run the WAF using the command: sudo ./Main

Client GUI:

To run the client open the terminal in the folder client or, go to the folder using the command: cd "WAF executable files"/client/

And then run the client using the command: sudo ./client

Is not possible to run the client GUI if the server is not active!

What I Learned

  • How to use the libnetfilter_queue library
  • How to manipulate network traffic(drop packets,accept packets, etc.)
  • How to extract data from packets and filter them
  • How to defend against DOS, DDOS, and SQL injection attacks
  • How to design a GUI using QT
  • I learned more about networking,Linux OS and the world of cybersecurity.

waf's People

Contributors

eyal6626 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.