搭建openl2tpd服务器

本文档详细介绍了如何搭建openl2tpd服务器,包括安装依赖、加载内核模块、配置静态和动态IP分配、设置用户名密码,以及客户端配置。强调了 IPPool 的使用和端口转发规则的重要性。

搭建openl2tpd,以前也搭建过了,不过没有总结,今天弄了一下,小结一下,记录一下


先贴几个官网的方法,其实openl2tpd的官网就说的蛮清楚了,只不过是全英文的,但是不会影响看配置文件就是

Quick Start:http://www.openl2tp.org/doc/quick_start

Install:http://www.openl2tp.org/doc/install

ippoolconfig(动态给客户端分配IP地址就需要这个):http://opensource.katalix.com/ippool/ippoolconfig.1.html


1、安装依赖软件

写道
apt-get install gcc g++ bison flex libreadline-dev
apt-get install rpcbind

 rpcbind,远程过程调用协议,具体干什么的google一下,根据经验要装这个,要不然某个阶段会报错,装完后要启动rpcbind,执行

写道
/etc/init.d/rpcbind start

 

2、加载模块


这一步还蛮重要的,加载后就是在内核里运行了,吞吐性能可以大大的提高,最少测试现象是这个样子的,执行

写道
modprobe pppol2tp

 要保证上述命令成功,有一个必要条件,即你的内核版本一定要高于2.6.23,ubuntu10.04版的kernel就已经是2.6.32了

成功加载后,执行lsmod,就可以看到pppol2tp这个模块


3、安装openl2tpd


下载:ftp://ftp.openl2tp.org/releases/openl2tp-1.8/openl2tp-1.8.tar.gz

下载完后,执行解压,然后进入目录,执行

写道
make
make install

 一般情况下是不会报错的,要是有报错的话,注意看下输出,应该是某个缺少某个依赖软件


在源代码目录下,有对应操作系统的文件夹,比如你是ubuntu的,有个debian文件夹,里面有个init.d的文件,这个文件时openl2tp开发人员写的启动服务脚本,把它改个名加上可执行权限放到/etc/init.d/目录下去,以后通过service openl2tpd start/restart/stop/status就可以了,方便一些


4、修改配置文件


配置文件的修改,官网给出了两个


①:一个是静态分配客户端ip的配置文件,在/etc/目录下创建openl2tpd.conf文件

写道
touch /etc/openl2tpd.conf

 ,静态分配ip其实有点不太方便了,具体文件如下

写道
ppp profile create profile_name=peer1 \
local_ipaddr=10.5.1.1 \
remote_ipaddr=10.5.1.2

ppp profile create profile_name=peer2 \
local_ipaddr=10.5.1.3 \
remote_ipaddr=10.5.1.4

peer profile create profile_name=peer1 \
peer_ipaddr=80.70.60.50 \
ppp_profile_name=peer1

peer profile create profile_name=peer2 \
peer_ipaddr=42.1.2.3 \
ppp_profile_name=peer2

 这个文件是官网的,本来你就可以直接复制过去的,解释一下:上述配置文件分配两个客户端,这两个客户端建立的连接名称分别是peer1、peer2,peer1的虚拟ip是10.5.1.2,对应的公网ip是80.70.60.50;peer2的虚拟ip是10.5.1.4,对应的公网ip是42.1.2.3;一看就知道这样多不方便了


②:是动态给客户端分配虚拟IP的,这样就方便多了,可以自动分配,并且不需要填写对应的公网ip;但是需要用到软件ippool


1、安装ippool


下载:http://sourceforge.net/projects/openl2tp/files/ippool/1.3/ippool-1.3.tar.gz/download


下载完成后,解压进入目录,先不要急着make,编译的时候文件usl_timer.c有一个宏定义"UINT_MAX"未定义

解决方法是修改ippool-1.3/usrl/目录下的usl_timer.c,在很多个#include加入一行

写道
#include <limits.h>

 

回到ippool-1.3目录,修改Makefile文件,将

写道

PPPD_VERSION= 2.4.4

将版本改成你正在使用的pppd版本即可


然后执行

写道
make
make install

安装完成后,同样源码目录下的debian文件夹里有个init.d文件,重命名加执行权限复制到/etc/init.d/下


2、添加配置文件

在/etc/目录下创建ippool.conf

写道
touch /etc/ippool.conf

 然后编辑文件,文件内容如下

写道
pool create pool_name=default first_addr=10.5.1.1 num_addrs=100

 显而易见,客户端分配地址从10.5.1.1开始,一共100个


要格外注意的是openl2tpd分配地址的机制跟其他软件有些不同,其他软件像pptp、l2tp、vtun都是虚拟网关就一个,然后客户端一次往下分配,而openl2tp却是,比如第一个连接虚拟网关是172.16.0.1,客户端的虚拟ip是172.16.0.2;但是下一个连接虚拟网关是172.16.0.3,客户端的虚拟ip是172.16.0.4;这是一点差别就是


配置完成后,把ipppol进程启动起来即可

 

3、对应的openl2tpd.conf为

写道
ppp profile modify profile_name=default \
ip_pool_name=default

 

5、配置用户名密码


对应的文件为/etc/ppp/chap-secrets

添加一行

写道
test * "test" *

 

需要格外注意的是,openl2tpd不支持全数字密码或者以数字开头的密码

 

 


注意无论你是静态分配地址还是动态分配,服务器端都必须做转发规则,执行

写道
iptables -A POSTROUTING -t nat -s 10.5.1.0/24 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

sysctl -w net.ipv4.ip_forward=1

 

 

 

 

OK,这样差不多openl2tpd服务器端搭建就完成了,执行service openl2tpd start或者直接openl2tpd把进程开起来,能正常开起来就没什么问题了


注意如果有做防火墙规则的话,记得把openl2tpd使用的udp 1701端口允许数据通过



 

openl2tpd目前应该只支持unix/linux客户端,

对于客户端环境的搭建,简单说一下

 

源代码安装过程是一模一样的,差的只是配置文件,客户端需要一个配置文件,即/etc/openl2tpd.conf

官网给的配置文件模板是

写道
ppp profile modify profile_name=default \
auth_eap=no auth_mschapv1=no auth_mschapv2=no

tunnel create tunnel_name=anyname dest_ipaddr=42.1.1.1 \
persist=yes

session create tunnel_name=anyname \
session_name=anysession \
user_name=test \
user_password=test

 

其中dest_ipaddr=42.1.1.1即是配置openl2tpd服务器的ip地址

最下面两行是用户名密码


其他都不用配置了,直接openl2tpd -Df进行debug调试一下就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值