Skip to content

Commit e7b6395

Browse files
committed
anonymization intermediate: add README
1 parent 1dec49d commit e7b6395

File tree

2 files changed

+62
-3
lines changed

2 files changed

+62
-3
lines changed

README.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,15 @@ network interface and a port. Multiple instances of these plugins can run concur
3030

3131
**Intermediate plugins** - modify, enrich and filter flow records.
3232

33-
- anonymization - anonymize IP addresses (in flow records) with Crypto-PAn algorithm.
33+
- `anonymization <src/plugins/intermediate/anonymization/>`_ - anonymize IP addresses
34+
(in flow records) with Crypto-PAn algorithm.
3435

3536
**Output plugins** - store or forward your flows.
3637

3738
- `JSON <src/plugins/output/json>`_ - convert flow records to JSON and send/store them
38-
- dummy - simple module example,
39-
- `lnfstore <extra_plugins/output/lnfstore>`_ (*) - store all flows in nfdump compatible format for long-term preservation
39+
- `dummy <src/plugins/output/dummy>`_ - simple module example,
40+
- `lnfstore <extra_plugins/output/lnfstore>`_ (*) - store all flows in nfdump compatible
41+
format for long-term preservation
4042

4143
\* Must be installed individually due to extra dependencies
4244

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
Anonymization (intermediate plugin)
2+
===================================
3+
4+
The plugin performs IPv4/IPv6 address anonymization of all flow records. There are two
5+
available methods that could be applied on IP addresses, CryptoPAN and address truncation.
6+
7+
To identify IPFIX fields of a record to modify, the plugin uses a type of
8+
an Information Element linked to each field. Thus, any record field with known
9+
corresponding Information Element and type is always automatically anonymized.
10+
Enterprise-specific Information Elements are supported too.
11+
12+
Example configuration
13+
---------------------
14+
15+
.. code-block:: xml
16+
17+
<intermediate>
18+
<name>Flow anonymization</name>
19+
<plugin>anonymization</plugin>
20+
<params>
21+
<type>CryptoPAn</type>
22+
<key>0123456789abcdefghijklmnopqrstuv</key>
23+
</params>
24+
</intermediate>
25+
26+
Parameters
27+
----------
28+
29+
:``type``:
30+
Type of anonymization method. The string is case insensitive.
31+
32+
:*CryptoPAn*:
33+
Cryptography-based sanitization and prefix-preserving method. The mapping from original
34+
IP addresses to anonymized IP addresses is one-to-one and if two original IP addresses
35+
share a k-bit prefix, their anonymized mappings will also share a k-bit prefix.
36+
Be aware that this cryptography method is very demanding and can limit throughput
37+
of the collector.
38+
39+
:*Truncation*:
40+
This method keeps the top part and erases the bottom part of an IP address. Compared
41+
to the CryptoPAn method, it is considerably faster, however, mapping from the original
42+
to anonymized IP address is many-to-one. For example the IPv4 address "1.2.3.4" is
43+
mapped to the address "1.2.0.0".
44+
45+
:``key``:
46+
Optional cryptography key for CryptoPAn anonymization. The length of the string must be exactly
47+
32 bytes. If the key is not specified, a random one is generated during the initialization.
48+
49+
Notes
50+
-----
51+
52+
Usually all common IP addresses are automatically anonymized. However, if an IPFIX field is not,
53+
make sure that the particular Information Element is
54+
defined among other definitions provided by `libfds <https://github.com/CESNET/libfds/>`_ library.
55+
Mainly in case of Enterprise-Specific Information Elements, there is a chance that the
56+
definitions are missing. See the documentation of the library, for help to easily add extra
57+
definitions in few steps.

0 commit comments

Comments
 (0)