/easywall

Software for simple control of Linux firewalls via configuration files written in Python.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

easywall

GitHub Actions Build Coveralls github GitHub license GitHub repo size Project Version Discord Support Beerpay

Today Firewalls are more important than years before. Hackers and Bots are trying to invade your server. So what is the most effective way to prevent this? Set up a firewall! But which one? IPTables is the strongest firewall in Linux environments. So we wanted to make IPTables usable by everyone. We created a simple Web Interface for IPTables so everyone can install and use it on his / her server.

Features

  • Configuration of Firewall Rules using a simple Webinterface
  • Blacklist for blocking incoming triffic from a IPV4 / IPV6 Address
  • Whitelist to allow all incoming network traffic from a specific IP Address
  • Allow incoming traffic to a single TCP or UDP Port
  • Allow incoming Traffic from a TCP or UDP Port range
  • Automatic Reset of Firewall Settings on connection loss or bad firewall settings

Demo

You can view an online version of the program as a demo under the following link:

https://dev01vt.wdkro.de:12227/ (Certificate is provided by Let's Encrypt)

  • Username: demo
  • Password: demo

The online demo version is reset every 30 minutes and all data is deleted. The demo has only the frontend installed without the backend. Configuration changes are therefore not saved or applied.

Roadmap for the next release

Most of you noticed that there are a lot of changes made at the moment, but the release status is still in "development" and there are no minor releases. This is because I currently enhance the project until the next release. The reason for this is because I learned a lot of Python 3 coding the last year in my main job. I want to use this knowledge and clean this project up so everyone can use it and there are less bugs than before (there were a lot of bugs). If you want to support me and improve the development speed you can send me a beer on beerpay 🍻

  • ✔️ create a setup.py and setup.cfg file for publishing
  • ✔️ create a requirements.txt file with all the requirements
  • ✔️ create github actions testing and linting
  • ✔️ implement custom rules feature
  • ✔️ create unit tests for all classes in easywall folder
  • ✔️ create unit tests for all classes in web folder
  • ✔️ rework all classes in easywall folder
  • ✔️ rework all classes in web folder
  • ✔️ set up a demo server
  • ✔️ write documentation for development setup
  • ✔️ SSL Implementation for web application
  • ❌ write documentation for installing and uninstalling

Roadmap for later version

These are long-term planned features. If you want to have more features listed here you just have to create a issue and we can discuss the feature.

  • ❌ create a pydoc documentation
  • ❌ finish all TODO: Docs documentations
  • ❌ create a ansible role for easy installing
  • ❌ fill the Help button in the web-app with content

Install

We provide extensive instructions on our installation page. You can find a script for automatic downloading and installation.

Documentation

Check the docs folder.

License

easywall is GNU General Public License v3.0.

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9