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

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

发布网友 发布时间:2022-07-07 02:57

我来回答

1个回答

热心网友 时间:2022-07-15 04:53

首先解释一个问题:在 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
发摅解释 摅的组词有哪些 摅字能组哪些词 检测电脑配置的软件电脑硬件检测权威软件有哪几个 查看电脑参数的软件什么软件可以全面检测显示出电脑硬件参数数据_百度... 有没有可以查自己电脑配置的软件啊??? 芯片程序解密哪家好 ...文章怎么突然间阅读量开始大减,从几百掉到个位数。 百家号怎么才个位数播放量?个位数播放量怎么算? 保本收益投资合法吗 羽绒服会越穿越松吗?买了个165的 感觉肩膀有点紧了 穿一段时间会不会就松了? 大海航行靠舵手是谁唱的 求歌词:大海航行靠航手歌词 冬天羽绒背心是穿紧身点好还是宽松一点好? 奥迪和大众是什么关系啊 奥迪跟大众的关系? 大众和奥迪什么关系? 大众是什么奥迪的吗? 奥迪和大众什么关系? 个人所得税和浙里办属于么软件 长颈族是什么样子的? 中银国际软件可炒原油吗 慧通能源最低须要多少资金 营口慧通清洁能源有限公司怎么样? 湖北绿源慧通能源科技有限公司怎么样? 慧通能源可以设置止损价吗 慧通能源软件是真是假 天冷了,为了更好保暖穿宽松的还是稍微紧些的衣服容易保暖? 月供放大45倍贷款具体什么情况 有按揭房贷款,需要还款好久才可以做放大贷? 羽绒服袖子腋下太紧伸展不舒服怎么办?羽绒服应该买修身的好呢?还是宽松的好呢?紧的好呢还是松的好呢? 醉酒后的八种状态是什么? 喝酒醉后什么反应 已经安装好的马桶怎么看坑距 成长期的孩子吃什么长高 成年后有什么方法可以再长高 儿童成长期如何才能有助于长高 穿紧一点的裤子好还是宽松点的好 吴姓,男孩,帮忙取个简单,好记,的名字 羽绒裤子买大了能改小吗? 如何把鸽子养肥不善飞翔 鸽子瘦怎么办 鸽子粪便怎么发酵成有机肥,需要发酵多久 怎么养好鸽子?鸽子一天要吃多少米? 羽绒裤长了如何弄短点办法 不想剪 成语洛阳纸贵与哪部著作有关? 洛阳纸贵哪位历史人物有关 新买的羽绒裤裤子裆恰怎么办? 名人名言英语摘抄 羽绒裤的裤子能修边吗?