嵌入式 ubuntu12.04下创建PPTP客户端保证可用!

我先贴出来自己的配置,请它配置网上很多,我在下方也贴出来了,可以参考:

路径:“/etc/ppp/peers” 注意该配置会打印调试信息

pty "pptp 10.10.2.59 --nolaunchpppd"
lock
#noauth
nodetach
debug
lock
noauth
user kj
password 123456
nobsdcomp
nodeflate
defaultroute
ipparam vpn_bbbj
require-mppe-128
refuse-pap
refuse-chap
refuse-eap
refuse-mschap
lcp-echo-interval 36


配置环境:

服务器和客户端均为:

ubuntu 11


服务器端:

[plain] view plaincopy
  1. sudo apt-get install pptpd  

编辑 /etc/pptpd.conf


[html] view plaincopy
  1. # TAG: option  
  2. #       Specifies the location of the PPP options file.  
  3. #       By default PPP looks in '/etc/ppp/options'  
  4. #  
  5. option /etc/ppp/pptpd-options  
  6. #设置本地服务器 IP 地址与客服端 DHCP 分配地址范围  
  7. localip 10.0.0.1  
  8. remoteip 10.0.0.2-10  
  9. #地址也可以配置为192.168.1.1什么的,这个文件其实可以不动,默认的配置文件也可以使用。  
  10. # 建议把logwtmp前的注释给删了,当连接建立以后,可以参看log。  

编辑 /etc/ppp/pptpd-options

[html] view plaincopy
  1. #设置客服端DNS  
  2. ms-dns 8.8.8.8 #该DNS为Google免费DNS服务器  


编辑 /etc/ppp/chap-secrets (这个文件在以后的文章也要频繁涉及,所有涉及ppp挑战握手认证的配置,都要修改这个文件。这个文件就是用于存放用户名密码的。)

[plain] view plaincopy
  1. # Secrets for authentication using CHAP  
  2. # client        server  secret                  IP addresses  
  3. test                 *          “password”                    *  

(用户名为test,密码为password,对服务器名和IP没有任何指定)

如果是在局域网中测试,以下步骤可以忽略。

开启 ipv4 forward
编辑 /etc/sysctl.conf

[plain] view plaincopy
  1. net.ipv4.ip_forward=1  
运行

[plain] view plaincopy
  1. sudo sysctl -p  

使修改生效

开启NAT
运行

[plain] view plaincopy
  1. sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE  

可以使用

[plain] view plaincopy
  1. sudo iptables-save > /etc/iptables-rules  

保存配置,然后在 /etc/network/interfaces 文件中对应接口添加如下:

[plain] view plaincopy
  1. pre-up iptables-restore < /etc/iptables-rules  
iptables就可以在开机时自动加载配置了

如果有打开ufw防火墙
需要编辑 /etc/default/ufw ,设置:

[plain] view plaincopy
  1. DEFAULT_FORWARD_POLICY=”ACCEPT”  

然后运行

[plain] view plaincopy
  1. sudo /etc/init.d/ufw restart  
最后输入:

[plain] view plaincopy
  1. sudo service pptpd restart  
启动服务器,至此为止服务器端的配置完成了。


客户端:

安装客户端软件:

[plain] view plaincopy
  1. apt-get install pptp-linux  

编辑/etc/ppp/chap-secrets

[plain] view plaincopy
  1. # Secrets for authentication using CHAP  
  2. # client        server  secret                  IP addresses  
  3. test                 *          password                    *  
这个文件与服务器端完全相同。

创建一个/etc/ppp/peers/pptpVPN文件,输入以下内容:

[plain] view plaincopy
  1. pty "pptp $SERVER --nolaunchpppd"  
  2. name test  
  3. remotename pptpVPN  
  4. require-mppe-128  
  5. file /etc/ppp/options.pptp  
  6. ipparam pptpVPN  
在$SERVER的地方替换成自己服务器的ip地址。


客户端/etc/ppp/options.pptp可以不修改,下面的文件仅仅提供参考:

[plain] view plaincopy
  1. lock noauth nobsdcomp nodeflate  

最后在终端输入:

[plain] view plaincopy
  1. pon pptpVPN  

建立连接,或者输入

[plain] view plaincopy
  1. pon pptpVPN debug dump logfd 2 nodetach  

可以在建立连接时得到更多的调试信息。


那么如何确认连接已经建立了呢?

可以通过

[plain] view plaincopy
  1. ifconfig  
查看是否增加了一个ppp0的网卡(如果系统本来就使用3G上网,那就会增加一个ppp连接,比如ppp1,ppp2什么的),当连接建立起来以后,这个ppp连接在客户端和服务器端都是可以同时看到的。

如果要进一步查看数据包是否以加密格式传送,可以使用wireshark这个工具。

在filter文本框内输入:pptp,或者直接ip.src==$CLIENT_IP就可以截获通信的数据包了,具体操作可以参考wireshark的教材。

客户端配置资料:参考资料:

http://pptpclient.sourceforge.net/howto-debian.phtml#configure_by_hand

服务器端配置资料:

http://goday.net/software/170.html

抓包工具wireshark的教材可以参考:

《practical packet analysis using wireshark to solve real-world network problems》

没有更多推荐了,返回首页