<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[观夏Note]]></title> 
<link>//gm.angeldm.com/index.php</link> 
<description><![CDATA[新技术番]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[观夏Note]]></copyright>
<item>
<link>//gm.angeldm.com/post//</link>
<title><![CDATA[CentOS pptp vpn]]></title> 
<author>果面 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[系统&amp;软件]]></category>
<pubDate>Mon, 09 Apr 2012 11:22:07 +0000</pubDate> 
<guid>//gm.angeldm.com/post//</guid> 
<description>
<![CDATA[ 
	Linux下常用的VPN服务有两个，一个是pptp，另一个则是openvpn。前者更简单一些，但是只有独立服务器和XEN<br/><br/>VPS可以搭建；后者则没有任何限制。前者搭建出来的VPN，不需要特殊的VPN客户端，直接在Windows下创建VPN拨号<br/><br/>连接即可；而后者需要安装一个客户端来进行拨号。<br/><br/>1、检查服务器是否有必要的支持。如果检查结果没有这些支持的话，是不能安装pptp的。执行指令：<br/><br/>#modprobe ppp-compress-18 && echo ok<br/><br/>这条执行执行后，显示“ok”则表明通过。不过接下来还需要做另一个检查，输入指令：<br/><br/>#cat /dev/net/tun<br/><br/>如果这条指令显示结果为下面的文本，则表明通过：<br/><br/>cat: /dev/net/tun: File descriptor in bad state<br/><br/>上述两条均通过，才能安装pptp。否则就只能考虑openvpn，或者请你的服务商来解决这个问题。<br/><br/>2、安装ppp和iptables。默认情况下，完整的CentOS是带有这两个组件的，但是精简版的系统可能没有。我们输入下面的命令来确认，如果没有则进行安装，有的话系统不会做任何动作：<br/><br/>#yum install -y ppp iptables<br/><br/>3、安装pptp。这个软件在yum源里是没有的，我们需要手动下载。我们先切换到tmp目录：<br/><br/>#cd /tmp<br/><br/>然后执行下面的命令来下载pptp安装包：<br/><br/>#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm （32位系统使用）<br/><br/>#wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm （64位系统使用）<br/><br/>如果你的CentOS是32位的，则执行32位的那条指令；如果是64位的CentOS，则执行64位的那条指令。注意不要搞错了。<br/><br/>接下来安装pptp，同样分32位和64位系统：<br/><br/>#rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm （32位系统使用）<br/><br/>#rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm （64位系统使用）<br/><br/>4、配置pptp。首先我们要编辑/etc/pptpd.conf文件：<br/><br/>#vim /etc/pptpd.conf<br/><br/>找到“locapip”和“remoteip”这两个配置项，将前面的“;”注释符去掉，更改为你期望的IP段值。localip表示服务器的IP，<br/><br/>remoteip表示分配给客户端的IP地址，可以设置为区间。这里我们使用pptp默认的配置：<br/><br/>localip 192.168.0.1<br/><br/>remoteip 192.168.0.234-238,192.168.0.245<br/><br/>注意，这里的IP段设置，将直接影响后面的iptables规则添加命令。请注意匹配的正确性，如果你嫌麻烦，建议就用本文的配置，<br/><br/>就可以一直复制命令和文本使用了。<br/><br/>接下来我们再编辑/etc/ppp/options.pptpd文件，为VPN添加Google DNS<br/><br/>#vim /etc/ppp/options.pptpd<br/><br/>在末尾添加下面两行：<br/><br/>ms-dns 8.8.8.8<br/><br/>ms-dns 8.8.4.4<br/><br/>5、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件：<br/><br/>#vim /etc/ppp/chap-secrets<br/><br/>在这个文件里面，按照“用户名 pptpd 密码 *”的形式编写，一行一个账号和密码。比如添加用户名为test，密码为1234的用户，<br/><br/>则编辑如下内容：<br/><br/>test pptpd 1234 *<br/><br/>6、修改内核设置，使其支持转发。编辑/etc/sysctl.conf文件：<br/><br/>#vim /etc/sysctl.conf<br/><br/>将“net.ipv4.ip_forward”改为1，变成下面的形式：<br/><br/>net.ipv4.ip_forward=1<br/><br/>保存退出，并执行下面的命令来生效它<br/><br/>#sysctl -p<br/><br/>7、添加iptables转发规则。经过前面的6个步骤，我们的VPN已经可以拨号了，但是还不能访问任何网页。最后一步就是添加<br/><br/>iptables转发规则了，输入下面的指令：<br/><br/>#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE<br/><br/>需要注意的是，这个指令中的“192.168.0.0/24”是根据之前的配置文件中的“localip”网段来改变的，比如你设置的<br/><br/>“10.0.0.1”网段，则应该改为“10.0.0.0/24”。此外还有一点需要注意的是eth0，如果你的外网网卡不是eth0，而是eth1<br/><br/>（比 如SoftLayer的服务器就是这样的情况），那么请记得将eth0也更改为对应的网卡编号，不然是上不了网的！<br/><br/>然后我们输入下面的指令让iptables保存我们刚才的转发规则，以便重启系统后不需要再次添加：<br/><br/>#/etc/init.d/iptables save<br/><br/>然后我们重启iptables：<br/><br/>#/etc/init.d/iptables restart<br/><br/>8、重启pptp服务。输入下面的指令重启pptpd<br/><br/>#/etc/init.d/pptpd restart<br/><br/>现在你已经可以连接自己的VPN并浏览网页了。不过我们还需要做最后的一步。<br/><br/>9、设置开机自动运行服务。我们最后一步是将pptp和iptables设置为开机自动运行，这样就不需要每次<br/><br/>重启服务器后手动启动服务了。<br/><br/>当然你不需要自动启动服务的话可以忽略这一步。输入指令：<br/><br/>#chkconfig pptpd on<br/><br/>#chkconfig iptables on<br/><br/>这样就OK了。
]]>
</description>
</item><item>
<link>//gm.angeldm.com/read.php?&amp;guid=0#topreply</link>
<title><![CDATA[[评论] CentOS pptp vpn]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>//gm.angeldm.com/read.php?&amp;guid=0#topreply</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>