linux 下 PPTP 客户端设置
OS:CentOS 6.7内核版本:Linux node6 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
防火墙关闭:
+++++++++++++++++++++++++++++
可以通过源码安装,如果无法安装,请使用RPM包
下载pptp-1.7.2.tar.gz
http://pptpclient.sourceforge.net/
root用户上传至linux主机/tmp目录
解压安装:
cd /tmp
tar xzf pptp-1.7.2.tar.gz
cd pptp-1.7.2
make && make install
+++++++++++++++++++++++++++++
下载RPM包软件 :
ppp-2.4.4-2.el5.i386.rpm(http://rpmfind.net)
libpcap-0.9.4-14.el5.i386.rpm (http://rpmfind.net)
pptp-1.7.2-3.rhel5.i386.rpm (http://pptpclient.sourceforge.net/)
安装
rpm -ivh libpcap-0.9.4-14.el5.i386.rpm
rpm -ivh ppp-2.4.4-2.el5.i386.rpm
rpm -ivh pptp-1.7.2-3.rhel5.i386.rpm
防火墙配置:
vim pptp-iptables.sh
iptables -A INPUT -p 47 -j ACCEPT
iptables -A OUTPUT -p 47 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1723 -j ACCEPT
service iptables save
service iptables restart
yum install pptp-setup
yum install pptp
yum install NetworkManager-openswan
运行
[root@localhost ~]# rpm -ql pptp-setup
/usr/sbin/pptpsetup
/usr/share/man/man8/pptpsetup.8.gz
[root@node6 ~]# pptpsetup --create pptpd --server *.*.*.* --username 123 --password 123 --encrypt --start
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
CHAP authentication succeeded
MPPE 128-bit stateless compression enabled
local IP address 10.2.16.100
remote IP address 10.2.16.13
# pptpsetup �Chelp
pptpsetup �Ccreate <TUNNEL> �Cserver <SERVER> [--domain <DOMAIN>]
�Cusername <USERNAME> [--password <PASSWORD>]
[--encrypt] [--start]
pptpsetup �Cdelete <TUNNEL>
Options:
* <TUNNEL> 配置文件的名称,可以根据不同的连接用不同的名字,自已指定,我这里有vpn.
* <SERVER> PPTP SERVER的IP。
* <DOMAIN> 所在的域,可以省略,一般不用。
* <USERNAME> VPN 上认证用的用户名,VPN用户
* <PASSWORD> VPN上用户认证用的密码
* �Cencrypt 启用加密
* 当没使用�Cencrypt 连接时出现下面的错误时,表示使用了加密,这点也可以和VPN的管理员联系确认一下,遇到下面的* 情况可以加上该参数。
* CHAP authentication succeeded
* LCP terminated by peer (ZM-76-^@<M-Mt^@^@^BM-f )
[root@node6 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
110.88.155.104 192.168.1.177 255.255.255.255 UGH 0 0 0 eth0
10.2.16.13 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.1.177 0.0.0.0 UG 0 0 0 eth0
ifconfig
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.2.16.100 P-t-P:10.2.16.13 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:144 (144.0 b) TX bytes:1662 (1.6 KiB)
其中10.2.16.100为vpn客户端网卡ppp0的IP地址。
10.2.16.13:为PPTPD VPN服务器的接口地址
以上路由只能访问VPN接口IP10.2.16.13,要再添加一条到内网的路由才能访问内网
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.2.16.13
[root@node6 pptp_client_script]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
110.88.155.104 192.168.1.177 255.255.255.255 UGH 0 0 0 eth0
10.2.16.13 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
10.0.0.0 10.2.16.13 255.0.0.0 UG 0 0 0 ppp0
0.0.0.0 192.168.1.177 0.0.0.0 UG 0 0 0 eth0
[root@node6 pptp_client_script]# ps -ef | grep ppp
root 26875 1 0 10:48 pts/0 00:00:00 pptp 110.88.155.104 --nolaunchpppd
root 26885 1 0 10:48 pts/0 00:00:00 pptp 110.88.155.104 --nolaunchpppd
root 26886 1 0 10:48 ? 00:00:00 pppd call pptpd updetach
root 26904 26501 0 10:54 pts/0 00:00:00 grep ppp
执行pptp-setup命令拨号成功后会生成以下文件:
[root@node6 ppp]# pwd
/etc/ppp
[root@node6 ppp]# cat chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
####### system-config-network will overwrite this part!!! (begin) ##########
####### system-config-network will overwrite this part!!! (end) ############
# added by pptpsetup for pptpd
123 pptpd "123" * #每拨一次会生成一行帐号和密码
[root@node6 ppp]# cd peers/
[root@node6 peers]# pwd
/etc/ppp/peers
[root@node6 peers]# cat pptpd
# written by pptpsetup
pty "pptp 110.88.155.104 --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name 100vr
remotename pptpd
ipparam pptpd
require-mppe-128 #如果不用MPPE支持,则不要这句。
#110.88.155.104 为VPN服务器IP
#name字段后跟的是/etc/ppp/chap-secrets中的username(VPN账户名),
#remotename为VPN标识,其他保持默认
#pptpd表示通过pptp-setup 连接的标示符
默认拨号10次,如果没有拨上就停止,设置如下选项,可不断重拨号:
maxfail 0
++++++++++++++++++++++++++++++++
以下是通过手动的方式来连接VPN服务器
++++++++++++++++++++++++++++++++++++++++++++
更改配置:
1、更改拨号用户信息文件
cd /etc/ppp
vi chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
####### redhat-config-network will overwrite this part!!! (begin) ##########
####### redhat-config-network will overwrite this part!!! (end) ############
username connectvpn "password" *
#注意:
增加了zhangsan connectvpn "password" *
#其中username为VPN账户名,"password"为VPN账户密码,
#connectvpn为VPN标识,用户区分不同的VPN连接。
2、创建拨号配置文件connectvpn(上述的VPN标识)
cd /etc/ppp/peers
vi connectvpn
增加如下内容:
pty "pptp 166.123.10.210 --nolaunchpppd"
noauth
refuse-eap
require-mppe-128
name username
remotename connectvpn
file /etc/ppp/options.pptp
#其中 166.123.10.210 为VPN服务器IP,name字段后跟的是/etc/ppp/chap-secrets中的username(VPN账户名),
#remotename为VPN标识,其他保持默认
默认拨号10次,如果没有拨上就停止,设置如下选项,可不断重拨号:
maxfail 0
3、启动VPN客户端
root执行如下命令
# pppd call connectvpn
这个connectvpn为拨号配置文件
或者:
在连接前首先要连通INTERNET。再执行
pon connect 语句进行连接。如果想显示连接时的调试信息可以执行以下命令。
pon connect debug dump logfd 2 nodetach
连接成功后可用ifconfig命令显示接口信息。
连接成功后就可与服务器通信了,但如果要有其它子网通信,就要增加路由信息,具体可参
考网站上的设置。例如要和192.168.1.0子网通信可这样写:
$ route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp1
4、检查拨号结果
稍等10秒左右后,执行
如下命令检查:
[root@nms peers]# ps -ef|grep pppd
root 3617 1 0 06:40 ? 00:00:00 pppd call connectvpn
root 3618 3617 0 06:40 ? 00:00:00 pptp 166.123.10.210 --nolaunchpppd
root 3625 1 0 06:40 ? 00:00:00 pptp 166.123.10.210 --nolaunchpppd
root 3692 3514 0 06:58 pts/3 00:00:00 grep pppd
5、检查获取的vpn客户端IP
[root@nms peers]# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:162.11.0.5 P-t-P:162.11.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:248 (248.0 b) TX bytes:80 (80.0 b)
其中162.11.0.5为vpn客户端网卡ppp0的IP地址。
配置完成
可以在/var/log/messages查看日志
添加完之后,就可以用 ifup vpn 来启动 pptp 虚拟专用网了。
为本地局域网添加路由
这个步骤和虚拟专用网本没有太大关系,但因为需要,就写在这里。还是修改 /etc/network/interfaces 文件,在原有的 eth0 的局域网配置中加入:
up route add -net 10.0.0.0 netmask 255.0.0.0 eth0
这样在不使用 pptp 的时候虽然多了一个路由项,但对系统不会有任何的影响。而在开启 pptp 后,路由也不会出错
通过windows拨号后的路由表: