在编译成功源码,安装完毕xl2tpd后,便可以配置xl2tpd服务。基本配置过程主要涉及两个配置文件:一个用来配置xl2tpd, 一个用来配置ppp协议。下面分别对这两个文件进行说明,最后添加xl2tpd服务搭建过程。

具体信息也可以通过man来查看:

  • man xl2tpd             :启动xl2tpd服务命令行传递参数说明
  • man xl2tpd-control : 对xl2tpd进行参数配置的命令行说明
  • man xl2tpd.conf     :xl2tpd.conf配置文件配置信息说明

模块说明:

xl2tpd 用来提供L2TP协议服务
xl2tpd-control 用来对xl2tpd进行参数配置:隧道、会话的增删改查等

他们是两个不同的进程,使用管道进行通信。

1. 使用GDB调试xl2tpd-control

如果需要使用GDB来辅助调试、学习xl2tpd, 需要在编译阶段加上-g选项,否则无法准确的跟踪调试。直接打开源码中的Makefile, 修改CFLAGS即可,之后重新编译、安装。Makefile修改信息如下:

如果需要单独调试xl2tpd-control进程:挂载到GDB上后,传递参数可通过以下方式:

2. xl2tpd启动参数说明

下面信息可以通过man xl2tpd进行查看

-D

进入调试模式

-l

记录日志信息

-c <config file>

使用指定的配置文件,默认配置文件为/etc/xl2tpd/xl2tpd.conf; 回退配置保留文件:/etc/xl2tpd/l2tpd.conf

-s <secret file>

认证的用户信息,默认的文件为/etc/xl2tpd/l2tp-secrets

-p <pid file>

使用指定的PID文件,默认/var/run/xl2tpd/l2tp-contol

这个文件用来进行管道通信使用的(控制交互),xl2tpdxl2tpd-control之间进行进程间通信

-C

同 -c

3. xl2tpd.conf配置文件说明

下面信息可以通过man xl2tpd.conf进行查看

GLOBAL

SECTION

auth file

用于对隧道的认证。默认文件为:

/etc/xl2tpd/xl2tpd.secrets

ipsec asref

用于ipsec的SA进行跟踪。这是一个开关:yes or no

saref refinfo

listen-addr

监听的接口IP。默认为0.0.0.0,即监控所有的接口

port

监听的端口,默认1701

access control

访问控制开关:yes or no

如果为yes,只能允许指定的对端连接

debug avp

debug network

debug packet

与-D配合使用,信息显示在标准输出上

debug state

debug tunnel

max retries

隧道关闭前尝试的次数,默认为5

LNS

SECTION

exclusive

只允许创建一个控制隧道

(no) ip range

用于为客户端分配IP的IP地址池

assign ip

是否分配IP。yes or no

(no) lac

指定lac的IP地址

hidden bit

隐藏传输

local ip

Xl2tpd本地IP

local ip range

为客户端分配的本地IP池,该项不受assign ip影响

length bit

L2tp报文中length字段生效

(refuse|require) chap

启用或者禁用chap认证

(refuse|require) pap

启用和禁用pap认证 (yes or no)

(refuse|require) authentication

启动和禁用认证 (yes or no)。对连接的用户进行用户和密码认证

unix authentication

If set yes, 将使用/etc/passwd 对对端ppp进行认证

hostname

ppp debug

pass peer

pppoptfile

ppp参数选项配置文件

call rws

过时

tunnel rws

隧道的窗口大小

flow bits

启用序号

challenge

使用challenge向对端发起认证

rx bps

接收带宽

tx bps

发送带宽

LAC

SECTION

lns

设置LNS地址信息

autodial

如果设置为yes,则在启动时进行自动协商

redial

重拨,set yes, 会话断后会尝试重拨

redial timeout

设置重拨的超时时间

max redials

设置重播次数

4. xl2tpd-control配置说明

下面信息可以通过man xl2tpd-control进行查看

xl2tpd-control [-c <PATH>] <command> <tunnel name> [<COMMAND OPTIONS>]

Option

-c

用来指定xl2tpd配置文件

-d

进入调试模式

COMMAND

add

添加新的或者修改已存的lac配置。

格式:<key>=<value>

connect

用来激活当前隧道

disconnect

断开当前隧道

remove

删除隧道

add-lac

添加新的或者修改已存的lac配置

connect-lac

disconnect-lac

remove-lac

add-lns

添加新的或者修改已存的lns配置

remove-lns

status

status-lns

available

5. xl2tpd服务配置

首先要说明的是在xl2tpd源码的examples目录提供了最基本的配置实例,我们可以直接使用该配置,然后把其中的IP地址信息修改自己的虚拟机接口地址基本就可以完成。

root@book-virtual-machine:/usr/src/xl2tpd-1.3.15/examples# ls
chapsecrets.sample README xl2tpd-L2TP-CERT.conf xl2tpd-L2TP-PSK.conf
ppp-options.xl2tpd xl2tpd.conf xl2tpd-L2TP-CERT-orgWIN2KXP.conf xl2tpd-L2TP-PSK-orgWIN2KXP.conf

5.1 xl2tpd.conf服务配置

  • 首先在/etc目录下创建一个xl2tpd目录,这个目录是xl2tpd的默认路径。
  • 将源码中examples目录中的 xl2tpd.conf 拷贝到 /etc/xl2tpd/ 目录。xl2tpd.conf的内容如下(分号是注释),实际起作用的为最后没有注释的那部分
;
; This is a minimal sample xl2tpd configuration file for use
; with L2TP over IPsec.
;
; The idea is to provide an L2TP daemon to which remote Windows L2TP/IPsec
; clients connect. In this example, the internal (protected) network
; is 192.168.1.0/24. A special IP range within this network is reserved
; for the remote clients: 192.168.1.128/25
; (i.e. 192.168.1.128 ... 192.168.1.254)
;
; The listen-addr parameter can be used if you want to bind the L2TP daemon
; to a specific IP address instead of to all interfaces. For instance,
; you could bind it to the interface of the internal LAN (e.g. 192.168.1.98
; in the example below). Yet another IP address (local ip, e.g. 192.168.1.99)
; will be used by xl2tpd as its address on pppX interfaces. [global]
; listen-addr = 192.168.1.98
;
; requires openswan-2.5.18 or higher - Also does not yet work in combination
; with kernel mode l2tp as present in linux 2.6.23+
; ipsec saref = yes
; Use refinfo of 22 if using an SAref kernel patch based on openswan 2.6.35 or
; when using any of the SAref kernel patches for kernels up to 2.6.35.
; saref refinfo = 30
;
; force userspace = yes
;
; debug tunnel = yes [lns default]
ip range = 192.168.1.128-192.168.1.254
local ip = 192.168.1.99
require chap = yes
refuse pap = yes
require authentication = yes ;这是注释: 如果不需要认证,把yes改为no即可
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd ;这是注释:PPP协议参数配置
length bit = yes

5.2 PPP参数选项配置

PPP参数选项文件是通过上述的xl2tpd.conf中指定的:pppoptfile = /etc/ppp/options.xl2tpd

  • 这个目录好像不需要自己创建(我自己没有创建,可能是安装时自动创建的,也可能是百问网虚拟机已经安装了PPP)
  • 将源码中examples目录中的 ppp-options.xl2tpd 拷贝到 /etc/ppp/ 目录下,并改名为options.xl2tpd(要与刚指定文件名一致)。内容如下:
ipcp-accept-local
ipcp-accept-remote
ms-dns 192.168.1.1
ms-dns 192.168.1.3
ms-wins 192.168.1.2
ms-wins 192.168.1.4
noccp
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000

5.3 用户名和密码预置

用户名和密码是需要提前预置的,否则在开启认证功能是无法创建隧道。

预置用户名和密码的文件也只可以手动指定的。 它在源码的examples目录也有提供: chapsecrets.sample可以拿来直接使用。我尝试了好几次,发现在启动xl2tpd进程时通过-c选项来制定认证文件发现依然提示上述错误(抓包发现是PPP在chap认证时失败导致的),后来把/etc/ppp/chap-secrets文件添加上自己预置的用户和密码发现可以连接成功,也不需要指定该文件,应该是默认的文件,暂不清楚原因。文件内容如下:

root@book-virtual-machine:/etc/ppp# cat chap-secrets
# Secrets for authentication on server using CHAP
# client server secret IP addresses
jacco * "mysecret" 192.168.1.128/25 # Dynamic IP
sam * "rumpelstiltskin" 192.168.1.5 # Static IP
sunzd * "123456" 192.168.1.100 #这是我自己添加的
#
# Secrets for authentication on client using CHAP
# client server secret IP addresses
* jacco "mysecret"
* sam "rumpelstiltskin"
* sunzd "123456" #这是我自己添加的

5.4 启动xl2tpd服务

直接运行xl2tpd便可以,如果需要查看调试信息,加上-D选项即可。

这里可能提示/var/run ...错误,这里需要创建一个目录xl2tpd,用途是:xl2tpd和xl2tpd-control会在该目录下创建一个管道用来通信

ubantu虚拟机搭建xl2tp服务的更多相关文章

  1. Windows Azure案例分析: 选择虚拟机或云服务?

    作者 王枫 发布于2013年6月27日 随着云计算技术和市场的日渐成熟,企业在考虑IT管理和运维时的选择也更加多样化,应用也从传统部署方式,发展为私有云.公有云.和混合云等部署方式.作为微软核心的公有 ...

  2. virtualbox 虚拟3台虚拟机搭建hadoop集群

    用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...

  3. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  4. 虚拟机搭建Zookeeper服务器集群完整笔记

    虚拟机搭建Zookeeper服务器集群完整笔记 本笔记主要记录自己搭建Zookeeper服务器的全过程,默认已经安装部署好Centos7. 一.虚拟机下Centos无法联网解决方案 1.首先调整虚拟机 ...

  5. 虚拟机搭建CentOS主机win10通过xshell连接

    目标:主机是win10系统,虚拟机搭建CentOS,在主机上通过XShell连接操作. 第一步 主机上安装虚拟机 第二步 下载CentOS 下载地址http://101.110.118.69/isor ...

  6. 《用OpenResty搭建高性能服务端》笔记

    概要 <用OpenResty搭建高性能服务端>是OpenResty系列课程中的入门课程,主讲人:温铭老师.课程分为10个章节,侧重于OpenResty的基本概念和主要特点的介绍,包括它的指 ...

  7. 在server 2003中搭建域服务(Http NTLM 代理)

    在server 2003中搭建域服务(Http NTLM 代理) 在windows server 2003 X64中搭建域服务的操作. 可参考百度经验:http://www.cnblogs.com/z ...

  8. Azure 中快速搭建 FTPS 服务

    FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...

  9. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

随机推荐

  1. noip模拟测试20

    考试总结:这次考试,我非常真实地感觉到了自己能力的提高,具体来说,在之前的考试中,读完题之后我只会想到暴力的思路,甚至有的题连暴力都打不出来,但是这次在考场上我已经有了自己的一些想法,有了一个深入思考 ...

  2. RecyclerView跳转到指定位置的几种种方式

    Mark一下: http://blog.csdn.net/huangxiaoguo1/article/details/53706971 https://www.jianshu.com/p/3acc39 ...

  3. Js实现随机某个li样式增加

    一.首先引入jquery  cdn   二.基础样式 三.目的 为了使随机某个li背后有个旋转的图片 四.核心代码 html代码: <div class="bg3"> ...

  4. 智能合约审计-不安全的delegatecall

    简介 当合约A以delegatecall方式调用时, 相当于将外部合约B的func()代码复制过来 (其函数中涉及的变量或函数都需要在本地存在), 在合约A上下文空间中执行. 合约 pragma so ...

  5. KMP算法的详细解释

    什么是kmp算法呢?这是一个处理字符串的算法,用来判断给出的模式串p是否存在于文本串t中(p的长度小于t). 在本文中,字符串储存在字符数组中,并且第一个字符放在下标为1的元素中. 那么如何理解kmp ...

  6. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  7. mybatis generator的generatorConfig.xml配置详解

    generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ge ...

  8. 利用Nginx实现反向代理web服务器

    一.Nginx简介 Nginx是一个很强大的高性能Web服务器和反向代理服务器,它具有很多非常优越的特性: 可以高并发连接 内存消耗少 成本低廉 配置文件非常简单 支持Rewrite重写 内置的健康检 ...

  9. NOIP 模拟 $15\; \text{影子}$

    题解 \(by\;zj\varphi\) 一道并查集的题 对于它路径上点权,我们可以转化一下:对于一个点,它在哪些路径上是最小的点权 那么我们排个序,从大到小加入点,每回加入时,将这个点与它所相连的且 ...

  10. Intellj IDEA 光标显示insert状态解决办法

    使用idea过程中,不知道怎么回事,鼠标的光标老是insert状态,体验效果极其差劲,于是去百度,扒拉了好一阵,过滤了垃圾博客,发现了有两种方法可以解决此问题: 第一种方法: 在File------& ...