问答文章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-12-22 14:49

我来回答

1个回答

热心网友 时间:2024-06-13 22:17

首先解释一个问题:在 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 :

  sudo aptitude install libgmp3-dev gawk flex bison
  wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
  tar xf openswan-2.6.24.tar.gz
  cd openswan-2.6.24
  make programs
  sudo make install编译需要一段时间。你的 Linux 内核版本需要高于 2.6.6。

  然后可以删除原先通过 aptitude 安装的 openswan,并重启之:

  sudo aptitude remove openswan
  sudo /etc/init.d/ipsec restart
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我想问扣扣邮箱在哪里 求几道奥数题的答案(算数的)要简便得算哈 能不能给我六十道五年级奥数题.要答案 六十道五年级奥数题? 比亚迪和哪国合资的车 入党政审有什么步骤? 请问邮箱在哪里我怎么找不到 夫妻相克表太准了 夫妻相克会离婚吗? 夫妻相克表太准了夫妻五行相克化解方法 无法登录学信网怎么办? 一个手机号怎么申请第二个? 房贷每月还款能不能隔几月再交 感情上,好心人来帮帮我 好心人、帮帮我… 我在一商场地下停车场洗车行办了洗车卡,现该洗车行突然撤场,我该找... 晋州到燕效有多少公里 改一年内怎么改第二次 ...卡,我已干了一个月想辞职,而他不给我工资我怎么办? 空中草原距离晋州有多远 被误改被限制1年后才能改回来怎么弄? 钓鱼灯的话,晚上钓虾用什么颜色的光比较好一些, 我试用拿到了一个tank... #北京中级答辩通过率 我想换一个,怎么把原上的好友全都转移到新号上? 太原去包头的长途汽车的多少钱 顺便说一下在什么地方坐车 暗物质就像保护性脚手架,让星系保持形状,固定在某个位置 word文档怎么将文字改为横向显示 变压器两个线圈产生的磁场是彼此增强吗? 被封了没有好友怎么解封? 办了个洗车卡,刚洗了三次,洗车店就关门了,该怎么办 如何申请第二个 想重新申请一个新的微信帐号如何操作 家里有个旧的太阳能热水器桶,可以拆开来种菜吗? 我的电话坏了是 诺基亚 我在大连开发区 不知道哪有维修站啊 诱小龙虾笼放几颗夜光珠好 我一个手机号注册了两个,另外一个登不上了,怎么办? 一年内怎么改第二次 一卡二号在香港还是大陆号码 ...它的价格有没有包括燃油附加费机场建设费和保险 老年人医保怎么激活 如何将微信好友转移到另一个上? 有的在网上租是干嘛? 把长度为20厘米的线段进行黄金分割,则较短线段的长是多少(相似问题) ...很厉害。重生到纨绔子弟身上。有很多女主角。像重生之都市狂龙... 三角+圆圈+方块+方块=10,三角+方块+三角+方块=12,三角+圆圈+方块+圆... 诺基亚E75开机要求输入锁码的问题;求助高人 电脑的网络连接里突然多出来一个无线网络连接2,不知道是什么东西... 怎样在电脑里下载nba live 2006,请说出详细步骤!!!否则不加分 全球公爵怎么使用 一年内能改第二次吗? 二灰稳定土的( )优于石灰稳定土。 ...进程是什么啊,怎么每次开机的时候都有啊,怎么解决啊!