centos 5.2 用 pptpd 架设并配置 vpn ,实现多公网IP拨入哪个出口为哪个

第一章:基本安装

1、安装ppp和iptables
yum install -y ppp iptables

2、下载pptpd的rpm包并安装
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

3、编辑配置文件 vi /etc/pptpd.conf
需要有如下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 172.16.195.1
remoteip 172.16.195.101-200
一般只需加入后两行即可,即分配服务器IP和客户端IP范围,可自己选择合适的IP

4、编辑配置文件 vi /etc/ppp/options.pptpd
需要如下内容:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 208.67.222.222
ms-dns 208.67.220.220
一般只需设定后两行的dns服务器地址即可,即去掉#号,把IP改为服务器的dns IP供客户端使用

5、编辑配置文件 vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
(user) pptpd (passwd) *
四项分别为客户端用户名,vpn服务器名(一般不改动),登陆密码,IP分配址(*为自动),中间用空格或Tab键隔开
可加入多个用户,分行录入

6、开启ip转发功能(否则只能连到vpn服务器,不能通过vpn服务器访问外部网络),修改配置文件

vi /etc/sysctl.conf 中的相应内容如下
net.ipv4.ip_forward = 1
使配置立即生效:
/sbin/sysctl -p

7、启用日志 vi /etc/syslog.conf

追加一行:

daemon.debug /var/log/pptpd.log

重起syslog:

kill -SIGHUP `cat /var/run/syslogd.pid`

8、配置iptables

/sbin/iptables -F FORWARD

/sbin/iptables -A FORWARD -p udp –dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp –dport 1723 -j ACCEPT
/sbin/iptables -A FORWARD -p gre -j ACCEPT
/sbin/iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT

如果要为不同客户端IP段分配不同公网IP,可类似如下设置

/sbin/iptables -t nat -A POSTROUTING -s 192.168.251.0/24 -j SNAT –to-source 204.13.64.251
/sbin/iptables -t nat -A POSTROUTING -s 192.168.252.0/24 -j SNAT –to-source 204.13.64.252

……

/etc/init.d/iptables save
/etc/init.d/iptables restart
注意:防火墙一定要开启,否则无法通过vpn服务器访问外网

8、设置iptables和pptpd开机自动启动:
chkconfig pptpd on
chkconfig iptables on

启动pptpd

service pptpd start

第二章:进阶安装(多公网IP实现拨入那个出口为那个)

1. 要配置多公网ip,基本思路是启动多个pptpd进程,分别监听每一个公网IP,并设置不同的ip池段,最后通过snat实现不同网段映射到不同的公网ip

2.设置第一个公网IP
vi /etc/pptpd.conf

localip 192.168.251.1
remoteip 192.168.251.2-254
#在最后面添加一行 第一个公网ip
listen 210.0.0.251

添加NAT映射:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.251.0/24 -j SNAT –to-source 210.0.0.251

3.设置第二个公网IP

cp /etc/pptpd.conf /etc/pptpd1.conf

vi /etc/pptpd1.conf

localip 192.168.252.1
remoteip 192.168.252.2-254
#在最后面添加一行 第一个公网ip
listen 210.0.0.252

添加NAT映射:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.252.0/24 -j SNAT –to-source 210.0.0.252

4.重复3复制配置文件pptpd2.conf,pptpd3.conf…….pptpd[N].conf

5.启动方法:
#pptpd -c /etc/pptpd.conf 这个已经被作为系统服务了
pptpd -c /etc/pptpd1.conf
pptpd -c /etc/pptpd2.conf
pptpd -c /etc/pptpd3.conf
……..

pptpd -c /etc/pptpd[N].conf

将以上命令放入初始启动文件中
linux 自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里这样就可以每次启动的时候自动启动服务了

第三章:查看服务是否启动

查看网络,查看我们设置的每个公网ip上的pptp[tcp:1723]是否启动
netstat -a|more

查看进程
ps -A

启动vpn服务器
service pptpd start

停止vpn服务器,但已有连接不受影晌
service pptpd stop

重启vpn服务器,并切断已连接的客户端
service pptpd restart-kill

service pptpd start

查看本机dns服务器地址
cat /etc/resolv.conf

查看所有网卡的信息
ifconfig -a