Nftables » Historique » Version 7
Laurent GUERBY, 30/03/2014 11:29
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 | 1 | Laurent GUERBY | * https://home.regit.org/netfilter-en/nftables-quick-howto/ |
9 | 2 | Laurent GUERBY | * http://wiki.nftables.org/ |
10 | 7 | Laurent GUERBY | * https://lwn.net/Articles/324989/ |
11 | 1 | Laurent GUERBY | |
12 | 7 | Laurent GUERBY | h2. Pre-requis |
13 | 7 | Laurent GUERBY | |
14 | 7 | Laurent GUERBY | * Debian jessie |
15 | 7 | Laurent GUERBY | * Kernel from experimental: https://packages.debian.org/fr/experimental/linux-image-3.14-rc7-amd64 |
16 | 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) |
17 | 7 | Laurent GUERBY | * nftales package compiled from: http://mentors.debian.net/debian/pool/main/n/nftables/nftables_0.100-1.dsc |
18 | 7 | Laurent GUERBY | |
19 | 7 | Laurent GUERBY | |
20 | 1 | Laurent GUERBY | h2. Examples |
21 | 1 | Laurent GUERBY | |
22 | 3 | Laurent GUERBY | h3. Tools |
23 | 3 | Laurent GUERBY | |
24 | 1 | Laurent GUERBY | <pre> |
25 | 1 | Laurent GUERBY | root@h7:~# nft --version |
26 | 1 | Laurent GUERBY | nftables v0.100 (keith-alexander-filter) |
27 | 1 | Laurent GUERBY | root@h7:~# cat /proc/version |
28 | 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) |
29 | 1 | Laurent GUERBY | </pre> |
30 | 1 | Laurent GUERBY | |
31 | 5 | Laurent GUERBY | h3. UDP counter |
32 | 3 | Laurent GUERBY | |
33 | 1 | Laurent GUERBY | <pre> |
34 | 1 | Laurent GUERBY | root@h7:~# nft add rule filter output udp dport 0-65535 ip daddr 91.224.149.151 counter |
35 | 1 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
36 | 1 | Laurent GUERBY | table ip filter { |
37 | 1 | Laurent GUERBY | chain output { |
38 | 1 | Laurent GUERBY | type filter hook output priority 0; |
39 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 counter packets 171479 bytes 256167178 # handle 13 |
40 | 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 |
41 | 1 | Laurent GUERBY | } |
42 | 1 | Laurent GUERBY | } |
43 | 1 | Laurent GUERBY | root@h7:~# iperf -c 91.224.149.151 -u -b 100M |
44 | 1 | Laurent GUERBY | ------------------------------------------------------------ |
45 | 1 | Laurent GUERBY | Client connecting to 91.224.149.151, UDP port 5001 |
46 | 1 | Laurent GUERBY | Sending 1470 byte datagrams |
47 | 1 | Laurent GUERBY | UDP buffer size: 208 KByte (default) |
48 | 1 | Laurent GUERBY | ------------------------------------------------------------ |
49 | 1 | Laurent GUERBY | [ 3] local 91.224.149.2 port 41909 connected with 91.224.149.151 port 5001 |
50 | 1 | Laurent GUERBY | [ ID] Interval Transfer Bandwidth |
51 | 1 | Laurent GUERBY | [ 3] 0.0-10.0 sec 120 MBytes 100 Mbits/sec |
52 | 1 | Laurent GUERBY | [ 3] Sent 85471 datagrams |
53 | 1 | Laurent GUERBY | read failed: Connection refused |
54 | 1 | Laurent GUERBY | [ 3] WARNING: did not receive ack of last datagram after 1 tries. |
55 | 1 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
56 | 1 | Laurent GUERBY | table ip filter { |
57 | 1 | Laurent GUERBY | chain output { |
58 | 1 | Laurent GUERBY | type filter hook output priority 0; |
59 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 counter packets 256951 bytes 384184664 # handle 13 |
60 | 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 |
61 | 1 | Laurent GUERBY | } |
62 | 1 | Laurent GUERBY | } |
63 | 1 | Laurent GUERBY | root@h7:~# nft delete rule filter output handle 15 |
64 | 1 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
65 | 1 | Laurent GUERBY | table ip filter { |
66 | 1 | Laurent GUERBY | chain output { |
67 | 1 | Laurent GUERBY | type filter hook output priority 0; |
68 | 1 | Laurent GUERBY | ip protocol udp udp dport >= 0 udp dport <= 65535 counter packets 256982 bytes 384190532 # handle 13 |
69 | 1 | Laurent GUERBY | } |
70 | 1 | Laurent GUERBY | |
71 | 1 | Laurent GUERBY | </pre> |
72 | 1 | Laurent GUERBY | |
73 | 1 | Laurent GUERBY | <pre> |
74 | 1 | Laurent GUERBY | nft add rule filter output udp dport 0-65535 counter |
75 | 1 | Laurent GUERBY | nft add rule filter input ip daddr 91.224.149.2 counter |
76 | 3 | Laurent GUERBY | </pre> |
77 | 3 | Laurent GUERBY | |
78 | 3 | Laurent GUERBY | h3. Log |
79 | 3 | Laurent GUERBY | |
80 | 3 | Laurent GUERBY | <pre> |
81 | 4 | Laurent GUERBY | root@h7:~# modprobe xt_LOG |
82 | 3 | Laurent GUERBY | root@h7:~# nft add rule filter output ip daddr 91.224.149.151 counter |
83 | 3 | Laurent GUERBY | root@h7:~# nft add rule filter output ip daddr 91.224.149.151 log |
84 | 3 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
85 | 3 | Laurent GUERBY | table ip filter { |
86 | 3 | Laurent GUERBY | chain output { |
87 | 3 | Laurent GUERBY | type filter hook output priority 0; |
88 | 3 | Laurent GUERBY | ip daddr 91.224.149.151 counter packets 0 bytes 0 # handle 16 |
89 | 3 | Laurent GUERBY | ip daddr 91.224.149.151 log # handle 17 |
90 | 3 | Laurent GUERBY | } |
91 | 3 | Laurent GUERBY | } |
92 | 3 | Laurent GUERBY | root@h7:~# ping -c 1 91.224.149.151 |
93 | 3 | Laurent GUERBY | PING 91.224.149.151 (91.224.149.151) 56(84) bytes of data. |
94 | 3 | Laurent GUERBY | 64 bytes from 91.224.149.151: icmp_seq=1 ttl=64 time=2.53 ms |
95 | 3 | Laurent GUERBY | |
96 | 3 | Laurent GUERBY | --- 91.224.149.151 ping statistics --- |
97 | 3 | Laurent GUERBY | 1 packets transmitted, 1 received, 0% packet loss, time 0ms |
98 | 3 | Laurent GUERBY | rtt min/avg/max/mdev = 2.530/2.530/2.530/0.000 ms |
99 | 3 | Laurent GUERBY | |
100 | 3 | Laurent GUERBY | Message from syslogd@h7 at Mar 28 14:38:08 ... |
101 | 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 |
102 | 3 | Laurent GUERBY | root@h7:~# nft list chain filter output -a -n |
103 | 3 | Laurent GUERBY | table ip filter { |
104 | 3 | Laurent GUERBY | chain output { |
105 | 4 | Laurent GUERBY | type filter hook output priority 0; |
106 | 1 | Laurent GUERBY | ip daddr 91.224.149.151 counter packets 1 bytes 84 # handle 16 |
107 | 6 | Mehdi Abaakouk | ip daddr 91.224.149.151 log # handle 17 |
108 | 6 | Mehdi Abaakouk | } |
109 | 6 | Mehdi Abaakouk | } |
110 | 6 | Mehdi Abaakouk | root@h7:~# nft delete rule filter output handle 17 |
111 | 6 | Mehdi Abaakouk | root@h7:~# tail -1 /var/log/syslog |
112 | 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 |
113 | 6 | Mehdi Abaakouk | </pre> |