1 ,vim /etc/yum.repos.d/Doylenet.repo
[doylenet]
name=Doylenet custom repository for CentOS
baseurl=http://files.doylenet.net/linux/yum/centos/5/i386/doylenet/
gpgcheck=1
gpgkey=http://files.doylenet.net/linux/yum/centos/RPM-GPG-KEY-rdoyle
enabled=1
2,安装iptables、ppp、pptpd
yum
install
-y ppp iptables-services pptpd
1 | vi /etc/ppp/options .pptpd |
找到 ms-dns两行,将注释#去掉,并改为如下
ms-dns 8.8.4.4(公司外网DNS、可以使用114、8等通用DNS)
ms-dns 8.8.8.8
7、设置pptp拨号用户和密码(可以设置多个用户,每行一个)
1 2 3 | vi /etc/ppp/chap-secrets #client server secret IP addresses vpntest pptpd 123456 * |
引自 http://www.lkycn.com/vpn_pptp.html
8 vi /etc/pptpd.conf #找到localip
localip 172.16.195.1
remoteip 172.16.195.101-200
#Localip这行是给vpn服务器设置一个隧道ip
#Remoteip是自动分配给客户端的ip地址范围。
8 vi /etc/sysctl.conf
#添加一行 net.ipv4.ip_forward = 1 #到末尾即可,然后保存,这个很重要,系统路由模式功能。
sysctl -p #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效
9设置iptables
/sbin/iptables -t nat -A POSTROUTING -s 172.16.195.0/24 -o eth1 -j SNAT --to-source 10.175.249.241
/sbin/iptables -t nat -A POSTROUTING -s 10.175.249.0/24 -o eth0 -j SNAT --to-source 10.147.1.17
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
目标网络vpn的内部网络为10.175.249.0/24,vpn服务器有2个网卡,其中一个网卡连私有网络(eth0),ip是10.175.249.241,另外一个连接公网(eth1),ip地址是10.147.1.17。这样就能正常地路由所涉及的网络了。
坑点又来了,iptables启动时默认是不加载模块的,这样就会导致连接时报619无法验证密码的错误
加载iptables模块
1 2 | modprobeip_nat_pptp modprobeip_conntrack_pptp |
查看模块是否加载
1 2 3 4 5 6 7 | lsmod| grep pptp nf_nat_pptp 13115 0 nf_nat_proto_gre 13009 1 nf_nat_pptp nf_conntrack_pptp 19257 1 nf_nat_pptp nf_conntrack_proto_gre 14287 1 nf_conntrack_pptp nf_nat 26146 4nf_nat_proto_gre,nf_nat_ipv4,nf_nat_pptp,nf_nat_masquerade_ipv4 nf_conntrack 105745 8nf_conntrack_proto_gre,nf_nat,nf_nat_ipv4,nf_nat_pptp,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4,nf_conntrack_pptp |
如果想让iptables自动加载以上模块,可以编辑
1 | vi /etc/sysconfig/iptables-config |
在IPTABLES_MODULES=""字段中添加以上模块。
IPTABLES_MODULES="ip_nat_pptp ip_nat_proto_gre"
重启iptables即可
#iptables 允许 1723 入端口。
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
#iptable 允许 47 入端口。
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
#iptable 允许 GRE 协议。
iptables -A INPUT -p gre -j ACCEPT
#如果需要,把 DNS 协议的 53 端口也允许。
iptables -A INPUT -p udp --dport 53 -j ACCEPT