1 .\" $KAME: setkey.8,v 1.49 2001/05/18 05:49:51 sakane Exp $
2 .\" $FreeBSD: src/usr.sbin/setkey/setkey.8,v 1.4.2.15 2003/03/12 22:08:15 trhodes Exp $
3 .\" $DragonFly: src/usr.sbin/setkey/setkey.8,v 1.7 2008/08/10 21:29:17 hasso Exp $
5 .\" Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
6 .\" All rights reserved.
8 .\" Redistribution and use in source and binary forms, with or without
9 .\" modification, are permitted provided that the following conditions
11 .\" 1. Redistributions of source code must retain the above copyright
12 .\" notice, this list of conditions and the following disclaimer.
13 .\" 2. Redistributions in binary form must reproduce the above copyright
14 .\" notice, this list of conditions and the following disclaimer in the
15 .\" documentation and/or other materials provided with the distribution.
16 .\" 3. Neither the name of the project nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
20 .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 .Nd "manually manipulate the IPsec SA/SP database"
60 utility adds, updates, dumps, or flushes
61 Security Association Database (SAD) entries
62 as well as Security Policy Database (SPD) entries in the kernel.
66 utility takes a series of operations from the standard input
78 the SPD entries are dumped.
80 Flush the SAD entries.
83 the SPD entries are flushed.
85 Dead SAD entries are usually not displayed with
89 the dead SAD entries will be displayed as well.
90 A dead SAD entry means that
91 it has been expired but remains
92 because it is referenced by SPD entries.
94 Enable to print debugging messages for command parser,
95 without talking to kernel.
96 It is not used usually.
98 Loop forever and dump all the messages transmitted to
102 makes each timestamp unformatted.
104 Add hexadecimal dump on
108 Loop forever with short output on
112 The program will dump messages exchanged on
114 socket, including messages sent from other processes to the kernel.
117 Operations have the following grammar.
118 Note that lines starting with
119 hashmarks ('#') are treated as comment lines.
123 .Ar src Ar dst Ar protocol Ar spi
132 .Ar src Ar dst Ar protocol Ar spi
139 .Ar src Ar dst Ar protocol Ar spi
146 .Ar src Ar dst Ar protocol
149 Remove all SAD entries that match the specification.
156 Clear all SAD entries matched by the options.
163 Dumps all SAD entries matched by the options.
167 .Ar src_range Ar dst_range Ar upperspec Ar policy
174 .Ar src_range Ar dst_range Ar upperspec Fl P Ar direction
183 Clear all SPD entries.
189 Dumps all SPD entries.
193 Meta-arguments are as follows:
195 .Bl -tag -compact -width Ds
198 Source/destination of the secure communication is specified as
202 utility does not consult hostname-to-address for arguments
206 They must be in numeric form.
212 .Bl -tag -width Fl -compact
224 TCP-MD5 based on rfc2385
229 Security Parameter Index (SPI) for the SAD and the SPD.
230 It must be decimal number or hexadecimal number
231 You cannot use the set of SPI values in the range 0 through 255.
235 TCP-MD5 associations must use 0x1000 and therefore only have per-host
236 granularity at this time.
240 takes some of the following:
241 .Bl -tag -width Fl -compact
244 Specify a security protocol mode for use.
247 .Li transport , tunnel
254 Specify window size of bytes for replay prevention.
256 must be decimal number in 32-bit word.
259 is zero or not specified, replay check don't take place.
262 Specify the identifier of the policy entry in SPD.
266 .It Fl f Ar pad_option
267 defines the content of the ESP padding.
270 .Bl -tag -width random-pad -compact
272 All of the padding are zero.
274 A series of randomized values are set.
276 A series of sequential increasing numbers started from 1 are set.
279 .It Fl f Li nocyclic-seq
280 Don't allow cyclic sequence number.
284 Specify hard/soft life time duration of the SA.
289 .Bl -tag -width Fl -compact
290 .It Fl E Ar ealgo Ar key
291 Specify an encryption algorithm.
292 .It Fl A Ar aalgo Ar key
293 Specify an authentication algorithm.
297 .Ar protocol Li esp ,
298 it will be treated as ESP payload authentication algorithm.
299 .It Fl C Ar calgo Op Fl R
300 Specify compression algorithm.
303 is not specified with
305 line, the kernel will use well-known IPComp CPI
306 (compression parameter index)
307 on IPComp CPI field on packets, and
309 field will be ignored.
311 field is only for kernel internal use in this case.
312 .\"Therefore, compression protocol number will appear on IPComp CPI field.
318 field will appear on IPComp CPI field on outgoing packets.
320 field needs to be smaller than
330 .Ar protocol Li esp-old
340 .Ar protocol Li ipcomp
346 must be double-quoted character string or series of hexadecimal digits.
353 are specified in separate section.
358 These are selections of the secure communication specified as
359 IPv4/v6 address or IPv4/v6 address range, and it may accompany
360 TCP/UDP port specification.
361 This takes the following form:
364 .Ar address/prefixlen
366 .Ar address/prefixlen[port]
372 must be decimal number.
373 The square bracket around
376 They are not manpage metacharacters.
380 utility does not consult hostname-to-address for arguments
384 They must be in numeric form.
388 Upper-layer protocol to be used.
389 You can use one of words in
402 Also you can use the protocol number.
406 does not work against forwarding case at this moment,
407 as it requires extra reassembly at forwarding node
408 (not implemented at this moment).
409 We have many protocols in
411 but protocols except of TCP, UDP and ICMP may not be suitable to use with IPsec.
412 You have to consider and be careful to use them.
421 is the one of following:
424 .Fl P Ar direction Li discard
427 .Fl P Ar direction Li none
430 .Fl P Ar direction Li ipsec Ar protocol/mode/src-dst/level
434 You must specify the direction of its policy as
442 means the packet matching indexes will be discarded.
444 means that IPsec operation will not take place onto the packet.
446 means that IPsec operation will take place onto the packet.
463 you must specify the end-points addresses of the SA as
469 between these addresses which is used to specify the SA to use.
480 is to be one of the following:
481 .Li default , use , require
484 If the SA is not available in every level, the kernel will request
485 getting SA to the key exchange daemon.
487 means the kernel consults to the system wide default against protocol you
490 sysctl variable, when the kernel processes the packet.
492 means that the kernel use a SA if it's available,
493 otherwise the kernel keeps normal operation.
495 means SA is required whenever the kernel sends a packet matched
498 is the same to require.
499 In addition, it allows the policy to bind with the unique out-bound SA.
500 If you use the SA by manual keying,
501 you can put the decimal number as the policy identifier after
508 must be between 1 and 32767.
510 .Ar extensions Fl u .
516 are not in the syntax described in
517 .Xr ipsec_set_policy 3 .
518 There are little differences in the syntax.
520 .Xr ipsec_set_policy 3
525 The following list shows the supported algorithms.
529 are almost orthogonal.
530 Followings are the list of authentication algorithms that can be used as
537 .Bd -literal -offset indent
538 algorithm keylen (bits) comment
539 hmac-md5 128 ah: rfc2403
541 hmac-sha1 160 ah: rfc2404
542 160 ah-old: 128bit ICV (no document)
543 keyed-md5 128 ah: 96bit ICV (no document)
545 keyed-sha1 160 ah: 96bit ICV (no document)
546 160 ah-old: 128bit ICV (no document)
547 null 0 to 2048 for debugging
548 hmac-sha2-256 256 ah: 96bit ICV (no document)
549 256 ah-old: 128bit ICV (no document)
550 hmac-sha2-384 384 ah: 96bit ICV (no document)
551 384 ah-old: 128bit ICV (no document)
552 hmac-sha2-512 512 ah: 96bit ICV (no document)
553 512 ah-old: 128bit ICV (no document)
554 tcp-md5 8 to 640 tcp: rfc2385
557 Followings are the list of encryption algorithms that can be used as
564 .Bd -literal -offset indent
565 algorithm keylen (bits) comment
566 des-cbc 64 esp-old: rfc1829, esp: rfc2405
568 simple 0 to 2048 rfc2410
569 blowfish-cbc 40 to 448 rfc2451
570 cast128-cbc 40 to 128 rfc2451
571 des-deriv 64 ipsec-ciph-des-derived-01 (expired)
572 3des-deriv 192 no document
573 rijndael-cbc 128/192/256 draft-ietf-ipsec-ciph-aes-cbc-00
576 Followings are the list of compression algorithms that can be used as
583 .Bd -literal -offset indent
591 add 2001:db8:4819::1 2001:db8:481d::1 esp 123457
592 -E des-cbc "ESP SA!!" ;
594 add 2001:db8:4819::1 2001:db8:481d::1 ah 123456
595 -A hmac-sha1 "AH SA configuration!" ;
597 add 10.0.11.41 10.0.11.33 esp 0x10001
598 -E des-cbc "ESP with"
599 -A hmac-md5 "authentication!!" ;
601 get 2001:db8:4819::1 2001:db8:481d::1 ah 123456 ;
607 spdadd 10.0.11.41/32[21] 10.0.11.33/32[any] any
608 -P out ipsec esp/tunnel/192.168.0.1-192.168.1.2/require ;
610 add 10.1.10.34 10.1.10.36 tcp 0x1000 -A tcp-md5 "TCP-MD5 BGP secret" ;
615 The command exits with 0 on success, and non-zero on errors.
618 .Xr ipsec_set_policy 3 ,
625 utility first appeared in WIDE Hydrangea IPv6 protocol stack kit.
626 The command was completely re-designed in June 1998.