summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/if_ipsec.4 3.html
blob: 70eee8f8d4ef60f7e24d31418b32a529c4e65486 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<table class="head">
  <tr>
    <td class="head-ltitle">if_ipsec(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">if_ipsec(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">if_ipsec</code> &#x2014; <span class="Nd">IPsec
    virtual tunneling interface</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">The <code class="Cm">if_ipsec</code> network interface is a part
    of the <span class="Ux">FreeBSD</span> IPsec implementation. To compile it
    into the kernel, place this line in the kernel configuration file:</p>
<div class="Bd Pp Bd-indent"><code class="Cd">options IPSEC</code></div>
<p class="Pp">It can also be loaded as part of the <code class="Cm">ipsec</code>
    kernel module if the kernel was compiled with</p>
<div class="Bd Pp Bd-indent"><code class="Cd">options IPSEC_SUPPORT</code></div>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">if_ipsec</code> network interface is targeted
    for creating route-based VPNs. It can tunnel IPv4 and IPv6 traffic over
    either IPv4 or IPv6 and secure it with ESP.</p>
<p class="Pp"><code class="Nm">if_ipsec</code> interfaces are dynamically
    created and destroyed with the <a class="Xr">ifconfig(8)</a>
    <code class="Cm">create</code> and <code class="Cm">destroy</code>
    subcommands. The administrator must configure IPsec
    <code class="Cm">tunnel</code> endpoint addresses. These addresses will be
    used for the outer IP header of ESP packets. The administrator can also
    configure the protocol and addresses for the inner IP header with
    <a class="Xr">ifconfig(8)</a>, and modify the routing table to route the
    packets through the <code class="Nm">if_ipsec</code> interface.</p>
<p class="Pp">When the <code class="Nm">if_ipsec</code> interface is configured,
    it automatically creates special security policies. These policies can be
    used to acquire security associations from the IKE daemon, which are needed
    for establishing an IPsec tunnel. It is also possible to create needed
    security associations manually with the <a class="Xr">setkey(8)</a>
  utility.</p>
<p class="Pp">Each <code class="Nm">if_ipsec</code> interface has an additional
    numeric configuration option <code class="Cm">reqid</code>
    <var class="Ar">id</var>. This <var class="Ar">id</var> is used to
    distinguish traffic and security policies between several
    <code class="Nm">if_ipsec</code> interfaces. The
    <code class="Cm">reqid</code> can be specified on interface creation and
    changed later. If not specified, it is automatically assigned. Note that
    changing <code class="Cm">reqid</code> will lead to generation of new
    security policies, and this may require creating new security
  associations.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
<p class="Pp">The example below shows manual configuration of an IPsec tunnel
    between two FreeBSD hosts. Host A has the IP address 192.168.0.3, and host B
    has the IP address 192.168.0.5.</p>
<p class="Pp">On host A:</p>
<div class="Bd Pp Bd-indent Li">
<pre>ifconfig ipsec0 create reqid 100
ifconfig ipsec0 inet tunnel 192.168.0.3 192.168.0.5
ifconfig ipsec0 inet 172.16.0.3/16 172.16.0.5
setkey -c
add 192.168.0.3 192.168.0.5 esp 10000 -m tunnel -u 100 -E rijndael-cbc &quot;VerySecureKey!!1&quot;;
add 192.168.0.5 192.168.0.3 esp 10001 -m tunnel -u 100 -E rijndael-cbc &quot;VerySecureKey!!2&quot;;
^D</pre>
</div>
<p class="Pp">On host B:</p>
<div class="Bd Pp Bd-indent Li">
<pre>ifconfig ipsec0 create reqid 200
ifconfig ipsec0 inet tunnel 192.168.0.5 192.168.0.3
ifconfig ipsec0 inet 172.16.0.5/16 172.16.0.3
setkey -c
add 192.168.0.3 192.168.0.5 esp 10000 -m tunnel -u 200 -E rijndael-cbc &quot;VerySecureKey!!1&quot;;
add 192.168.0.5 192.168.0.3 esp 10001 -m tunnel -u 200 -E rijndael-cbc &quot;VerySecureKey!!2&quot;;
^D</pre>
</div>
<p class="Pp">Note the value 100 on host A and value 200 on host B are used as
    reqid. The same value must be used as identifier of the policy entry in the
    <a class="Xr">setkey(8)</a> command.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">gif(4)</a>, <a class="Xr">gre(4)</a>,
    <a class="Xr">ipsec(4)</a>, <a class="Xr">ifconfig(8)</a>,
    <a class="Xr">setkey(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="An">Andrey V. Elsukov</span>
    &lt;<a class="Mt" href="mailto:ae@FreeBSD.org">ae@FreeBSD.org</a>&gt;</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">February 6, 2017</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>