centos开启ppp centos7搭建dhcp服务器

今天给各位分享centos开启ppp的知识,其中也会对centos7搭建dhcp服务器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

centos安装配置pptpvpn服务器步骤分享

说明:

服务器操作系统:CentOS 5.X 64位

服务器IP地址:192.168.21.128

实现目的:服务器安装配置pptp软件,对外提供vpn拨号服务

具体操作:

一、安装包下载

1、ppp#安装pptpd需要此软件包

2、pptpd#目前最新版本

下载好之后上传到/usr/local/src目录

二、检查服务器系统环境是否支持安装pptp vpn

1、检查系统内核是否支持MPPE补丁

复制代码代码如下:

modprobe ppp-compress-18&&echo success

显示success说明系统支持MPPE补丁,如果不支持,需要先安装kernel-devel

复制代码代码如下:

yum install kernel-devel

2、检查系统是否开启TUN/TAP支持

cat/dev/net/tun

如果这条指令显示结果为下面的文本,则表明通过:

复制代码代码如下:

cat:/dev/net/tun: File descriptor in bad state

3、检查系统是否开启ppp支持

复制代码代码如下:

cat/dev/ppp

如果这条指令显示结果为下面的文本,则表明通过:

复制代码代码如下:

cat:/dev/ppp: No such device or address

上面三条必须同时满足,否则不能安装pptp vpn

三、安装pptp

复制代码代码如下:

cd/usr/local/src

rpm-ivh ppp-2.4.4-14.1.rhel5.x86_64.rpm#安装ppp

rpm-ivh pptpd-1.4.0-1.rhel5.x86_64.rpm#安装pptp

四、配置pptp

1、vi/etc/ppp/options.pptpd#编辑,添加、修改以下参数

复制代码代码如下:

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

ms-dns 8.8.8.8#添加主DNS服务器地址

ms-dns 8.8.4.4#添加备DNS服务器地址

:wq!#保存,退出

2、vi/etc/ppp/chap-secrets#设置pptp拨号用户和密码(可以设置多个用户,每行一个)

复制代码代码如下:

# client server secret IP addresses

osyunweivpnuser01 pptpd 123456*

osyunweivpnuser02 pptpd 1234*

osyunweivpnuser03 pptpd 12345678*

格式:用户名 pptpd密码*

其中*表示为客户端自动分配IP地址

:wq!#保存,退出

3、vi/etc/pptpd.conf#设置pptp服务器IP地址,设置vpn拨入客户端ip地址池

复制代码代码如下:

option/etc/ppp/options.pptpd

logwtmp

localip 172.16.36.1#设置pptp虚拟拨号服务器IP地址(注意:不是服务器本身的IP地址)

remoteip 172.16.36.2-254#为拨入vpn的用户动态分配172.16.36.2~172.16.36.254之间的IP地址复制代码代码如下:

:wq!#保存,退出

/sbin/service pptpd start#启动pptp

/etc/init.d/pptpd stop#关闭

service pptpd restart#重启

chkconfig pptpd on#设置开机启动

五、开启服务器系统路由模式,支持包转发

编辑vi/etc/sysctl.conf

复制代码代码如下:

net.ipv4.ip_forward= 1#设置为1

#net.ipv4.tcp_syncookies= 1#注释掉

复制代码代码如下:

:wq!#保存,退出

/sbin/sysctl-p#使设置立刻生效

六、设置防火墙转发规则

复制代码代码如下:

yum install iptables#安装防火墙

service iptables start#启动防火墙

iptables-t nat-A POSTROUTING-s 172.16.36.0/255.255.255.0-j SNAT--to-source 192.168.21.128#添加规则

iptables-A FORWARD-p tcp--syn-s 172.16.36.0/255.255.255.0-j TCPMSS--set-mss 1356#添加规则

/etc/init.d/iptables save#保存防火墙设置

七、开启pptp服务端口tcp 1723,设置vpn拨入客户端ip地址池172.16.36.0/255.255.255.0通过防火墙

编辑vi/etc/sysconfig/iptables,添加以下代码

复制代码代码如下:

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport 1723-j ACCEPT

-A RH-Firewall-1-INPUT-s 172.16.36.0/255.255.255.0-j ACCEPT

:wq!#保存,退出

备注:

复制代码代码如下:

#192.168.21.128为服务器IP地址

#172.16.36.0/255.255.255.0是第四步中设置的pptp虚拟拨号服务器IP地址段

/etc/init.d/iptables restart#重启防火墙

chkconfig iptables on#设置开机启动

cat/etc/sysconfig/iptables#查看防火墙配置文件

# Generated by iptables-save v1.3.5 on Wed Dec 11 20:21:08 2013

*nat

: PREROUTING ACCEPT [60:4680]

: POSTROUTING ACCEPT [4:258]

:OUTPUT ACCEPT [4:258]

-A POSTROUTING-s 172.16.36.0/255.255.255.0-j SNAT--to-source 192.168.21.128

COMMIT

# Completed on Wed Dec 11 20:21:08 2013

# Generated by iptables-save v1.3.5 on Wed Dec 11 20:21:08 2013

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [94:16159]

:RH-Firewall-1-INPUT- [0:0]

-A INPUT-j RH-Firewall-1-INPUT

-A FORWARD-j RH-Firewall-1-INPUT

-A FORWARD-s 172.16.36.0/255.255.255.0-p tcp-m tcp--tcp-flags FIN,SYN,RST,ACK SYN-j TCPMSS--set-mss 1356

-A RH-Firewall-1-INPUT-i lo-j ACCEPT

-A RH-Firewall-1-INPUT-p icmp-m icmp--icmp-type any-j ACCEPT

-A RH-Firewall-1-INPUT-p esp-j ACCEPT

-A RH-Firewall-1-INPUT-p ah-j ACCEPT

-A RH-Firewall-1-INPUT-d 224.0.0.251-p udp-m udp--dport 5353-j ACCEPT

-A RH-Firewall-1-INPUT-p udp-m udp--dport 631-j ACCEPT

-A RH-Firewall-1-INPUT-p tcp-m tcp--dport 631-j ACCEPT

-A RH-Firewall-1-INPUT-m state--state RELATED,ESTABLISHED-j ACCEPT

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport 22-j ACCEPT

-A RH-Firewall-1-INPUT-p tcp-m state--state NEW-m tcp--dport 1723-j ACCEPT

-A RH-Firewall-1-INPUT-s 172.16.36.0/255.255.255.0-j ACCEPT

-A RH-Firewall-1-INPUT-j REJECT--reject-with icmp-host-prohibited

COMMIT

# Completed on Wed Dec 11 20:21:08 2013

八、设置开机自动建立ppp设备节点(系统重新启动后有可能会丢失此文件,导致pptp客户端拨号出现错误619)

编辑vi/etc/rc.d/rc.local,在文件最后添加此行代码

复制代码代码如下:

mknod/dev/ppp c 108 0#在文件最后添加此行代码

:wq!#保存,退出

在CentOS系统上搭建PPTPVPN的教程

1.先检查vps是否满足配置pptp vpn的环境。因为有的openvz的vps被母鸡给禁用了。其实,你在配置前最好向vps的客服发TK,可能客服会帮你开通vpn或者客服那里会给你他们自己定制的vpn一键安装包也有可能。

2.接着是安装配置pptp vpn的相关软件,安装ppp和iptables。

配置安装好后的pptp软件,这个不像windows那样,安装的过程就是配置的过程。linux的要安装完之后,修改配置文件,才算是完成配置。

3.启动pptp vpn服务。此时,就是检验你能够vpn拨号成功,如果你拨号成功了,说明你的pptp vpn的安装配置就算真正的完成了。但是此时只能登录vpn,却不能用来上网。

4.开启内核和iptables的转发功能。这个步骤是为了让你连上vpn之后,能够上网,上那些yourporn,youtube之类的。这步是最关键的,很多人能成功拨号,登录vpn,但是却不能上网就是因为这个步骤没做好。这步骤完成了,你就可以尽情去国外的网站访问了。

第一步:检测是否符合pptp的搭建环境的要求

服务器版本:CentOs 6.4 xen vps

这里说一下,如果你的linux内核版本等于或高于 2.6.15,内核集成了MPPE。可以用下面命令进行测试内核是否支持

复制代码代码如下:#modprobe ppp-compress-18&& echo ok

返回“ok”说明测试通过。但是返回报错“FATAL: Module ppp_mppe not found.”,也不能说不支持,因为modprobe命令是去/lib/modules/`uname-r`找模块,但是很多时候,这个目录下是空的。所以这个命令没什么太大用处。

于是有人又提出一个命令,通过查看内核编译的配置文件config.gz:

复制代码代码如下:#zgrep MPPE/proc/config.gz

返回CONFIG_PPP_MPPE=y或=m说明内核已经编译了MPPE,通过测试。但是呢,这个命令其实也没什么用,因为有的vps空间商会不会备份config.gz文件。所以,config.gz文件都没有,这命令也是废了。

所以,最后建议直接使用下面的指令:

复制代码代码如下:#cat/dev/net/tun

如果这条指令显示结果为下面的文本,则表明通过:

cat:/dev/net/tun: File descriptor in bad state

上述任意一个命令测试通过,就能安装pptp。否则就只能考虑openvpn。

确认自己的vps能够支持pptp vpn或其他类型的vpn。最好的方法是直接问vps空间商,因为没有人比他们更清楚了。没准人家还会提供vpn一键安装包呢!!!

有部分的vps需要发tk,让vps空间商的技术客服为你的VPS打开TUN/TAP/PPP功能了,而有部分vps控制面板上提供打开TUN/TAP/PPP功能的按钮,自己就能手动开启。

Centos 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP,因此下面检查可以忽略:

复制代码代码如下:#rpm-q ppp//查询当前系统的ppp是否默认集成了,以及ppp的版本

检查PPP是否支持MPPE

用以下命令检查PPP是否支持MPPE:

复制代码代码如下:#strings'/usr/sbin/pppd'|grep-i mppe| wc--lines

如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。

第二步:

1.安装ppp和iptables

PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了

复制代码代码如下:#yum install-y perl ppp iptables//centos默认安装了iptables和ppp

2.安装pptpd

刚才用了yum安装了ppp,但是这里有个问题,几乎大部分的人都会在这里遇到ppp和pptpd不兼容的错误。因为yum安装ppp,总是安装最新版本的ppp,而由于安装的ppp的版本不同,那么就需要安装对应版本的pptpd才行。(参考我的文章《ppp= 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64的解决办法及原因|大步's blog》)

我们要先查看已经安装的ppp的版本,在去找对应的pptpd版本。我手头刚好有两个vps,一个是前年装的pptp vpn,一个是一年后装的pptp vpn,所以,装的yum install ppp的版本不同。

使用下面的命令查看ppp的版本,前提你是yum安装的ppp。

旧的vps上的ppp版本显示:

复制代码代码如下:#yum list installed ppp

显示:

复制代码代码如下:ppp.i386 2.4.4-2.el5 installed

新的vps上的ppp版本显示;

复制代码代码如下:#yum list installed ppp

显示:

复制代码代码如下:ppp.i686 2.4.5-5.el6@base

所以,要对根据ppp版本选择对应的pptpd版本。这里我主要列出常用的。

复制代码代码如下:ppp 2.4.4——————>pptpd 1.3.4

ppp 2.4.5——————>pptpd 1.4.0

贴个ppp和pptpd各个版本的下载地址;

大家下载的时候注意,分清楚你系统的版本是64位的还是32位的。我个人建议ppp用yum安装,pptpd用rpm的安装,因为如果全都rpm或者源码安装,依赖关系很是烦人。文件名含有数字64的就是64位版本,没有的就是32位版本。可以用下面的命令查看自己的系统是32位还是64位的。

复制代码代码如下:#getconf LONG_BIT

下面假设我这里的ppp是2.4.4版本,然后安装pptpd

第一种安装pptpd的方法是直接用yum安装,让电脑自动选择对应的版本:

先加入yum源:

复制代码代码如下:#rpm-Uvh

然后用yum安装pptpd:

复制代码代码如下:#yum install pptpd

这是最省时间和力气的。余下的和手动安装没什么区别了。

第二种是手动安装pptpd包:

对于32位CentOS,执行

复制代码代码如下:wget

rpm-ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

对于64位CentOS,执行

复制代码代码如下:wget

rpm-ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

这里贴上32位的pptpd的rpm的下载地址:

64位安装的时候如果出现:

复制代码代码如下:warning: pptpd-1.3.4-2.rhel5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY

error: Failed dependencies:

ppp= 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64

原因是pptpd与PPP不兼容,那么,此时用#yum list installed ppp命令查看ppp版本,极有可能ppp是2.4.5版本的。所以,我们要下载pptp 1.4.0版本才行,而且这里是64位的系统。下载pptpd-1.4.0-1.el6.x86_64.rpm安装即可。这就是我说的出现版本不兼容的问题,当ppp版本和pptpd版本不兼容时候,就会出现类似的错误。

这里我分享下pptpd下载地址;

64位pptpd-1.4.0-1.el6.x86_64.rpm的下载地址:

32位pptpd-1.4.0-1.el6.i686.rpm版本下载地址:

看到有人建议用--nodeps--force这个参数,我个人不建议,这个参数可能以后会出现奇怪的问题,但是如果实在不行,你就用吧

第三步:修改配置文件

1.配置文件/etc/ppp/options.pptpd

复制代码代码如下:#cp/etc/ppp/options.pptpd/etc/ppp/options.pptpd.bak

#vi/etc/ppp/options.pptpd

解析:我还建议是在原配置文件上添加内容来配置pptp,省的不必要的麻烦和问题

将如下内容添加到到options.pptpd中:

复制代码代码如下:ms-dns 8.8.8.8

ms-dns 8.8.4.4

然后保存这个文件。

解析:ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器。

2.配置文件/etc/ppp/chap-secrets

复制代码代码如下:#cp/etc/ppp/chap-secrets/etc/ppp/chap-secrets.bak

#vi/etc/ppp/chap-secrets

chap-secrets内容如下:

复制代码代码如下:# Secrets for authentication using CHAP

# client server secret IP addresses

myusername pptpd mypassword*

//myusername是你的vpn帐号,mypassword是你的vpn的密码,*表示对任何ip,记得不要丢了这个星号。我这里根据这个格式,假设我的vpn的帐号是ksharpdabu,密码是 sky。那么,应该如下:

复制代码代码如下:ksharpdabu pptpd sky*

3.配置文件/etc/pptpd.conf

复制代码代码如下:#cp/etc/pptpd.conf/etc/pptpd.conf.bak

#vi/etc/pptpd.conf

添加下面两行:

复制代码代码如下:localip 192.168.9.1

remoteip 192.168.9.11-30//表示vpn客户端获得ip的范围

关键点:pptpd.conf这个配置文件必须保证最后是以空行结尾才行,否则会导致启动pptpd服务时,出现“Starting pptpd:”,一直卡着不动的问题,无法启动服务,切记呀!(相关文档可以查看:Starting pptpd:运行不下去的原因)

复制代码代码如下:ppp= 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64

4.配置文件/etc/sysctl.conf

复制代码代码如下:#vi/etc/sysctl.conf//修改内核设置,使其支持转发

将net.ipv4.ip_forward= 0改成 net.ipv4.ip_forward= 1

保存修改后的文件

复制代码代码如下:#/sbin/sysctl-p

第四步:启动pptp vpn服务和iptables

复制代码代码如下:#/sbin/service pptpd start或者#service pptpd start

经过前面步骤,我们的VPN已经可以拨号登录了,但是还不能访问任何网页。最后一步就是添加iptables转发规则了,输入下面的指令:

启动iptables和nat转发功能,很关键的呀:

复制代码代码如下:#/sbin/service iptables start//启动iptables

#/sbin/iptables-t nat-A POSTROUTING-o eth0-s 192.168.9.0/24-j MASQUERADE或者使用下面的一种:

#iptables-t nat-A POSTROUTING-o eth0-s 192.168.9.0/24-j SNAT--to-source 207.210.83.140

//注意:命令中的"-o eth0"是指定网卡名称,如果是多个网卡,就根据需要将-o eth0改成你-o ethXX(ehtXX是你网卡的名称),可以通过ifconfig查看有哪那些连通外网的网卡,一般vps都是单网卡的,而且大都网卡默认名都叫eth0。但是事情总是多样的,所以如果你的上网的网卡不是叫 eth0,那么就必须去掉-o eth0。直接让系统判断你用的网卡,所以将上面的命令改成:

复制代码代码如下:iptables-t nat-A POSTROUTING-s 192.168.9.0/24-j SNAT--to-source 207.210.83.140

//你需要将207.210.83.140替换成你的vps的公网ip地址,因为这里我写的是我的。还有就是有人说我这--to-source前只有一个横杠,其实是有两个横杠的。文章在编辑模式下显示是两个横杠,因为用的是英文输入法,所以,发表后就变成了一个横杆,而且在源码下复制粘贴也是一横,只有在编辑模式下才能看清楚是两横。但是可以明显看到to前面的那一横比source前的那横长一些,这些都是我操作记录下的命令,不会有错的。为了防止你们出错,我还是用不同的颜色标记吧。

这里我先前写的不是很详细,现在补上:

需要注意的是,这个指令中的“192.168.9.0/24”是根据之前的配置文件中的“localip”网段来改变的(网上有的教程是192.168.0.0/24),比如你设置的“10.0.0.1”网段,则应该改为“10.0.0.0/24”。此外还有一点需要注意的是eth0,如果你的外网网卡不是eth0,而是eth1(比如SoftLayer的服务器就是这样的情况),那么请记得将eth0也更改为对应的网卡编号,不然是上不了网的!

如果你的linux vps是ppp或者ADSL这种由DHCP动态分配获取ip的方式(当然vps的ip基本都是是固定的。如果你是XEN的vps,那么这个转发规则其实也是适用的,就是让vps自己判断自己的ip,省去了我们指定。),那么就需要用-j MASQUERADE这种写法,就是ip伪装。当然如果使用iptables-t nat-A POSTROUTING-o eth0-s 192.168.9.0/24-j SNAT--to-source XXX.XXX.XXX.XXX这种转发规则其实也是可以的,这样亲自指定自己的vps的ip地址。以后你通过vpn访问网站,显示的就是这个ip了。

复制代码代码如下:#/etc/init.d/iptables save//保存iptables的转发规则

#/sbin/service iptables restart//重新启动iptables

最后一步:重启pptp vpn

复制代码代码如下:#service pptpd restart

CentOS配置LNS和VSR作为LAC建立L2TP隧道

使用 CentOS配置 LNS(L2TP Network Server)和 VSR(Versatile Security Router)作为 LAC(L2TP Access Concentrator)建立 L2TP隧道的过程,旨在实现私有网络与公网间的安全连接。本文将详细指导如何在 CentOS服务器上配置 LNS功能,以及如何在 VSR路由器上设置 LAC模式,以实现两端的 L2TP隧道对接。

首先,通过安装 xl2tpd软件包,可实现 CentOS作为 LNS的基本配置。L2TP配置文件分为三个部分:`/etc/xl2tpd/xl2tpd.conf`用于配置 LNS的网络接入部分,如监听 IP地址和分配给客户端的 IP地址范围;`/etc/ppp/options.xl2tpd`主要配置与 LAC建立隧道的网络参数,通常只需修改 DNS地址;`/etc/ppp/chap-secrets`用于配置 L2TP接入的用户密码数据。

在 CentOS服务器上,通过调整配置文件中的 IP地址和相关参数,使服务器能够正确响应 LAC的连接请求。重启 xl2tpd服务后,即可完成服务器端的 LNS配置。

对于 VSR路由器,需要开启 L2TP功能并配置 LAC模式,指定 LNS的地址,并关闭隧道验证。创建虚拟 PPP接口,配置 PPP用户名、密码及验证方式,同时设置 LAC发起 L2TP隧道建立请求。VSR会自动发起协商,建立隧道连接。

连接建立后,隧道接口将获得静态 IP地址,并实现与 LNS的正常互访。通过检查 LNS端配置,确认 pp端口 UP,并验证其 IP地址。进一步测试 LAC访问 LNS上的指定 IP地址,实现跨三层转发。

为了使 CentOS能够转发业务,需要调整防火墙和 iptables。首先,停止 firewalld服务并禁用,配置 CentOS开启内核转发,并对转发流量进行 NAT地址转换。完成这些配置后,测试 VSR通过 LNS访问互联网,验证转发性能。

通过本文的步骤和配置,成功在 CentOS和 VSR之间建立 L2TP隧道,实现了私网与公网之间的安全连接。关注我们的公众号,获取更多实用网络配置技巧。

阅读剩余
THE END