Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

find2deny

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

find2deny

find Bot IPs in log file to firewall them

  • 0.2.10
  • PyPI
  • Socket score

Maintainers
1

find2deny


Tools to build Firewall Command for UFW from List of (Apache)-Log-files.

It creates a file block-ip.sh which contains Linux UWF-Command to block IP-network, but it does not change any Firewall-rules on your computer.

Installation

To install the latest release on PyPI <https://pypi.org/project/find2deny/>_, simply run:

::

pip install find2deny

Or to install the latest development version, run:

::

git clone [TODO] cd find2deny python setup.py install

Quick Tutorial

For example, you have a set of Apache Log-files in a directory apache2 like

  • access.log
  • access.log.1,
  • access.log.2.gz,
  • ...

The python script find2deny-cli can create a shell-Script block-ip.sh which contains commands like

::

#!/bin/bash
ufw deny from 1.2.3.4/0 to any
ufw deny from 1.2.3.4/1 to any
...
  1. Make a Configuration-File: Simple copy this configuration to a file, say config.toml::

     verbosity = "INFO"
     # Path to apache log files in system
     log_files = ["apache2/access.log.*"]
     # Log Pattern
     log_pattern = '%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"'
     # temporary sqlite database
     database_path="./blocked-ip.sqlite"
    
    
     [[judgment]]
         name = "path-based-judgment"
         [judgment.rules]
             bot_request = [
                 "/?XDEBUG_SESSION_START=phpstorm",
                 "/phpMyAdmin/",
                 "/pma/",
                 "/myadmin/",
                 "/MyAdmin/",
                 "/mahua/",
                 "/wp-login",
                 "/webdav/",
                 "/help.php",
                 "/java.php",
                 "/db_pma.php",
                 "/logon.php",
                 "/help-e.php",
                 "/hell.php",
                 "/defect.php",
                 "/webslee.php",
                 "http://www.123cha.com/",
                 "http://www.wujieliulan.com/",
                 "http://www.epochtimes.com/",
                 "http://www.ip.cn/",
                 "www.baidu.com:443"
             ]
    
     [[judgment]]
         name = "time-based-judgment"
         [judgment.rules]
             max_request = 501
             interval_seconds = 10
    
    
     [[execution]]
         name = "ufw_cmd_script"
         [execution.rules]
             script = "./block-ip.sh"
    
  2. Run script::

     find2deny-init-db blocked-ip.sqlite
    

    to create a Sqlite-Database in file blocked-ip.sqlite. The filename must match the configuration database_path in the file config.toml.

  3. Run::

     find2deny-cli config.toml
    

    to create file block-ip.sh. Then you can examinate the file block-ip.sh and run it from your shell to update your firewall.

Configuration

The syntax used in configuration file ist Toml <https://github.com/toml-lang/toml>_. There are three sections in a configuration files, as you see above

Common Configuration

This section defines common configurations, such as how much infos should be printed onto console, ect.

Judgment

This section defines a list of Judgments. They are identified by name. At this time there are only two judments: path-based-judgment and time-based-judgment. Each judgment has its owns configuration.

Judgments are classes, which use rules defined in configuration to decide which IPs should be blocked. They extend the class AbstractIpJudgment.

Execution

This section defines a list of executions. At this time there is only one execution. Executions are classes which create firewall-rules or execute something, which nessesary to block an IP, or , in this implementation, block the network, to which the ip belongs.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc