183

GitHub - ja-netfilter/ja-netfilter: A javaagent lib for network filter

 2 years ago
source link: https://github.com/ja-netfilter/ja-netfilter
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ja-netfilter v1.1.6

A javaagent lib for network filter

Usage

  • download from the releases page

  • add -javaagent:/absolute/path/to/ja-netfilter.jar argument (Change to your actual path)

    • add as an argument of the java command. eg: java -javaagent:/absolute/path/to/ja-netfilter.jar -jar executable_jar_file.jar
    • some apps support the JVM Options file, you can add as a line of the JVM Options file.
    • WARNING: DO NOT put some unnecessary whitespace characters!
  • edit your own rule list config file. The ja-netfilter will look for it in the following order(find one and stop searching):

    • passed as args of -javaagent. eg: -javaagent:/absolute/path/to/ja-netfilter.jar=/home/neo/downloads/janf_config.txt
    • file path in environment variable: JANF_CONFIG
    • file path in java startup property: janf.config. eg: java -Djanf.config="/home/neo/downloads/janf_config.txt"
    • some apps support the JVM Options file, you can add as a line of the JVM Options file. eg: -Djanf.config="/home/neo/downloads/janf_config.txt"
    • file path in the same dir as the ja-netfilter.jar, no need for additional configuration (PREFERRED!)
    • file path in your home directory, named: .janf_config.txt. eg: /home/neo/.janf_config.txt
    • file path in the subdirectory named .config in your home directory. eg: /home/neo/.config/janf_config.txt
    • file path in the subdirectory named .local/etc in your home directory. eg: /home/neo/.local/ect/janf_config.txt
    • file path in the directory named /usr/local/etc. eg: /usr/local/etc/janf_config.txt
    • file path in the directory named /etc. eg: /etc/janf_config.txt
  • run your java application and enjoy~

Config file format

[ABC]
# for the specified plugin called "ABC"

[URL]
EQUAL,https://someurl

[DNS]
EQUAL,somedomain

# EQUAL       Use `equals` to compare
# EQUAL_IC    Use `equals` to compare, ignore case
# KEYWORD     Use `contains` to compare
# KEYWORD_IC  Use `contains` to compare, ignore case
# PREFIX      Use `startsWith` to compare
# PREFIX_IC   Use `startsWith` to compare, ignore case
# SUFFIX      Use `endsWith` to compare
# SUFFIX_IC   Use `endsWith` to compare, ignore case
# REGEXP      Use regular expressions to match

Debug info

  • the ja-netfilter will NOT output debugging information by default
  • add environment variable JANF_DEBUG=1 and start to enable it
  • or add system property -Djanf.debug=1 to enable it

Plugin system

  • for developer:

    • view the scaffold project written for the plugin system
    • compile your plugin and publish it
    • just use your imagination~
  • for user:

    • download the jar file of the plugin
    • put it in the subdirectory called plugins where the ja-netfilter.jar file is located
    • enjoy the new capabilities brought by the plugin

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK