如何在Ubuntu上使用Freeradius配置基于IPsec的L2TP

时间:2020-03-05 15:26:18  来源:igfitidea点击:

具有IPsec的第2层隧道协议(L2TP)用于确保端到端加密,因为L2TP不支持安全功能。
OpenSwan工具用于建立IPsec隧道,该隧道将在Ubuntu发行版上进行编译。
验证安全功能是使用FreeRadius服务器实现的。
身份验证服务器的目的是对L2TP VPN的用户进行身份验证。
Android和Windows客户端支持带有CHAPv2的L2TP/IPsec PSK,因此,将在智能手机和服务器之间建立安全通道。

脚本的内容显示在以下快照中。

#!/bin/bash
##NOTE:  Adding a proper date in lastaccounting filed  to fix the invalid default value issue in /etc/freeradius/sql/mysql/cui.sql.
##-installation of tools-##
apt-get update
apt-get install -y mysql-server mysql-client freeradius-mysql pptpd xl2tpd build-essential libgmp3-dev bison flex
echo "Installing freeradius client --"
wget https://github.com/FreeRADIUS/freeradius-client/archive/master.zip
unzip master.zip
cd freeradius-client-master
./configure --prefix=/
make
make install
echo "Installation of OpenSwan "
wget https://download.openswan.org/openswan/openswan-latest.tar.gz
tar -xvzf openswan-latest.tar.gz
cd openswan-*
make programs
make install
echo " OpenSwan installed"

为MySql服务器的root用户输入密码“ test”。

配置

另一个脚本“ openswan-l2tp-configuration.sh”用于在Ubuntu上配置数据包转发,用于xl2tpd子网的iptables规则,用于身份验证机制的FreeRadius服务器/客户端设置以及OpenSwan的IPsec隧道。

下面显示了很少的配置脚本快照。

  1. iptables&sysctl设置

2.使用MySQL设置FreeRadius服务器

  1. FreeRadius客户端设置

  2. pptpd和xl2tpd服务的配置

  3. OpenSwan VPN配置

运行配置脚本之前,需要对/etc/freeradius/sql/mysql /下的cui.sql文件进行一项更改。
在指定的sql文件中更改突出显示的以下行。

`lastaccounting` timestamp NOT NULL default '0000-00-00 00:00:00',
`lastaccounting` timestamp NOT NULL default '2015-10-01 00:00:00',

运行配置脚本以自动设置已安装的软件包。

使用以下命令在Android/Windows L2TP客户端的FreeRadius数据库中插入用户名/密码。

INSERT INTO radius.radcheck (username, attribute, op, value) VALUES ('test','User-Password',':=','test123');

使用以下命令运行FreeRadius服务器,并重新启动所有必需的服务。

freeradius -X

在localhost上运行以下命令以测试FreeRadius服务器的配置。

radtest测试test123本地主机0 testing123

/etc/init.d/xl2tpd restart
/etc/init.d/ipsec  restart

似乎所有必需的服务都已正确配置并正在运行。
现在,在Windows和Android客户端上配置L2TP/IPsec PSK VPN。

MS Windows 8客户端配置

单击“网络和共享中心”上的“设置新连接或者网络”。

选择“连接到工作场所”选项,如以下快照所示。

如下所示。
在下一个窗口中选择“使用我的互联网(VPN)”选项。

在VPN连接上输入标题和Internet地址(机器ip地址),然后单击“创建”按钮。

将创建新的VPN连接,并显示在网络列表中,如下所示。

新VPN连接的默认属性不适用于FreeRadius服务器的当前配置。
因此,MS Windows VPN客户端的安全设置几乎不需要更改。

首先,更改VPN的类型(基于IPsec的第2层隧道协议)。

单击“高级设置”,然后选择“使用预共享密钥进行身份验证”选项。

在“允许这些协议”设置下选择“ Microsoft CHAP版本2”选项。

配置L2TP/IPsec VPN连接后,如下所示输入用户名/密码(test/test123)。

L2TP/IPsec VPN已成功连接到服务器,并且为IP地址分配了地址,如下所示。

以下快照显示了L2TP/IPsec VPN连接的状态。

Android上的L2TP/IPsec配置

要将Android L2TP客户端与服务器连接,请在其上创建L2TP/IPsec连接。
点击“设置”。
“更多”和“ VPN”选项。
现在,“添加VPN网络”并为所需的VPN连接选择“ L2TP PSK”选项。

一次,将创建一个新的L2TP/IPsec VPN连接。
现在,单击VPN连接名称,然后在FreeRadius服务器上输入已创建的用户名/密码。

L2TP/IPsec客户端连接到服务器,如下所示。

FreeRadius状态

以下快照显示了对用户的成功身份验证,并且身份验证类型为CHAP。

隧道状态

如下所示,xfrm state命令提供了OpenSwan隧道的状态。

ip xfrm state

OpenSwan工具中提供的另一个命令是“ ipsec look”,它结合了xfrm状态,任何iptables规则和路由的信息。

ipsec look
  1. ipsec命令中的xfrm状态输出

  2. ipsec命令中的xfrm策略输出

  3. ipsec命令中的路由和iptables设置

以下命令给出了隧道的自动状态,如下所示。

ipsec auto --status