如何使用libreswan配置IPsec VPN

时间:2020-03-05 15:31:52  来源:igfitidea点击:

基于IPSec的VPN的目的是加密OSI模型网络层的流量,因此攻击者无法在客户端和VPN服务器之间窃听。
在我们之前的StrongSwanWhiCh的文章中也是Windows,Linux和Mac OS上的IPsec协议功能。

但是,Libreswan和OpenSwan工具也可用于相同的目的。
在本教程中,我们的焦点是Libreswan,这是UNIX/Linux环境的IPsec协议的另一个实现。
LibresWan已从OpenSwan IPSec项目中叉,并在基于HAT基的Linux发行版中提供。

在本教程中,Libreswan将从Ubuntu 16.04 LTS上的源编译。
在README文件中给出了用于不同Linux发行版的LibleSwan的指令,下面的快照显示所需的包,启用/禁用用于安装Libreswan的功能和命令。

安装Libreswan后,将在网关中配置VPN到网关模式以加密流量。
在项目上给出了Libreswan配置的不同示例。

如何安装libreswan

还假设在Linux分发上启用了数据包转发。
Ubuntu 16.04 LTS上的Libreswan编译需要以下包。

apt-get -y update
apt-get -y install libnss3-dev libnspr4-dev pkg-config libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make

Libreswan的最新源代码可以从项目下载。

使用以下命令提取压缩文件。

tar -xzf libreswan-3.19.tar.gz

现在运行"make"命令以获取Libreswan编译的指令。

因此,运行"make所有"命令在Ubuntu VM上构建Libreswan。
此命令将生成以下错误,即找不到未找到的头文件。

fatal error: unbound.h: No suh file or directory

因此,Libreswan也需要更多的包。
以下命令将安装未绑定的开发库。

apt-get install libunbound-dev

在库译成期间,将在Libreswan编译期间发生导致的另一个错误。

fatal error: event.h: No suh file or directory

运行以下命令以安装libevent包。

apt-get install libevent-dev

由于Ubuntu平台上缺少SystemD包,安装脚本显示了另一个错误。

fatal error: systemd/sd-daemon.h: No suh file or directory

所需包装的安装如下所示。

apt-get install libsystemd-dev

最后,再次运行"使所有"或者"制作安装"编译并安装Libreswan。

make all

上面的命令将在系统上安装libreswan。
但是,使用"IPSec start"命令时发生以下错误。

/usr/local/sbin/ipsec: certutil: Not found

以下命令也得到了相同的错误,如下所示。

ipsec setup start
ipsec initnss

*(需要NSS库以生成所需的键)

/usr/local/sbin/ipsec: certutil: Not found
apt-get install libnss3-tools

以下命令初始化Libreswan工具所需的NSS加密库。

ipsec initnss

最后,成功启动IPSec服务,如下所示。

ipsec setup start

成功安装LibRISWAN后,下一步是在VM中配置VPN设置。
在该示例中,将基于PSK的隧道设置为将网关安全到网关流量。

IPSec.conf配置文件

root@test-VirtualBox:/home/test# cat /etc/ipsec.conf
config setup
protostack=netkey
conn vpn
left=192.168.15.50
leftsubnet=10.12.50.0/24
right=192.168.15.5
rightsubnet=10.12.5.0/24
authby=secret
pfs=yes
rekey=yes
keyingtries=3
type=tunnel
auto=start
ike=aes256-sha1;modp2048
phase2alg=aes256-sha1;modp2048

ipsec.secrets.

192.168.15.50 192.168.15.5: PSK "12345678asdfghjk1qwe3wqA“

IPSec.conf配置文件

root@test-VirtualBox:/home/test# cat /etc/ipsec.conf
config setup
protostack=netkey
conn vpn
left=192.168.15.50
leftsubnet=10.12.50.0/24
right=192.168.15.5
rightsubnet=10.12.5.0/24
authby=secret
pfs=yes
rekey=yes
keyingtries=3
type=tunnel
auto=start
ike=aes256-sha1;modp2048
phase2alg=aes256-sha1;modp2048

ipsec.secrets.

192.168.15.5 192.168.15.50: PSK "12345678asdfghjk1qwe3wqA“

在设置上面的配置后,在双方和IPsec协商过程中运行以下命令后将启动。

ipsec restart

还使用以下命令检查IPSec VPN的状态。

setkey -D