Project

General

Profile

strongSwan Installation Documentation » History » Version 59

Tobias Brunner, 02.10.2019 13:57
TOC added, updates regarding older releases

1 53 Tobias Brunner
{{title(strongSwan Installation Documentation)}}
2 25 Tobias Brunner
3 53 Tobias Brunner
h1. strongSwan Installation Documentation
4 25 Tobias Brunner
5 59 Tobias Brunner
{{>toc}}
6 25 Tobias Brunner
7 25 Tobias Brunner
h2. Distribution packages
8 25 Tobias Brunner
9 25 Tobias Brunner
10 1 Martin Willi
There are currently packages for:
11 57 Tobias Brunner
* "Arch Linux":https://www.archlinux.org/packages/?sort=&q=strongswan
12 27 Tobias Brunner
* "Debian":http://packages.debian.org/search?keywords=strongswan&searchon=names&suite=all&section=all
13 31 Andreas Steffen
* "Ubuntu":http://packages.ubuntu.com/search?keywords=strongswan&searchon=names&suite=all&section=all
14 27 Tobias Brunner
* "openSUSE":http://software.opensuse.org/search?p=1&q=strongswan
15 57 Tobias Brunner
* "Gentoo":https://packages.gentoo.org/packages/search?q=strongswan
16 1 Martin Willi
* "Fedora":https://apps.fedoraproject.org/packages/strongswan/overview/
17 1 Martin Willi
* "Red Hat Enterprise Linux and CentOS via EPEL":http://pkgs.org/download/strongswan
18 57 Tobias Brunner
19 57 Tobias Brunner
* "FreeBSD":https://www.freshports.org/security/strongswan/
20 57 Tobias Brunner
* "Homebrew":https://formulae.brew.sh/formula/strongswan#default (macOS)
21 1 Martin Willi
22 25 Tobias Brunner
h2. Compile yourself
23 16 Martin Willi
24 1 Martin Willi
25 30 Andreas Steffen
h3. Linux Kernel requirements
26 25 Tobias Brunner
27 25 Tobias Brunner
strongSwan should run on most distros' kernels. If you build your own kernel, include [[KernelModules|the required modules]].
28 1 Martin Willi
29 59 Tobias Brunner
30 25 Tobias Brunner
h3. Building strongSwan
31 1 Martin Willi
32 59 Tobias Brunner
The GNU build system (Autotools) is used to build strongSwan.
33 43 Tobias Brunner
34 59 Tobias Brunner
There is an [[Autoconf|ever growing list of configure options]] available (*note that many of these are enabled by default*, and please check @./configure --help@ for the options actually available for your release).
35 1 Martin Willi
36 50 Tobias Brunner
Refer to the [[PluginList|list of plugins]] to learn more about the plugins enabled with the above options.
37 48 Tobias Brunner
38 59 Tobias Brunner
*Note:* Some plugins have **dependencies on third-party libraries**. To compile such plugins the header files of those libraries are required. Make sure these are installed on your system, e.g. by installing the appropriate _-dev_ package on Debian-based systems. Otherwise, the configure script will complain that it can't find the library or header files.
39 1 Martin Willi
40 40 Tobias Brunner
41 40 Tobias Brunner
The build procedure is as with any autotools project:
42 1 Martin Willi
43 40 Tobias Brunner
# "Download strongSwan":http://www.strongswan.org/download.html:
44 1 Martin Willi
<pre>
45 45 Tobias Brunner
 wget http://download.strongswan.org/strongswan-x.x.x.tar.bz2
46 1 Martin Willi
</pre>
47 59 Tobias Brunner
# Unpack the tarball, navigate into the directory:
48 40 Tobias Brunner
<pre>
49 45 Tobias Brunner
 tar xjvf strongswan-x.x.x.tar.bz2; cd strongswan-x.x.x
50 40 Tobias Brunner
</pre>
51 59 Tobias Brunner
# Configure strongSwan using some of the [[Autoconf|available options]] (refer to @./configure --help@):
52 40 Tobias Brunner
<pre>
53 1 Martin Willi
 ./configure --prefix=/usr --sysconfdir=/etc --<your-options>
54 40 Tobias Brunner
</pre>
55 40 Tobias Brunner
# Build the sources and install the binaries as root:
56 40 Tobias Brunner
<pre>
57 1 Martin Willi
 make
58 1 Martin Willi
 sudo make install
59 1 Martin Willi
</pre>
60 52 Tobias Brunner
61 52 Tobias Brunner
h3. Building strongSwan from the Git repository
62 52 Tobias Brunner
63 52 Tobias Brunner
To build strongSwan from the Git repository additional tools and steps are required, check source:HACKING for details.
64 30 Andreas Steffen
65 33 Tobias Brunner
h3. Building strongSwan on other platforms
66 30 Andreas Steffen
67 51 Tobias Brunner
* [[FreeBSD|strongSwan on FreeBSD]]
68 51 Tobias Brunner
* [[MacOSX|strongSwan on Mac OS X]]
69 51 Tobias Brunner
* [[Android|strongSwan on Android]]
70 54 Christopher Nielsen
71 58 Tobias Brunner
h3. Monolithic Builds
72 1 Martin Willi
73 58 Tobias Brunner
[[PluginList|Plugins]] can be included in their associated library in a so called monolithic build (@--enable-monolithic@). That way it's not necessary to
74 58 Tobias Brunner
distribute separate shared object files for each plugin but only the major libraries and executables. The plugins that are loaded at runtime
75 58 Tobias Brunner
may still be controlled with the options described [[PluginLoad|here]].
76 58 Tobias Brunner
77 58 Tobias Brunner
h4. Static Builds
78 58 Tobias Brunner
79 58 Tobias Brunner
Since version:5.5.3, a static build that only relies on third-party libraries, i.e. in which our own libraries and plugins are all statically linked into the
80 58 Tobias Brunner
executables, can be achieved by configuring with @--disable-shared --enable-static --enable-monolithic@.
81 58 Tobias Brunner
82 59 Tobias Brunner
Including third-party static libraries requires manual modification of the Makefiles due to limitations of our build system (see  the Makefile
83 58 Tobias Brunner
for the fuzzzing targets for an example, source:fuzz/Makefile.am). 
84 58 Tobias Brunner
85 54 Christopher Nielsen
h2. Configuration Management for strongSwan
86 54 Christopher Nielsen
87 54 Christopher Nielsen
If you use CM to manage software, there are some options available to help configure strongSwan.
88 54 Christopher Nielsen
89 54 Christopher Nielsen
h3. Chef
90 54 Christopher Nielsen
91 54 Christopher Nielsen
Useful cookbooks include:
92 54 Christopher Nielsen
93 55 Christopher Nielsen
* "strongswanaws":https://supermarket.chef.io/cookbooks/strongswanaws
94 55 Christopher Nielsen
* "strongswan-base":https://supermarket.chef.io/cookbooks/strongswan-base
95 54 Christopher Nielsen
96 54 Christopher Nielsen
h3. Puppet
97 54 Christopher Nielsen
98 54 Christopher Nielsen
Useful modules include:
99 54 Christopher Nielsen
100 55 Christopher Nielsen
* "Nextdoor/strongswan":https://forge.puppetlabs.com/Nextdoor/strongswan
101 55 Christopher Nielsen
* "jpds/strongswan":https://forge.puppetlabs.com/jpds/strongswan