如何在Ubuntu上使用Freeradius配置基于IPsec的L2TP
具有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隧道。
下面显示了很少的配置脚本快照。
- iptables&sysctl设置
2.使用MySQL设置FreeRadius服务器
FreeRadius客户端设置
pptpd和xl2tpd服务的配置
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
ipsec命令中的xfrm状态输出
ipsec命令中的xfrm策略输出
ipsec命令中的路由和iptables设置
以下命令给出了隧道的自动状态,如下所示。
ipsec auto --status