PPTP CLIENT

本文简要介绍了PPTP客户端的工作过程,包括启动pppd创建PPP连接,通过pty与gre-2-ppp进程进行通信,数据加密和解密,以及在用户空间如何操作。探讨了优化的可能性,即移至内核空间实现,并指出在最新内核中PPTP的内核实现可能涉及数据加密和解密,但认证机制仍需研究。对于PPTP协议和PPP协议的理解是破解的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近了解了一下pptp client的代码,简单记录一下,以防后面有用。

按照流程,pptp client启动时,会启动pppd去创建新的ppp连接,并生成新的接口,例如ppp1。

 

 


大体的数据流程是,当创建了ppp1,同时可以配置路由,这样需要vpn走的数据就可以走到ppp1接口,ppp1接口对应的处理是pppd,这是应用层deamon,pppd和gre-2-ppp进程通过pty进行通信,gre-2-ppp将数据加密,最后自己创建socket把数据发送到对端,返回的数据,则socket负责收取,解密后,通过pty回到ppp接口,这样就类似于一个正常的ppp数据。

这里我们只是了解到,所有的和pptp相关的都是在用户空间做的,如果需要优化,可以将其搬到内核空间实现。

进一步,具体如何通过pty和ppp来工作,那我想破解之道在于理解ppp协议的工作,把ppp协议工作理解了,pppoe之流也好理解了。

在最近3.0内核中,我看到了pptp在内核中的实现,其实大体应该就是数据发送加密由内核做,数据接收解密也在内核中完成,但是问题是认证如何实现ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值