anonip是一个匿名化日志文件中ip地址的工具。
anonip的Python项目详细描述
anonip
洋地黄 https://www.digitale-gesellschaft.ch
以前 瑞士隐私基金会 https://www.privacyfoundation.ch/
说明
anonip是一个匿名化日志文件中ip地址的工具。
它屏蔽了ipv4和ipv6地址的最后一位。这样的话 保留相关信息,而IP地址与 特别的个体。
日志条目直接从apache传输到anonip。未屏蔽IP 地址从不写入任何文件。
借助CAT,改写现有日志文件也是可能的。
有关nginx的用法,请参见:https://github.com/DigitaleGesellschaft/Anonip/issues/1
功能
- 屏蔽日志文件中的IP地址
- 可配置的屏蔽位数量
- 包含IP地址的列可以自由选择
- 适用于access.log和error.log文件
官方支持的python版本
- 2.7
- 3.5
- 3.6
- 3.7
依赖关系
如果您使用的是python版本>;=3.3,则没有外部 依赖关系。
对于python版本<;3.3:
调用
usage: anonip.py [-h] [-4 INTEGER] [-6 INTEGER] [-i INTEGER] [-o FILE]
[-c INTEGER [INTEGER ...]] [-l STRING] [-r STRING] [-p] [-d]
[-v]
Anonip is a tool to anonymize IP-addresses in log files.
optional arguments:
-h, --help show this help message and exit
-4 INTEGER, --ipv4mask INTEGER
truncate the last n bits (default: 12)
-6 INTEGER, --ipv6mask INTEGER
truncate the last n bits (default: 84)
-i INTEGER, --increment INTEGER
increment the IP address by n (default: 0)
-o FILE, --output FILE
file to write to
-c INTEGER [INTEGER ...], --column INTEGER [INTEGER ...]
assume IP address is in column n (1-based indexed;
default: 1)
-l STRING, --delimiter STRING
log delimiter (default: " ")
-r STRING, --replace STRING
replacement string in case address parsing fails
Example: 0.0.0.0)
-p, --skip-private do not mask addresses in private ranges. See IANA
Special-Purpose Address Registry.
-d, --debug print debug messages
-v, --version show program's version number and exit
用法
在apache配置(或vhost之一)中,日志输出需要 通过管道输送到anonip:
CustomLog "|/path/to/anonip.py [OPTIONS] --output /path/to/log" combined
就这样!所有IP地址都将被屏蔽在日志中。
备选方案:
cat /path/to/orig_log | /path/to/anonip.py [OPTIONS] --output /path/to/log
作为python模块
从stdin中读取:
fromanonipimportAnonipanonip=Anonip()forlineinanonip.run():print(line)
手动送料线:
fromanonipimportAnonipdata=['1.1.1.1','2.2.2.2','3.3.3.3']anonip=Anonip()forlineindata:print(anonip.process_line(line))
Python2还是3?
出于兼容性的原因,anonip使用shebang#! /usr/bin/env python
。
在所有Linux发行版上,除了Arch Linux,这将默认为python2。
使用Python3可以提高anonip的性能。如果
python3在您的系统上可用,您最好调用anonip
像这样:
python3 -m anonip [OPTIONS]
或
python3 /path/to/anonip.py [OPTIONS]
动机
在大多数情况下,IP地址是指个人的个人数据(或者至少 他们的互联网连接)。IP地址及其相关数据可能 因此,只有按照 适用的数据保护法律。
例如,只允许在很短的时间内存储来自web服务器的日志文件 限制或经有关人员自愿同意(只要 有关IP地址的信息可链接到个人)。
anonip试图避免这一点,但没有失去这些日志文件的好处。
通过屏蔽IP地址的最后一位,我们仍然能够区分 在一定程度上记录条目。与整个IP地址的移除相比, 我们仍然可以做一个粗略的地理定位以及反向DNS查找。但是 否则,不同的IP地址不再匹配特定的个人。