iptables-1.3.2-20050720
[iptables.git] / extensions / libipt_osf.man
1 The idea of passive OS fingerprint matching exists for quite a long time,
2 but was created as extension fo OpenBSD pf only some weeks ago.
3 Original idea was lurked in some OpenBSD mailing list (thanks
4 grange@open...) and than adopted for Linux netfilter in form of this code.
5
6 Original fingerprint table was created by Michal Zalewski <lcamtuf@coredump.cx>.
7
8 This module compares some data(WS, MSS, options and it's order, ttl,
9 df and others) from first SYN packet (actually from packets with SYN
10 bit set) with dynamically loaded OS fingerprints.
11 .TP
12 .B "--log 1/0" 
13 If present, OSF will log determined genres even if they don't match
14 desired one.    
15 0 - log all determined entries, 
16 1 - only first one.
17
18 In syslog you find something like this:
19 .IP
20 ipt_osf: Windows [2000:SP3:Windows XP Pro SP1, 2000 SP3]: 11.22.33.55:4024 -> 11.22.33.44:139
21 .IP
22 ipt_osf: Unknown: 16384:106:1:48:020405B401010402 44.33.22.11:1239 -> 11.22.33.44:80
23 .TP
24 .B "--smart"
25 if present, OSF will use some smartness to determine remote OS.
26 OSF will use initial TTL only if source of connection is in our local network.
27 .TP
28 .B "--netlink"
29 If present, OSF will log all events also through netlink NETLINK_NFLOG groupt 1.
30 .TP
31 .BI "--genre " "[!] string"
32 Match a OS genre by passive fingerprinting
33 .P
34 Example:
35
36 #iptables -I INPUT -j ACCEPT -p tcp -m osf --genre Linux --log 1 --smart
37
38 NOTE: -p tcp is obviously required as it is a TCP match.
39
40 Fingerprints can be loaded and read through /proc/sys/net/ipv4/osf file.
41 One can flush all fingerprints with following command:
42 .IP
43 echo -en FLUSH > /proc/sys/net/ipv4/osf
44 .P
45 Only one fingerprint per open/write/close.
46
47 Fingerprints can be downloaded from http://www.openbsd.org/cgi-bin/cvsweb/src/etc/pf.os