packetFilter Plugin Archive

Below is a list of versions that are available for the packetFilter plugin. To find other plugins, please review this listing of most recent releases of all plugins.

Plugins extend and enhance the functionality of Openfire. To install plugins, copy the .jar file into the plugins directory of your Openfire installation.

Packet Filter Plugin Readme

Overview

The packet filter plugin allows you to create rules that will block or reject certain packets to the server.If you are upgrading, this version *WILL DELETE ALL YOUR OLD RULES!* I wasn't happy with some of the designof the 1.0 version so I fixed it. The old format of the rules was unworkable with the new and I couldn't finda good way to convert from the old format, sorry.

Group Rule Auto Creation

By default the packet filter plugin will auto-create rules on Shared Group changes ensuring groups can always communicate with each other.
To disable this behaviour set the following Openfire System Property to false:

  • packetfilter.autocreate.grouprules - true/false

Installation

Copy packetFilter.jar into the plugins directory of your Openfire installation. Theplugin will then be automatically deployed. To upgrade to a new version, copy the newpacketFilter.jar file over the existing file.

Currently only the following databases are supported :

  • Postgresql
  • Mysql
  • MSSQL
  • Hsqldb (embedded)
  • Oracle - I created a schema for this and put it in the database/extra subdirectory of the plugin. I can't get the schema to automatically apply itself when the plugin deploys, it has to be deployed manually

Configuration

The Packet Filter plugin can be configured under "Server"-"Server Settings"-"Packet Filter Rules".

Using the Plugin - Creating Rules

Actions

Actions come in 3 types Pass, Drop and Reject.

  • Pass - This will allow the packet to be delivered normally.
  • Drop - This will silently drop the packet without notifying the sender.
  • Reject - This rule tries to notify the person who sent it that their message was rejected. There are a couple issues with this. First, not all clients handle forbidden packet condition. The notification of users that their packet was rejected is therefore pretty spotty, your mileage may vary. This rule has 2 configurable options that can be set in the system properties screen :
    • 1. pf.rejectMessage : Defaults to "Your message was rejected by the packet filter".
    • 2. pf.rejectSubject : Defaults to "Rejected"
    • 3. pf.From : Defaults to "packetFilter".

Disable

This allows you to quickly disable a rule without deleting it. Disabled rules will still appear on the main rule page but will have a strike through like so :

disabled rule

Packet Type

This specifies what type of packets you want to disable your choices are :

  • Message - Regular old message.
  • Presence - Presence Info.
  • IQ - Used to transfer most other data.
  • MUC - Multi User Chat, chat rooms.
  • MUC Private Message - A private message within a chat room
  • Any - All of the above

From

This specifies the source base JID. Currently resource specific rules aren't supported. The options for specifying a source are :

  • Any - Just like it sounds, if the source is anything.
  • User - These are all the local users defined on your Openfire server, all user accounts.
  • Group - All groups defined on your server. The source will match if the sender is a member of the specified group or if Any Group is selected will match members in any group.
  • Other - This will let you specify a free form JID. (test@example.com). One wild card can be specified to do a whole domain e.g. *@example.com.

To

This specifies the destination base JID. The options for selecting the destination JID are the same as above.

Log

This prints a message to the info.log when the rule is executed. This is recommend only for trouble shooting as it can fill up the logs pretty quickly in production environments. Some example output :

Rejecting packet from bart@nate-putnams-computer.local/Adium to lisa@nate-putnams-computer.local/Psi

Description

Leave yourself a note so you can remember why you wrote the rule in the first place. :)

Changing Rule Order

The first rule that matches an incoming packet will be executed. For example consider the following rules :

example rules

Here we don't want any of the Simpson's talking to each other so every message from members of the Simpson group to each other are dropped. However, Marge and Homer should be able to talk to each other. To accomplish this rules allowing Homer to send message packets to Marge and vice versa are placed before the drop rule. New rules are automatically appended to the rule list. Rules can be moved at anytime using the arrows in the UI. When a rule is moved the changes take effect immediately.

Known Issues

  • Selectable components are only loaded when the plugin is initialized. If you add a component (AIM Transport etc..), it won't appear in the rule form until the server or plugin is restarted.
  • 2.0 will delete all your 1.0 rules.
  • Clustering - I haven't tested this plugin in a cluster. I've added some support for it so that rules *should* be synced across all nodes but I haven't tested it. 2.1 will contain more clustering goodness.
  • Releases Info File Version Released Openfire Version
    Plugin Packet Filter
    Rules to enforce ethical communication
    ReadMe Changelog Download 3.3.2 Tue Nov 21 10:13:36 UTC 2023 4.0.0 +
    Plugin Packet Filter
    Rules to enforce ethical communication
    ReadMe Changelog Download 3.3.1 Tue Nov 10 00:00:00 UTC 2020 4.0.0 +
    Plugin Packet Filter
    Rules to enforce ethical communication
    ReadMe Changelog Download 3.3.0 Mon Oct 12 00:00:00 UTC 2015 4.0.0 +
    Plugin Packet Filter
    Rules to enforce ethical communication
    ReadMe Changelog Download 3.2.0 Fri Sep 13 00:00:00 UTC 2013 3.9.0 +
    Plugin Packet Filter
    Rules to enforce ethical communication
    ReadMe Changelog Download 3.0.1 Sat May 07 00:00:00 UTC 2011 3.7.0 +
    Plugin Packet Filter
    Rules to enforce ethical communication
    ReadMe Changelog Download 2.0.2 Sat Dec 08 00:00:00 UTC 2007 3.5.0 +

    The plugins below, so-called SNAPSHOTS, are build automatically by the continuous integration system. They represent the latest development, but are untested.

    Snapshots Info File Version Built at Openfire Version
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.3-SNAPSHOT Wed Jun 26 10:46:43 UTC 2024 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.3-SNAPSHOT Tue Nov 21 10:13:00 UTC 2023 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.2-SNAPSHOT Wed May 03 19:58:27 UTC 2023 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.2-SNAPSHOT Thu Mar 09 10:33:33 UTC 2023 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.2-SNAPSHOT Thu Apr 21 13:37:00 UTC 2022 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.2-SNAPSHOT Wed Oct 27 13:49:19 UTC 2021 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.2-SNAPSHOT Wed Feb 03 15:49:06 UTC 2021 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.2-SNAPSHOT Wed Nov 11 10:12:53 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Fri Oct 30 13:50:12 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Tue Oct 27 14:15:33 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Thu Apr 02 13:40:05 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Tue Feb 11 15:16:47 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Tue Feb 11 14:34:53 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Tue Feb 11 14:19:02 UTC 2020 4.0.0 +
    Plugin Packet Filter
    ReadMe Changelog Download 3.3.1-SNAPSHOT Fri Jan 31 19:29:08 UTC 2020 4.0.0 +