1 判断PPP是否可用

首先,我们需要检查服务器是否支持搭建PPTP,在shell中输入:

cat /dev/ppp

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

如果出现以上提示[No such device or address],说明这台服务器PPP可用;若出现”Permission denied”提示,则无法使用PPP,考虑更换一台服务器。

2 安装IPtables

通常Linux系统上都自带安装好了iptables,你可以用rpm -qa | grep iptables来查看安装了没有

如果没有可以使用yum进行安装:

yum install iptables
cp -rpf /etc/sysconfig/iptables /etc/sysconfig/iptables.pptpsave
cd /usr/src

3 安装PPTP套件

安装 pptpd
yum install pptpd

开启路由转发
vi /etc/sysctl.conf

修改:
net.ipv4.ip_forward = 1

执行:
/sbin/sysctl -p

复制以下所有命令,粘贴在shell中:

sysctl -p
echo “localip 192.168.240.1” >> /etc/pptpd.conf
echo “remoteip 192.168.240.101-200” >> /etc/pptpd.conf
echo “ms-dns 8.8.8.8” >> /etc/ppp/options.pptpd
echo “ms-dns 8.8.4.4” >> /etc/ppp/options.pptpd
iptables -\-flush POSTROUTING -\-table nat
iptables -\-flush FORWARD
iptables -A INPUT -p tcp -m tcp -\-dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE
service iptables save
service pptpd restart
service iptables restart
chkconfig pptpd on
chkconfig iptables on

上面的命令请把”\”去掉

如果service iptables save出错please try to use systemctl. 请看文章后面解决方法

以上主要设置了VPN所使用的IP地址段、包转发规则等。VPN客户端将分配到的地址为:192.168.240.* 地址段,通过VPN服务器的eth0以太网接口转发对外的数据包(可以使用ifconfig查看本机对外通信的接口是否为eth0,若不是可自行更改)。

4 设置VPN账号和密码

你任意添加VPN账户,使用Vim编辑文件 /etc/ppp/chap-secrets 一行一个账户,

vi /etc/ppp/chap-secrets

如:
wwt  pptpd  123456 *

分别表示账户名、VPN服务、密码、IP。

例如,我要新增一個帳號為「vpn」,密碼為「test123」,則只要在 /etc/ppp/chap-secrets 加入一行:

vpn pptpd test123 *

现在,就可以在PC或者iPhone上连接VPN上网了。

解决service iptables save出错please try to use systemctl.

出错信息如上所示

本人原来使用的是CentOS6.X版本的Linux,后来为了学习更多内容选择更换CentOS7.X,然后在配置防火墙的时候出现了上面所示的错误,原因:CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。service命令只保留下了极少部分使用,大部分命令都要改用systemctl使用。

在RHEL 7 / CentOS 7中,firewalld被引入来管理iptables。个人觉得, firewalld更适合于工作站而不是服务器环境。
可以回到更经典的iptables设置来解决上面的问题

下面就谈谈上面错误的解决方案。

首先停止防火墙

systemctl stop firewalld

systemctl mask firewalld

然后安装iptables-services

yum install iptables-services

设置开机启动防火墙

systemctl enable iptables

可以使用下面命令管理iptables

systemctl [stop|start|restart] iptables

这时可以保存防火墙规则了

service iptables save

问题就解决了,至于需不需要sudo权限,根据具体环境而定

除非注明, askADC博客 的文章均为原创,转载请注明作者和出处。
本文链接地址: http://blog.askadc.com/linux-%e4%b8%8b%e6%90%ad%e5%bb%bapptp-vpn%e6%9c%8d%e5%8a%a1%e5%99%a8/

发表评论

邮箱地址不会被公开。 必填项已用*标注