ubuntu 下配置 L2TP vpn

来源:互联网 发布:java invoker 编辑:程序博客网 时间:2024/05/22 01:39

第二层隧道协议(L2TP),是VPN隧道协议的一种,是PPTP的后续版本。L2TP支持两端点间多隧道,但通常要有IPSec来提供加密和验证功能,可一建立变动的客户端到固定服务器的连接。下面我们开始在ubuntu下搭建。

安装openswan:

sudo apt-get install openswan

安装过程一路回车。

安装完成后进行配置:

编辑/etc/ipsec.conf

sudo cp /etc/ipsec.conf /etc/ipsec.conf.old

sudo nano /etc/ipsec.conf

将文件清空写入一下内容

version 2.0
config setup
 nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
 oe=off
 protostack=netkey

conn L2TP-PSK-NAT
   rightsubnet=vhost:%priv
   also=L2TP-PSK-noNAT


conn L2TP-PSK-noNAT
  authby=secret
  pfs=no
  auto=add
  keyingtries=3
  rekey=no
  ikelifetime=8h
  keylife=1h
  type=transport
  left=10.64.48.11
  leftid=10.64.48.11
   leftprotoport=17/1701
  right=%any
  rightid=%any
  rightprotoport=17/%any

ipsec.conf对格式要求很严格,一定要注意缩进。注意上面的红字设置为你的ip地址,下面也一样,蓝字是连接时的密钥。

编辑/etc/ipsec.secrets,设置加密字段(预共享密钥),加入如下字段:

10.64.48.11 %any: PSK "test"

修改/etc/sysctl.conf,添加内容如下:

net.ipv4.ip_forward=1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

使其生效

sudo sysctl -p

重新启动ipsec验证是否配置成功:

sudo /etc/init.d/ipsec restart


sudo ipsec verify


安装配置l2tpd

sudo apt-get install xl2tpd

编辑/etc/xl2tpd/xl2tpd.conf,加入如下内容:

[global]
ipsec saref = yes

[lns default]
ip range = 10.168.2.5-10.168.2.254
local ip = 10.168.21
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

安装配置ppp

sudo apt-get install ppp

配置/etc/ppp/options.xl2tpd,如果没有这个文件,新建一个,加入内容如下:

require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 6

配置访问用户:

编辑/etc/ppp/chap-secrets内容如下:

# client        server  secret                  IP addresses
yuzw l2tpd witmob *

保存退出,配置完以上这些我们可以连接vpn,但是不能连互联网,所以我们还需要配置数据包转发,

sudo sed -i 's/#net.ipv4_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

sudo sysctl -p

开启iptables转发:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

重启l2tpd:

sudo /etc/init.d/xl2tpd restart

ok,这样我们的配置就完成了,下面我们配置客户端。

我是在win7下操作的

首先打开网络于共享中心,设置新的网络连接如图:


连接到工作区:


创建一个新的连接:


使用我的internet连接vpn:


输入服务器地址,选择现在不连接,点击下一步:


输入用户名和密码点击创建:


点击关闭,然后你在任务下可以看到你刚才创建的vpn:


然后点击连接


然后点击属性


在安全选项卡中选择L2TP,点击高级设置


在密钥中输入你刚才设置的蓝字。

设置完成后返回到登陆窗口输入用户名和密码即可。

由于我是在内网服务器上配置的所以外网无法访问,虽然没有体验到连接成功的效果,但在这里把所有配置的过程都记下来分享给大家。

找个一个外网地址我又测试了一下,成功界面如下: