在Linux的Centos使用pptpd搭建VPN服务

linux sxdgy 10℃

1、原理概述

PPTP 使用 PPP 协议对用户数据进行封装,然后将 PPP 数据帧封装在 IP 数据包里,pptpd 更多是负责客户端到服务器的连接,ppp协议负责用户数据包的封装和转发,当客户端连接到服务器时pptpd服务就是创建一个虚拟网卡ppp0进行用户数据包的封装,和转发到物理网卡,进入以太网。

2、验证内核是否加载MPPE模块

modprobe ppp-compress-18 && echo MPPE is ok
#打印ok表示已加载

3、安装ppp、pptpd软件

yum install ppp  -y
wget ftp://rpmfind.net/linux/epel/6/x86_64/pptpd-1.4.0-3.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-3.el6.x86_64.rpm

4、配置ppp

vim /etc/ppp/options.pptpd #将ms-dns选项前的#去掉并改成自己指定的DNS如谷歌的
ms-dns 8.8.8.8
ms-dns 8.8.4.4

5、添加vpn账号密码

vi /etc/ppp/chap-secrets
username pptpd passwd * #分别是:用户名 服务 密码 来源ip(*代表任意IP都可链接)

6、配置pptpd服务

vim /etc/pptpd.conf #把以下行的注释去掉
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

7、打开内核转发

vim /etc/sysctl.conf #找到下面选项改成1

net.ipv4.ip_forward = 1

#保存后执行

sysctl -p

8、启动pptpd服务

chkconfig pptpd on  #加入开机自动启动

service pptpd start  #启动pptpd服务

9、添加防火墙规则

iptables -P INPUT ACCEPT #设置全部为允许,以免等下清除防火墙规则时ssh断开
iptables  -F
iptables  -X
iptables  -Z #清除防火墙规则结束,下面开始添加防火墙规则
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE #设置共享ip,nat表预路由
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak #备份原来的防火墙规则
iptables-save > /etc/sysconfig/iptables #上面这些设置重启后会失效,所以要把它保存到配置文件
vim /etc/sysconfig/iptables #打开配置文件把filter表中的INPUT链设置DROP如下
:INPUT DROP[0:0]
service iptables restart #重启iptables

转载请注明:零五博客 » 在Linux的Centos使用pptpd搭建VPN服务

喜欢 (0)or分享 (0)