如何在Ubuntu 20.04 | 18.04 | 16.04上安装Libreswan
时间:2020-02-23 14:44:43 来源:igfitidea点击:
如何在Ubuntu 20.04/18.04/16.04服务器上安装Libreswan的教程。
Libreswan是Linux系统的互联网密钥交换(IKE)实现。
它支持与IPsec相关的IKEv1和IKEv2和其他扩展(RFC + IETF草案),包括IKEv2,X.509数字证书,NAT遍历和许多其他。
Libreswan从OpenSwan 2.6.38分叉,它默认使用本机Linux IPsec堆栈(NetKey/XFRM)。
我们将在源自源Ubuntu 20.04/18.04/16.04上安装Libreswan。
第1步:更新系统
确保我们正在使用Ubuntu的最新安装。
sudo apt -y update && sudo apt -y upgrade sudo reboot
系统提升后,继续执行第二步。
第2步:安装构建依赖项
Libreswan从源编译有几个包。
通过运行以下命令将它们安装在Ubuntu系统上。
sudo apt install libnss3-dev libnspr4-dev pkg-config libpam-dev \ libcap-ng-dev libcap-ng-utils libselinux-dev \ libcurl3-nss-dev flex bison gcc make libldns-dev \ libunbound-dev libnss3-tools libevent-dev xmlto \ libsystemd-dev git devscripts build-essential fakeroot libsystemd-dev
第3步:下载Libreswan源代码
由于我们将从源中构建Libreswan,以确保我们使用最新版本。
从GitHub克隆项目。
SWAN_VER=3.32 swan_file="libreswan-$SWAN_VER.tar.gz" swan_url1="https://github.com/libreswan/libreswan/archive/v$SWAN_VER.tar.gz" swan_url2="https://download.libreswan.org/$swan_file" if ! { wget -t 3 -T 30 -nv -O "$swan_file" "$swan_url1" || wget -t 3 -T 30 -nv -O "$swan_file" "$swan_url2"; }; then exit 1 fi
下载文件后,提取它。
tar xzf "$swan_file" && /bin/rm -f "$swan_file"
第4步:在Ubuntu上构建和安装Libreswan
我们现在可以在Ubuntu上构建和安装Libreswan。
第一次更改为libreswan目录。
cd "libreswan-$SWAN_VER" || exit 1
创建构建选项文件。
cat > Makefile.inc.local <<'EOF' WERROR_CFLAGS = USE_DNSSEC = false USE_DH31 = false USE_NSS_AVA_COPY = true USE_NSS_IPSEC_PROFILE = false USE_GLIBC_KERN_FLIP_HEADERS = true EOF
最后构建了Libreswan。
NPROCS=$(grep -c ^processor /proc/cpuinfo) [ -z "$NPROCS" ] && NPROCS=1 make "-j$((NPROCS+1))" -s base && sudo make -s install-base
成功的构建应输出。
....................................................... running: systemctl --system daemon-reload running: systemd-tmpfiles --create /usr/lib/tmpfiles.d/libreswan.conf DESTDIR='' ** **** **** **** **** **** **** WARNING ** **** **** **** **** **** **** **** ***** The ipsec service is currently disabled. To enable this service issue: systemctl enable ipsec.service ** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ../../OBJ.linux.x86_64/testing/enumcheck/enumcheck -> /usr/local/libexec/ipsec/enumcheck ../../OBJ.linux.x86_64/testing/ipcheck/ipcheck -> /usr/local/libexec/ipsec/ipcheck ../../OBJ.linux.x86_64/testing/fmtcheck/fmtcheck -> /usr/local/libexec/ipsec/fmtcheck ../../OBJ.linux.x86_64/testing/timecheck/timecheck -> /usr/local/libexec/ipsec/timecheck
如果安装成功。
我们应该能够检查版本。
$/usr/local/sbin/ipsec --version Linux Libreswan 3.32 (netkey) on 5.4.0-26-generic
第5步:启动和启用LibleSwan IPSec服务
IPSec服务当前已禁用。
要启用此服务问题:
sudo systemctl enable --now ipsec.service
验证服务状态。
$systemctl status ipsec.service ● ipsec.service - Internet Key Exchange (IKE) Protocol Daemon for IPsec Loaded: loaded (/lib/systemd/system/ipsec.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-06-29 09:17:26 CEST; 37s ago Docs: man:ipsec(8) man:pluto(8) man:ipsec.conf(5) Main PID: 13782 (pluto) Status: "Startup completed." Tasks: 2 (limit: 2299) CGroup: /system.slice/ipsec.service └─13782 /usr/local/libexec/ipsec/pluto --leak-detective --config /etc/ipsec.conf --nofork Jun 29 09:17:26 ubuntu16 pluto[13782]: adding interface eth0/eth0 116.203.48.203:4500 Jun 29 09:17:26 ubuntu16 pluto[13782]: Kernel supports NIC esp-hw-offload Jun 29 09:17:26 ubuntu16 pluto[13782]: adding interface lo/lo (esp-hw-offload=no) 127.0.0.1:500 Jun 29 09:17:26 ubuntu16 pluto[13782]: adding interface lo/lo 127.0.0.1:4500 Jun 29 09:17:26 ubuntu16 pluto[13782]: Kernel supports NIC esp-hw-offload Jun 29 09:17:26 ubuntu16 pluto[13782]: adding interface lo/lo (esp-hw-offload=no) ::1:500 Jun 29 09:17:26 ubuntu16 pluto[13782]: Kernel supports NIC esp-hw-offload Jun 29 09:17:26 ubuntu16 pluto[13782]: adding interface eth0/eth0 (esp-hw-offload=no) 2a01:4f8:c2c:83a2::1:500 Jun 29 09:17:26 ubuntu16 pluto[13782]: loading secrets from "/etc/ipsec.secrets" Jun 29 09:17:26 ubuntu16 pluto[13782]: no secrets filename matched "/etc/ipsec.d/*.secrets"