CentOS系统中使用pptp架设vpn的方法

好了, 直奔主题, 我使用的系统是centos 5.6

首先约定好, 以下代码中#...及其以后的内容为注释, 可不复制. 示例代码中如何修改的文件里已经存在可以修改成示例那样, 如果没有请添加.

1: 安装依赖软件, 直接yum:

yum makecache
yum -y update
yum -y install ppp wget iptables iptables-devel perl
解释: pptp依赖ppp和iptables运作, 同时需要perl库.

2: 安装pptp:

32位系统:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm

64位系统:
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm

32位系统:

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
64位操作系统.
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm

3: pptp配置

vi /etc/pptpd.conf
localip 192.168.2.1
remoteip 192.168.2.2-192.168.2.250
解释下: localip是pptp使用的ip, 可以随意; remoteip链接到vpn的用户分配到ip的访问, 和localip同一个网段即可.

vi /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 208.67.222.222
解释: 设置链接到vpn的用户如果访问网络时使用的dns, 和他们自己电脑与服务器设置的dns没任何关系.

vi /etc/ppp/chap-secrets
test pptpd 123456 *
解释: 这是链接vpn的用户密码, 每行一个, 代表一个用户.
格式说明: 第一列为用户, 依次是 服务器名称, 密码和ip, 中间使用一个空格或者tab隔开.
用户和密码可随意, 服务器名(pptpd)不要改, 后面的*代表ip由pptpd自动分配

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
/sbin/sysctl -p # 能让设置立即生效
解释: 开启ip转发.

4: iptables设置

如果你的服务器没有/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 (pptpd服务器的IP)

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, 启动pptp.

service iptables restart
service pptpd start
这个时候尝试连接你的服务器, 并使用test 123456登录一个就可以访问一些网站了.

常用命令:

service iptables sava #保存规则
service iptables start #启动iptables
service iptables stop #停止iptables
service iptables restart #重启iptables

service pptpd start #启动pptp
service pptpd stop #停止pptp
service pptpd restart #重启pptp
service pptpd restart-kill #重启pptp, 并且断开所有已经连接的用户
service pptpd status #查看pptp目前状态

chkconfig pptpd on #设置自动启动
chkconfig iptables on #设置自动启动

(0)

相关推荐

  • 在CentOS系统中安装RPMforge的方法

    RPMforge 是 Dag.Dries 和其它软件包的组合.它们为 CentOS 提供了超过 4000 个软件包,包括 mplayer.xmms-MP3和其它流行的媒体播放工具.RPMforge 不 ...

  • CentOS系统中怎么修改默认SSH端口?

    CentOS系统中怎么修改默认SSH端口? 默认的centOS默认端口是22,时间久了你会找到很多日志文件,这是扫描攻击留下的错误日志.那么今天我们要做的就是改成只有自己知道的数字,这样降低了被扫描到 ...

  • centos系统中VPS忘记密码该如何解决?

    centos系统中VPS忘记密码该如何解决? 下面我就随便拿一个VPS来测试,本文以CentOS5.*系统为例,分别在2台KVM架构VPS上测试,他们是:XSVPS.COM(堪萨斯)和VPSPLAZA ...

  • CentOS系统中使用yum命令安装redis

    在linux CentOS系统中使用yum命令安装redis报错: 1 2 3 4 5 6 [root@localhost install]# yum install redis Loaded plu ...

  • CentOS系统中使用yum命令安装redis的方法

    在linux CentOS系统中使用yum命令安装redis报错: [root@localhost install]# yum install redis Loaded plugins: fastes ...

  • CentOS系统中与时间的相关命令详解

    时间在任何系统里都是最基本的部分,必不可少.本文介绍CentOS系统中与时间的相关命令. 基本概念 硬件时钟(Hardware Clock) 硬件时钟,也叫实时时钟(RealTimeClock),或者 ...

  • 在win7/win8/xp系统中设置百度公共dns的方法全程图解

    win7/win8/xp怎么设置百度公共dns呢?近日百度正式宣布推出公共DNS:180.76.76.76,那么百度公共dns怎么设置呢?下文小编就教大家在win7/win8/xp系统中设置百度公共d ...

  • Linux系统中获取路径的文件名的方法

    这篇文章主要介绍了Linux系统中获取路径的文件名的方法,文中总结出了两条,需要的朋友可以参考下 代码如下: [root@dabu.info ]#basename /root/aaa/bbb/dabu ...

  • 在xp系统中如何处理隐藏硬盘分区的方法

    在xp系统中如何处理隐藏硬盘分区的方法 在xp隐藏硬盘分区的问题上,其实许多的网友们都提到或者是遇到了的.那么xp隐藏硬盘分区应该怎么做呢?接下来来介绍一下xp隐藏硬盘分区的方法,一起去看看吧! 1. ...