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 $
4 .\" Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.
5 .\" All rights reserved.
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
15 .\" 3. Neither the name of the project nor the names of its contributors
16 .\" may be used to endorse or promote products derived from this software
17 .\" without specific prior written permission.
19 .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 .Nd "manually manipulate the IPsec SA/SP database"
59 utility adds, updates, dumps, or flushes
60 Security Association Database (SAD) entries
61 as well as Security Policy Database (SPD) entries in the kernel.
65 utility takes a series of operations from the standard input
77 the SPD entries are dumped.
79 Flush the SAD entries.
82 the SPD entries are flushed.
84 Dead SAD entries are usually not displayed with
88 the dead SAD entries will be displayed as well.
89 A dead SAD entry means that
90 it has been expired but remains
91 because it is referenced by SPD entries.
93 Enable to print debugging messages for command parser,
94 without talking to kernel.
95 It is not used usually.
97 Loop forever and dump all the messages transmitted to
101 makes each timestamp unformatted.
103 Add hexadecimal dump on
107 Loop forever with short output on
111 The program will dump messages exchanged on
113 socket, including messages sent from other processes to the kernel.
116 Operations have the following grammar.
117 Note that lines starting with
118 hashmarks ('#') are treated as comment lines.
122 .Ar src Ar dst Ar protocol Ar spi
131 .Ar src Ar dst Ar protocol Ar spi
138 .Ar src Ar dst Ar protocol Ar spi
145 .Ar src Ar dst Ar protocol
148 Remove all SAD entries that match the specification.
155 Clear all SAD entries matched by the options.
162 Dumps all SAD entries matched by the options.
166 .Ar src_range Ar dst_range Ar upperspec Ar policy
173 .Ar src_range Ar dst_range Ar upperspec Fl P Ar direction
182 Clear all SPD entries.
188 Dumps all SPD entries.
192 Meta-arguments are as follows:
194 .Bl -tag -compact -width Ds
197 Source/destination of the secure communication is specified as
201 utility does not consult hostname-to-address for arguments
205 They must be in numeric form.
211 .Bl -tag -width Fl -compact
223 TCP-MD5 based on rfc2385
228 Security Parameter Index (SPI) for the SAD and the SPD.
229 It must be decimal number or hexadecimal number
230 You cannot use the set of SPI values in the range 0 through 255.
234 TCP-MD5 associations must use 0x1000 and therefore only have per-host
235 granularity at this time.
239 takes some of the following:
240 .Bl -tag -width Fl -compact
243 Specify a security protocol mode for use.
246 .Li transport , tunnel
253 Specify window size of bytes for replay prevention.
255 must be decimal number in 32-bit word.
258 is zero or not specified, replay check don't take place.
261 Specify the identifier of the policy entry in SPD.
265 .It Fl f Ar pad_option
266 defines the content of the ESP padding.
269 .Bl -tag -width random-pad -compact
271 All of the padding are zero.
273 A series of randomized values are set.
275 A series of sequential increasing numbers started from 1 are set.
278 .It Fl f Li nocyclic-seq
279 Don't allow cyclic sequence number.
283 Specify hard/soft life time duration of the SA.
288 .Bl -tag -width Fl -compact
289 .It Fl E Ar ealgo Ar key
290 Specify an encryption algorithm.
291 .It Fl A Ar aalgo Ar key
292 Specify an authentication algorithm.
296 .Ar protocol Li esp ,
297 it will be treated as ESP payload authentication algorithm.
298 .It Fl C Ar calgo Op Fl R
299 Specify compression algorithm.
302 is not specified with
304 line, the kernel will use well-known IPComp CPI
305 (compression parameter index)
306 on IPComp CPI field on packets, and
308 field will be ignored.
310 field is only for kernel internal use in this case.
311 .\"Therefore, compression protocol number will appear on IPComp CPI field.
317 field will appear on IPComp CPI field on outgoing packets.
319 field needs to be smaller than
329 .Ar protocol Li esp-old
339 .Ar protocol Li ipcomp
345 must be double-quoted character string or series of hexadecimal digits.
352 are specified in separate section.
357 These are selections of the secure communication specified as
358 IPv4/v6 address or IPv4/v6 address range, and it may accompany
359 TCP/UDP port specification.
360 This takes the following form:
363 .Ar address/prefixlen
365 .Ar address/prefixlen[port]
371 must be decimal number.
372 The square bracket around
375 They are not manpage metacharacters.
379 utility does not consult hostname-to-address for arguments
383 They must be in numeric form.
387 Upper-layer protocol to be used.
388 You can use one of words in
401 Also you can use the protocol number.
405 does not work against forwarding case at this moment,
406 as it requires extra reassembly at forwarding node
407 (not implemented at this moment).
408 We have many protocols in
410 but protocols except of TCP, UDP and ICMP may not be suitable to use with IPsec.
411 You have to consider and be careful to use them.
420 is the one of following:
423 .Fl P Ar direction Li discard
426 .Fl P Ar direction Li none
429 .Fl P Ar direction Li ipsec Ar protocol/mode/src-dst/level
433 You must specify the direction of its policy as
441 means the packet matching indexes will be discarded.
443 means that IPsec operation will not take place onto the packet.
445 means that IPsec operation will take place onto the packet.
462 you must specify the end-points addresses of the SA as
468 between these addresses which is used to specify the SA to use.
479 is to be one of the following:
480 .Li default , use , require
483 If the SA is not available in every level, the kernel will request
484 getting SA to the key exchange daemon.
486 means the kernel consults to the system wide default against protocol you
489 sysctl variable, when the kernel processes the packet.
491 means that the kernel use a SA if it's available,
492 otherwise the kernel keeps normal operation.
494 means SA is required whenever the kernel sends a packet matched
497 is the same to require.
498 In addition, it allows the policy to bind with the unique out-bound SA.
499 If you use the SA by manual keying,
500 you can put the decimal number as the policy identifier after
507 must be between 1 and 32767.
509 .Ar extensions Fl u .
515 are not in the syntax described in
516 .Xr ipsec_set_policy 3 .
517 There are little differences in the syntax.
519 .Xr ipsec_set_policy 3
524 The following list shows the supported algorithms.
528 are almost orthogonal.
529 Followings are the list of authentication algorithms that can be used as
536 .Bd -literal -offset indent
537 algorithm keylen (bits) comment
538 hmac-md5 128 ah: rfc2403
540 hmac-sha1 160 ah: rfc2404
541 160 ah-old: 128bit ICV (no document)
542 keyed-md5 128 ah: 96bit ICV (no document)
544 keyed-sha1 160 ah: 96bit ICV (no document)
545 160 ah-old: 128bit ICV (no document)
546 null 0 to 2048 for debugging
547 hmac-sha2-256 256 ah: 96bit ICV (no document)
548 256 ah-old: 128bit ICV (no document)
549 hmac-sha2-384 384 ah: 96bit ICV (no document)
550 384 ah-old: 128bit ICV (no document)
551 hmac-sha2-512 512 ah: 96bit ICV (no document)
552 512 ah-old: 128bit ICV (no document)
553 tcp-md5 8 to 640 tcp: rfc2385
556 Followings are the list of encryption algorithms that can be used as
563 .Bd -literal -offset indent
564 algorithm keylen (bits) comment
565 des-cbc 64 esp-old: rfc1829, esp: rfc2405
567 simple 0 to 2048 rfc2410
568 blowfish-cbc 40 to 448 rfc2451
569 cast128-cbc 40 to 128 rfc2451
570 des-deriv 64 ipsec-ciph-des-derived-01 (expired)
571 3des-deriv 192 no document
572 rijndael-cbc 128/192/256 draft-ietf-ipsec-ciph-aes-cbc-00
575 Followings are the list of compression algorithms that can be used as
582 .Bd -literal -offset indent
593 add 2001:db8:4819::1 2001:db8:481d::1 esp 123457
594 -E des-cbc "ESP SA!!" ;
596 add 2001:db8:4819::1 2001:db8:481d::1 ah 123456
597 -A hmac-sha1 "AH SA configuration!" ;
599 add 10.0.11.41 10.0.11.33 esp 0x10001
600 -E des-cbc "ESP with"
601 -A hmac-md5 "authentication!!" ;
603 get 2001:db8:4819::1 2001:db8:481d::1 ah 123456 ;
609 spdadd 10.0.11.41/32[21] 10.0.11.33/32[any] any
610 -P out ipsec esp/tunnel/192.168.0.1-192.168.1.2/require ;
612 add 10.1.10.34 10.1.10.36 tcp 0x1000 -A tcp-md5 "TCP-MD5 BGP secret" ;
617 .Xr ipsec_set_policy 3 ,
624 utility first appeared in WIDE Hydrangea IPv6 protocol stack kit.
625 The command was completely re-designed in June 1998.