问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在 Debian / Ubuntu 服务器上架设 L2TP / IPSec

发布网友 发布时间:2023-11-24 03:17

我来回答

1个回答

热心网友 时间:2024-10-28 08:58

首先解释一个问题:在 iPhone 的 VPN 设置介面里(Settings >> General >> Network >> VPN),你可以看到三个标签:L2TP, PPTP, IPSec。但上面我们又讲本次介绍的 VPN 方式叫「L2TP / IPSec」,这两者究竟是什么关系?

  这三个标签确实令人混淆,准确的写法应该是:L2TP over IPSec, PPTP, Cisco IPSec。PPTP 跟另外两者关系不大,且大家较为熟悉,暂且不提,L2TP 和 IPSec 的区别如下。

  L2TP:一个「包装」协议,本身并不提供加密和验证的功能。

  IPSec:在 IP 数据包的层级提供加密和验证功能,确保中间人无法解密或者伪造数据包。

  本来,只用 IPSec 就可以实现 VPN,Mac OS X 和 Linux 都支持。但是 Mac OS X 和 iPhone OS 都推荐使用 L2TP over IPSec,在两者的图形介面上也只能设置这个。L2TP / IPSec 是业界标准,微软也支持。而只用 IPSec 的常见于 Linux-to-Linux 的应用,比如将两个位于不同地区的办公室网络安全地连在一起。这多是固定 IP 路由器到固定 IP 路由器级别的连接,只需保证数据包不被中途截获或者伪造就可以,故使用 L2TP 的意义不大。L2TP / IPSec 主要是实现所谓「Road Warrior」的设置,即用变动的客户端连固定的服务器。

  Cisco 的 VPN 用的也是 IPSec 加密,但那是一套不同于 L2TP 的私有包装协议,用于提供用户管理之类的功能,因此一般都需要用 Cisco 自家的 VPN 客户端连接。iPhone / iPad 的 VPN 设置介面中的 IPSec 标签里有 Cisco 的标识,就是这个原因。

  以下是在 Ubuntu 和 Debian 主机上架设 L2TP / IPSec VPN 的步骤,一共十四步。你需要有服务器的 root 权限(所以 DreamHost, BlueHost, MediaTemple 这些服务供应商帮你把一切打点周到的主机就无缘了),也需要一些基本的 Linux 知识。不然的话,我们还是推荐您找一位比较熟技术的朋友帮忙。

  一、安装 IPSec。如上所述,IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。我推荐用 openswan 这个后台软件包来跑 IPSec。

  用以下命令安装 openswan:

  sudo aptitude install openswan二、用文字编辑器打开 /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=YOUR.SERVER.IP.ADDRESS
  leftprotoport=17/1701
  right=%any
  rightprotoport=17/%any三、用文字编辑器打开 /etc/ipsec.secrets,改成这样:

  YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"(别忘了把「YOUR.SERVER.IP.ADDRESS」这部分换成你的服务器的 IP 地址,把「YourSharedSecret」部分换成随便一个字串,例如你喜欢的一句话,等等。)

  四、运行以下命令:

  for each in /proc/sys/net/ipv4/conf/*
  do
  echo 0 > $each/accept_redirects
  echo 0 > $each/send_redirects
  done五、检查一下 IPSec 能否正常工作:

  sudo ipsec verify如果在结果中看到「Opportunistic Encryption Support」被禁用了,没关系,其他项 OK 即可。

  六、重启 openswan:

  sudo /etc/init.d/ipsec restart七、安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。

  运行以下命令:

  sudo aptitude install xl2tpd八、用文字编辑器打开 /etc/xl2tpd/xl2tpd.conf,改成这样:

  [global]
  ipsec saref = yes

  [lns default]
  ip range = 10.1.2.2-10.1.2.255
  local ip = 10.1.2.1
  ;require chap = yes
  refuse chap = yes
  refuse pap = yes
  require authentication = yes
  ppp debug = yes
  pppoptfile = /etc/ppp/options.xl2tpd
  length bit = yes这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。

  九、安装 ppp。这是用来管理 VPN 用户的。

  sudo aptitude install ppp十、检查一下 /etc/ppp 目录里有没有 options.xl2tpd 这个文件,没有的话就建一个,文件内容如下:

  require-mschap-v2
  ms-dns 208.67.222.222
  ms-dns 208.67.220.220
  asyncmap 0
  auth
  crtscts
  lock
  hide-password
  modem
  debug
  name l2tpd
  proxyarp
  lcp-echo-interval 30
  lcp-echo-failure 4注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS),请自行更换。

  十一、现在可以添加一个 VPN 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:

  # user server password ip
  test l2tpd testpassword *如果你之前设置过 PPTP VPN,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 test l2tpd testpassword * 这样加到后面即可。

  十二、重启 xl2tpd:

  sudo /etc/init.d/xl2tpd restart十三、设置 iptables 的数据包转发:

  iptables --table nat --append POSTROUTING --jump MASQUERADE
  echo 1 > /proc/sys/net/ipv4/ip_forward十四、因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rc.local 文件里写入如下语句:

  iptables --table nat --append POSTROUTING --jump MASQUERADE
  echo 1 > /proc/sys/net/ipv4/ip_forward
  for each in /proc/sys/net/ipv4/conf/*
  do
  echo 0 > $each/accept_redirects
  echo 0 > $each/send_redirects
  done
  /etc/init.d/ipsec restart到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在「Secret」中填入你在上述第三步里填的 YourSharedSecret。

  如果连接成功,上网也没问题的话,恭喜你,大功告成。如果连不上,恐怕还得多做一步。

  Ubuntu 9.10 自带的 openswan 版本是 2.6.22, Debian Lenny 带的版本是 2.4.12。这两个版本的 openswan 都有问题。我们的测试结果表明,2.6.24 版的 openswan 可以在上述两版的 Linux 操作系统下正常工作。所以如果做完以上十四步还是连不上的话,请考虑从源码编译 openswan 2.6.24
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
帮忙介绍几个昆山好吃的地方 ...古代文学论述题——举例说明庄子散文的特点。谢谢(⊙o⊙)哦知 ... 天津滨海职业大学智能制造装备技术学什么 智能制造装备技术专业就业方向有哪些 智能制造装备技术专业主要学什么 公孙衍人物故事 吹奏乐器巴乌 巴乌简介 倒库要打转向灯 倒车入库要开转向灯吗 寄快递的时候忘记写品名 没到一年怎么申请改? 我脾气不好总爱打骂宝宝,宝宝才一岁零两个月几乎是被我从小打到...114 maven snapshot和release版本的区别130 我们租的房子到期了,但是没有提前通知房主,他要扣押金,这样合理吗... 祭扫先人能否带小宠物狗狗去吗?2 如何让宠物龟开胃,乌龟胃口不好如何开胃 我有高级中学教师资格证,但是现在在小学教书,我可以转到中学吗?急需... 我们深深地被扁鹊高超的医术震撼了,这句子对吗? 生化危机4怎么把怪物修改成别的模型 湖南工业大学有舞蹈编导课上吗 ...青岛劳动监察大队电话为什么打不通?公司工资拖欠,找市劳动监察大队对... 9月将上演木星冲日现象,研究普通人一辈子都触及不到的太空究竟有何意义... 四十岁的男人保养124 四十岁的男人怎么保养11 40岁男人怎么保养皮肤2 ...一只白羊与一只黑羊交配生了一只小黑羊,亲代白羊和 关于高考报名外省与本省差别39 一个手机号同时注册了两个怎样找回第一个微信? 打开机油盖发动机发抖,盖上时不抖了,怎么回事? 如何申请第二个? 我的手机导航定位苹果6plus打电话给我能知道我在哪里吗? 浙江今年高考生源少。我女儿报考浙江的学校会有优势吗 怎么下载小说到mp3上?131 OPPO r7s怎么设置手机微信分身?25 如何在 Debian / Ubuntu 服务器上架设 L2TP / IPSec 如何在CentOS创建L2TP/ipsec 服务 戴眼镜多久才可以摘下来5 想问问,如果我不近视戴100多度的眼镜要戴多久能近视?(吃饭... 我不小心把朋友手机号拉黑了,怎么找回来 三星手机把一个人的手机号拉黑了不让他的号码出现在通话记录中1 三星手机把电话号码拉入黑名单怎么还能打进来?6 OPPO r7s怎么设置手机微信分身?25 珠海哪批发驴肉最便宜的地方 2008北京奥运会歌曲有哪些?285 ...平方的房子价格4000每平米,二手房需交多少税费? 小区若发生案件,秩序维护人员应采取哪些步骤以协助破案? ...时过去完成时过去进行时过去将来时被动语态的结构 ...辞退可以要求节假日的加班赔偿吗?需要什么证明? 陇县属于哪个区?4