Linux下架设VPN服务器指南
一、配置环境
Linux(2.6.7)(FC2)
eth0: 192.168.1.8
eth0:1 192.168.0.1 (手工添加)
二、所需软件
1、kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm (MPPE的内核补丁)
2、dkms-1.12-1.noarch.rpm (升级dkms)
3、pptpd-1.2.1.tar.gz (pptpd服务软件)
注:系统必须安装了PPP服务,否则要单独安装
三、安装软件
1、首先安装dkms
rpm -Uvh dkms-1.12-1.noarch.rpm (升级安装)
2、安装mppe
rpm -Uvh kernel_ppp_mppe-0.0.4-2dkms.noarch.rpm
3、安装pptpd
tar -vxzf pptpd-1.2.1.tar.gz
cd pptpd-1.2.1
./configure
make
make install
安装完成了,现在开始配置
四、配置服务器
将pptpd-1.2.1/samples/下的文件
pptpd.conf 拷贝至/etc下
chap-secrets 拷贝至/etc/ppp下
options.pptpd 拷贝至/etc/ppp下
修改pptpd.conf文件:
ppp /usr/sbin/pppd
指定PPP服务程序
option /etc/ppp/options.pptpd
指定选项配置
localip 192.168.1.8
指定本地IP
remoteip 192.168.0.10-245
指定分配的远程IP
netmask 255.255.255.0
指定子网掩码
修改/etc/ppp/options.pptpd文件
name pptpd
auth
require-chap
-chap
-mschap
+mschap-v2
require-mppe
lcp-echo-failure 30
lcp-echo-interval 5
ipcp-accept-local
ipcp-accept-remote
multilink
proxyarp
logfd 2
logfile /var/log/pptpd.log
debug
dump
lock
修改/etc/ppp/chap-secrets文件
# client server secret IP addresses
#username pptpd password *
"xinhe" pptpd "xinhe" *
这里是配置VPN的用户帐号
启动服务:
/usr/local/sbin/pptpd
然后用netstat查看一下1723端口是不是开的,如果是的话则说明服务已成功启动。
找一台windows的机器,IP为:192.166.1.7,新建一个VPN的连接,服务器为192.168.1.8,用户名为:xinhe,密码为:xinhe,可以成功连接了。
在windows的cmd下运行:ipconfig
看到多了一个网络连接,IP为:192.168.0.10,正是前是配置文件里设置的远程IP,这样这台windows的客户端成功连上了这个VPN服务器
但是这里出现了一个问题,原来这台windows机器可以通过网关192.168.1.1上网,但连了VPN之后就不能上网了。因为数据全到VPN服务器上来了,为解决这个问题,我们可利用iptables发数据转发。
新建一个iptables文件,内容如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "clear the iptables rules"
/etc/init.d/iptables stop
/sbin/iptables -A INPUT -p icmp -j DROP
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
/sbin/iptables -F FORWARD
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
/sbin/iptables -F FORWARD
/sbin/iptables -A FORWARD -p udp -s 192.168.1.0/24 --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s 192.168.1.0/24 --dport 1723 -j ACCEPT
/sbin/iptables -A FORWARD -p gre -s 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
然后执行这个iptables文件,OK,windows的客户机可以上网了