Nftables » Historique » Version 12
Laurent GUERBY, 30/03/2014 12:43
1 | 1 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 1 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | h1. Nftables |
4 | 1 | Laurent GUERBY | |
5 | 1 | Laurent GUERBY | h2. Liens |
6 | 1 | Laurent GUERBY | |
7 | 1 | Laurent GUERBY | * https://wiki.archlinux.org/index.php/Nftables |
8 | 12 | Laurent GUERBY | * http://kernelnewbies.org/nftables_examples |
9 | 1 | Laurent GUERBY | * https://home.regit.org/netfilter-en/nftables-quick-howto/ |
10 | 2 | Laurent GUERBY | * http://wiki.nftables.org/ |
11 | 10 | Laurent GUERBY | * http://lwn.net/Articles/324251/ First release of nftables |
12 | 10 | Laurent GUERBY | * http://lwn.net/Articles/324989/ Nftables: a new packet filtering engine By Jonathan Corbet March 24, 2009 |
13 | 10 | Laurent GUERBY | * http://lwn.net/Articles/564095/ The return of nftables By Jonathan Corbet August 20, 2013 |
14 | 8 | Laurent GUERBY | * http://ace-host.stuart.id.au/russell/files/tc/doc/ |
15 | 8 | Laurent GUERBY | * http://people.netfilter.org/kaber/nfws2008/nftables.odp |
16 | 1 | Laurent GUERBY | * http://www.slideshare.net/ennael/2013-kernel-recipesnftables |
17 | 10 | Laurent GUERBY | * https://home.regit.org/wp-content/uploads/2013/09/2013_kernel_recipes_nftables.pdf |
18 | 10 | Laurent GUERBY | * release 0.099 http://marc.info/?l=netfilter-devel&m=139022351723837&w=2 |
19 | 10 | Laurent GUERBY | * kernel first patch |
20 | 10 | Laurent GUERBY | ** http://www.spinics.net/lists/netdev/msg253683.html |
21 | 10 | Laurent GUERBY | ** http://www.spinics.net/lists/netdev/msg253698.html |
22 | 1 | Laurent GUERBY | * http://workshop.netfilter.org/2013/wiki/images/e/ee/Nftables-osd-2013-developer.pdf |
23 | 12 | Laurent GUERBY | * http://www.spinics.net/linux/lists/netfilter/ |
24 | 1 | Laurent GUERBY | |
25 | 7 | Laurent GUERBY | h2. Pre-requis |
26 | 7 | Laurent GUERBY | |
27 | 7 | Laurent GUERBY | * Debian jessie |
28 | 7 | Laurent GUERBY | * Kernel from experimental: https://packages.debian.org/fr/experimental/linux-image-3.14-rc7-amd64 |
29 | 7 | Laurent GUERBY | * libnfnl package compiled from https://github.com/aborrero/pkg-libnftnl (bientot dans debian sid: https://ftp-master.debian.org/new/libnftnl_1.0.0+git20140122-1.html) |
30 | 7 | Laurent GUERBY | * nftales package compiled from: http://mentors.debian.net/debian/pool/main/n/nftables/nftables_0.100-1.dsc |
31 | 7 | Laurent GUERBY | |
32 | 7 | Laurent GUERBY | |
33 | 1 | Laurent GUERBY | h2. Examples |
34 | 1 | Laurent GUERBY | |
35 | 3 | Laurent GUERBY | h3. Tools |
36 | 3 | Laurent GUERBY | |
37 | 1 | Laurent GUERBY | <pre> |
38 | 1 | Laurent GUERBY | root@h7:~# nft --version |
39 | 1 | Laurent GUERBY | nftables v0.100 (keith-alexander-filter) |
40 | 1 | Laurent GUERBY | root@h7:~# cat /proc/version |
41 | 1 | Laurent GUERBY | Linux version 3.14-rc7-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.2 (Debian 4.8.2-16) ) #1 SMP Debian 3.14~rc7-1~exp1 (2014-03-17) |
42 | 1 | Laurent GUERBY | </pre> |
43 | 1 | Laurent GUERBY | |
44 | 5 | Laurent GUERBY | h3. UDP counter |
45 | 3 | Laurent GUERBY | |
46 | 1 | Laurent GUERBY | <pre> |
47 | 1 | Laurent GUERBY | root@h7:~# nft add rule filter output udp dport 0-65535 ip daddr 91.224.149.151 counter |
48 | 1 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
49 | 1 | Laurent GUERBY | table ip filter { |
50 | 1 | Laurent GUERBY | chain output { |
51 | 1 | Laurent GUERBY | type filter hook output priority 0; |
52 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 counter packets 171479 bytes 256167178 # handle 13 |
53 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 ip daddr 91.224.149.151 counter packets 0 bytes 0 # handle 15 |
54 | 1 | Laurent GUERBY | } |
55 | 1 | Laurent GUERBY | } |
56 | 1 | Laurent GUERBY | root@h7:~# iperf -c 91.224.149.151 -u -b 100M |
57 | 1 | Laurent GUERBY | ------------------------------------------------------------ |
58 | 1 | Laurent GUERBY | Client connecting to 91.224.149.151, UDP port 5001 |
59 | 1 | Laurent GUERBY | Sending 1470 byte datagrams |
60 | 1 | Laurent GUERBY | UDP buffer size: 208 KByte (default) |
61 | 1 | Laurent GUERBY | ------------------------------------------------------------ |
62 | 1 | Laurent GUERBY | [ 3] local 91.224.149.2 port 41909 connected with 91.224.149.151 port 5001 |
63 | 1 | Laurent GUERBY | [ ID] Interval Transfer Bandwidth |
64 | 1 | Laurent GUERBY | [ 3] 0.0-10.0 sec 120 MBytes 100 Mbits/sec |
65 | 1 | Laurent GUERBY | [ 3] Sent 85471 datagrams |
66 | 1 | Laurent GUERBY | read failed: Connection refused |
67 | 1 | Laurent GUERBY | [ 3] WARNING: did not receive ack of last datagram after 1 tries. |
68 | 1 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
69 | 1 | Laurent GUERBY | table ip filter { |
70 | 1 | Laurent GUERBY | chain output { |
71 | 1 | Laurent GUERBY | type filter hook output priority 0; |
72 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 counter packets 256951 bytes 384184664 # handle 13 |
73 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 ip daddr 91.224.149.151 counter packets 85457 bytes 128014586 # handle 15 |
74 | 1 | Laurent GUERBY | } |
75 | 1 | Laurent GUERBY | } |
76 | 1 | Laurent GUERBY | root@h7:~# nft delete rule filter output handle 15 |
77 | 1 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
78 | 1 | Laurent GUERBY | table ip filter { |
79 | 1 | Laurent GUERBY | chain output { |
80 | 1 | Laurent GUERBY | type filter hook output priority 0; |
81 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 counter packets 256982 bytes 384190532 # handle 13 |
82 | 1 | Laurent GUERBY | } |
83 | 1 | Laurent GUERBY | |
84 | 1 | Laurent GUERBY | </pre> |
85 | 1 | Laurent GUERBY | |
86 | 1 | Laurent GUERBY | <pre> |
87 | 1 | Laurent GUERBY | nft add rule filter output udp dport 0-65535 counter |
88 | 1 | Laurent GUERBY | nft add rule filter input ip daddr 91.224.149.2 counter |
89 | 3 | Laurent GUERBY | </pre> |
90 | 3 | Laurent GUERBY | |
91 | 3 | Laurent GUERBY | h3. Log |
92 | 3 | Laurent GUERBY | |
93 | 3 | Laurent GUERBY | <pre> |
94 | 4 | Laurent GUERBY | root@h7:~# modprobe xt_LOG |
95 | 3 | Laurent GUERBY | root@h7:~# nft add rule filter output ip daddr 91.224.149.151 counter |
96 | 3 | Laurent GUERBY | root@h7:~# nft add rule filter output ip daddr 91.224.149.151 log |
97 | 3 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
98 | 3 | Laurent GUERBY | table ip filter { |
99 | 3 | Laurent GUERBY | chain output { |
100 | 3 | Laurent GUERBY | type filter hook output priority 0; |
101 | 3 | Laurent GUERBY | ip daddr 91.224.149.151 counter packets 0 bytes 0 # handle 16 |
102 | 3 | Laurent GUERBY | ip daddr 91.224.149.151 log # handle 17 |
103 | 3 | Laurent GUERBY | } |
104 | 3 | Laurent GUERBY | } |
105 | 3 | Laurent GUERBY | root@h7:~# ping -c 1 91.224.149.151 |
106 | 3 | Laurent GUERBY | PING 91.224.149.151 (91.224.149.151) 56(84) bytes of data. |
107 | 3 | Laurent GUERBY | 64 bytes from 91.224.149.151: icmp_seq=1 ttl=64 time=2.53 ms |
108 | 3 | Laurent GUERBY | |
109 | 3 | Laurent GUERBY | --- 91.224.149.151 ping statistics --- |
110 | 3 | Laurent GUERBY | 1 packets transmitted, 1 received, 0% packet loss, time 0ms |
111 | 3 | Laurent GUERBY | rtt min/avg/max/mdev = 2.530/2.530/2.530/0.000 ms |
112 | 3 | Laurent GUERBY | |
113 | 3 | Laurent GUERBY | Message from syslogd@h7 at Mar 28 14:38:08 ... |
114 | 3 | Laurent GUERBY | kernel:[ 6797.701781] IN= OUT=eth0.3131 SRC=91.224.149.2 DST=91.224.149.151 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=7861 DF PROTO=ICMP TYPE=8 CODE=0 ID=26178 SEQ=1 UID=0 GID=0 |
115 | 3 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
116 | 3 | Laurent GUERBY | table ip filter { |
117 | 3 | Laurent GUERBY | chain output { |
118 | 4 | Laurent GUERBY | type filter hook output priority 0; |
119 | 1 | Laurent GUERBY | ip daddr 91.224.149.151 counter packets 1 bytes 84 # handle 16 |
120 | 6 | Mehdi Abaakouk | ip daddr 91.224.149.151 log # handle 17 |
121 | 6 | Mehdi Abaakouk | } |
122 | 6 | Mehdi Abaakouk | } |
123 | 6 | Mehdi Abaakouk | root@h7:~# nft delete rule filter output handle 17 |
124 | 6 | Mehdi Abaakouk | root@h7:~# tail -1 /var/log/syslog |
125 | 6 | Mehdi Abaakouk | Mar 28 14:38:08 h7 kernel: [ 6797.701781] IN= OUT=eth0.3131 SRC=91.224.149.2 DST=91.224.149.151 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=7861 DF PROTO=ICMP TYPE=8 CODE=0 ID=26178 SEQ=1 UID=0 GID=0 |
126 | 6 | Mehdi Abaakouk | </pre> |