MGJ的地盘

爱拼才会赢!

CentOS pptpd安装 195

作者为 发表

现在大多数VPS服务器都位于国外,因此PPTP服务器可以用来搭建一个比较实用的代理服务器。PPTP服务需要用到特定的Linux内核技术,因此绝大多数OpenVZ架构的VPS都不能配置PPTP(可以用OPENVPN代替),但几乎所有的XENKVM架构的VPS都能正常安装。本文将以XEN架构的CentOS系统下安装PPTP服务为例进行讲解。

 

1、准备环境

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

 

yum install perl ppp iptables

2、安装PPTPD

对于32CentOS,执行

 

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm

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

 

对于64CentOS,执行

 

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

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

3、修改配置

编辑PPTP配置文件 vim /etc/ppp/options.pptpd 如内容下:

 

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

idle 2592000

ms-dns 8.8.8.8

ms-dns 8.8.4.4

编辑配置文件 vim /etc/pptpd.conf ,内容如下:

 

option /etc/ppp/options.pptpd

logwtmp

localip 192.168.254.1

remoteip 192.168.254.100-254

* 其中localipremoteip定义了客户端连接VPN服务器后被分配到的内网IP地址,可根据需要自己修改。

 

现在对用户认证文件 vim /etc/ppp/chap-secrets 进行配置,内容如下:

 

testuser pptpd testpwd *

* testusertestpwd对应修改为自己希望的VPN登录用户名和密码

 

vim /etc/sysctl.conf 文件中net.ipv4.ip_forward设置为 1 (如果没有,则按照格式新建一行):

 

net.ipv4.ip_forward = 1

保存退出。执行

 

/sbin/sysctl -p

使之生效。

 

 

 

4、设置IPTABLES转发

/etc/init.d/iptables start

/sbin/iptables -t nat -A POSTROUTING -o venet0 -s 192.168.254.0/24 -j MASQUERADE

/etc/init.d/iptables save

/etc/init.d/iptables restart

* 注意,上面的192.168.254.0应该与之前设置的网段对应。

 

/sbin/iptables -t nat -A POSTROUTING -o venet0 -s 192.168.254.0/24 -j SNAT –to 174.140.171.94

 

iptables设置

如果你的服务器没有vim /etc/sysconfig/iptables文件这个文件, 可以创建他, 输入一下内容, 这是默认的规则.
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -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 ESTABLISHED,RELATED -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 80 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT

保存退出后重启iptables, 并备份默认规则.

cp /etc/sysconfig/iptables{,.bak}
service iptables start

设置客户端分配的公网ip, 就是使用vpn访问网站的时候体现出来的ip
iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j SNAT –to-source 192.168.1.108

service iptables save #保存上面设置的规则
service iptables restart

解释: 我是局域网设置的, 且只有一个ip就是192.168.1.108, 如果是独立外网ip, 替换成你的外网ip.
如果你的服务器有多个网卡, 这个ip可以是任何一个.

vi /etc/sysconfig/iptables

#-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT前面添加如下, 这个是DNS的端口, 不设置的话, 用户即使能连上vpn, 也只能上qq, 不能访问网络.

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

#-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT后面添加如下

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

保存退出, 重启iptables.

 

 

 

5、设置开机启动

chkconfig pptpd on

chkconfig iptables on

重启计算机即可进行连接,并且能够正常上网。

 

如果重启服务器后,无法连接VPN,首先检查服务器的PPTP服务1723端口是否已打开(注意设置防火墙允许此端口);如果可以连接VPN,但是无法正常上网,则检查iptables是否正常转发。

 

6VPN客户端配置(windows)。

 

1、建立VPN连接,鼠标右键单击桌面的“网上邻居”图标,选择快捷菜单中的“属性”命令。 双击“新建连接向导”图标。 在出现的“欢迎使用新建连接向导”对话框中单击“下一步”按钮,选择"连接到我的工作场所的网络"

2、点击下一步,选择"虚拟专用网络连接"

3、输入连接的名称

4、输入VPN服务器的域名或IP地址

5、在最后一步,选择在桌面创建一个快捷方式

六、拨号登录。

在桌面上双击“VPN连接图标”图标,在出现的连接对话框中输入登录VPN服务器的用户名和密码,然后单击“连接”按钮。



评论功能已被关闭。


 主题设计 • skyfrit.com  MGJ的地盘 | 保留所有权利

48 queries in 0.416 seconds.