Professional Documents
Culture Documents
Jzsef Kadlecsik
<kadlec@blackhole.kfki.hu>
HAS Wigner Research Centre for Physics
Content
Properties of ipset
Special firewalls
iptables: http://www.netfilter.org/
Linear evaluation
iptables-restore
Open Software Days 2013, Copenhagen
nf-hipac: http://www.hipac.org/
ipset: http://ipset.netfilter.org/
Real comparisons I.
ipset
ipset 6.x
Kernel-userspace communication:
netlink
IPv6 support
Syntax similar to ip
netlink
netlink II.
Netlink subsystems:
Rtnetlink
Nfnetlink
Conntrack-tools
NFLOG
...
ipset
Genetlink
Open Software Days 2013, Copenhagen
Formalized
Needs a simple kernel netlink interface
modification:
libnfnetlink
libnl
libmnl
Type: method:elem1[,elem2[,elem3]]
Elem: part1[,part2[,part3]]
hash:ip,port,ip
192.168.1.1,80,10.10.10.10
dst,dst,src
Keyword-based syntax
Backward compatibility
Timeout
createtesthash:iptimeout10
addtest10.0.0.1timeout0
addexisttest10.0.0.1timeout20
ipset save-restore
ipsetsave>ipset.rules
ipsetrestore<ipset.rules
ipsetcreateservershash:ip,port
ipsetaddservers192.168.0.1,tcp:25
ipsetaddservers192.168.0.2,tcp:80
iptablesAFORWARDmset\
matchsetserversdst,dst\
mstatestateNEWjlogaccept
SET target
ipsetcreatescannershash:ip\
timeout$((60*60*24*7))
iptablesAFORWARDd<honeypot>\
ptcpdport22\
jSETaddsetscannerssrc
Swap
ipsetcreatemainset...
iptablesA...msetmatchsetmainset...
ipsetcreatemainsettmp
ipsetaddmainsettmp
...
ipsetswapmainsetmainsettmp
ipsetdestroymainsettmp
0
3
0
4
1
5
0
6
0
7
bitmap:ip type
bitmap:ip examples
Store IP addresses:
ipsetcreateset1bitmap:iprange192.168.0.0192.168.255.255
[ipsetcreateset1bitmap:iprange192.168.0.0/16]
ipsetaddset1192.168.0.1
ipsetaddset1192.168.0.2192.168.0.15
ipsetcreateset2bitmap:iprange0.0.0.0/0netmask16
ipsetaddset210.1.0.0
ipsetaddset210.7.0.1
Open Software Days 2013, Copenhagen
bitmap:ip,mac type
ipsetcreateset3bitmap:ip,macrange192.168.0.0/16
ipsetaddset3192.168.1.1,00:01:23:45:67:89
ipsetaddset3192.168.2.3
bitmap:port type
ipsetcreateset4bitmap:portrange01024
ipsetaddset422
Fast
Deterministic
Hash function
10.0.0.2
172.16.0.5
172.16.0.5
192.168.0.1
Hash elem:
Hash elem:
Next
Next
Prev
Prev
10.0.0.2
192.168.0.1
10.0.0.2,
192.168.0.1
Hash family
hash:ip type
Random IP addresses
Store IP addresses
ipsetcreateset5hash:iphashsize1024
ipsetaddset510.1.1.1
ipsetaddset5192.168.52.3
ipsetcreateset6hash:ipfamilyinet6netmask64
ipsetaddset62001:2001:2001::
ipsetaddset62001:2001:abcd::
Open Software Days 2013, Copenhagen
IPv4: /1 - /32
IPv6: /1 - /128
Exceptions: nomatch
Speed linearly grows with the number
of different sizes of the netblocks
hash:net type
ipsetcreateset7hash:net
ipsetaddset7192.168.1.0/24
Ipsetaddset7192.168.1.0/30nomatch
ipsetaddset710.1.8.0/21
Store networks
ipsetcreateset1bitmap:iprange192.168.0.0/16netmask24
ipsetaddset1192.168.1.0/24
ipsetaddset1192.168.2.0/24
ipsetcreateset2hash:ipnetmask24
ipsetaddset210.1.1.0/24
ipsetaddset2192.168.2.0/24
ipsetcreateset3hash:net
ipsetaddset3192.168.1.0/24
ipsetaddset310.1.8.0/21
default TCP
hash:ip,port type
ipsetcreateset8hash:ip,port
ipsetaddset8192.168.1.1,icmp:ping
ipsetaddset8192.168.1.1,22
ipsetaddset8192.168.1.1,80
ipsetaddset8192.168.1.4,25
ipsetaddset8192.168.1.254,udp:53
ipsetaddset8192.168.1.254,tcp:53
hash:ip,port,ip type
ipsetcreateset9hash:ip,port,ip
ipsetaddset9192.168.1.1,22,10.1.1.1
ipsetaddset9192.168.1.1,80,10.1.1.2
ipsetaddset9192.168.1.4,25,10.1.1.1
hash:ip,port,net types
ipsetcreateset10hash:ip,port,net
ipsetaddset10192.168.1.1,22,10.1.1.0/24
ipsetaddset10192.168.1.1,80,10.2.0.0/16
ipsetaddset10192.168.1.4,25,10.1.1.0/24
hash:net,port type
ipsetcreateset7hash:net,port
ipsetaddset7192.168.1.0/24,tcp:80
ipsetaddset710.1.8.0/21,icmp:ping
hash:ip,port,ip
hash:ip,port,net
hash:ip,port
hash:net,port
hash:ip
hash:net
hash:net,iface type
ipsetcreateset7hash:net,iface
ipsetaddset7192.168.1.0/24,eth1
ipsetaddset710.1.8.0/21,eth0
list:set type
Set union
ipsetcreateset13list:setsize6
ipsetaddset13set1
ipsetaddset13set2
ipsetaddset13set3
...
Open Software Days 2013, Copenhagen
Ipset and tc
Thanks!