如何使用libreswan配置IPsec VPN
基于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