pppd cannot be configured to enable mppe but not require it

Bug #88986 reported by Someone
22
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ppp (Ubuntu)
Expired
Undecided
Unassigned
Nominated for Feisty by Someone

Bug Description

Binary package hint: ppp

I am using PoPToP PPTP VPN server on Kubuntu 6.06. There is a problem configuring it. There are no a way to enable mppe (Microsoft Point-to-Point Encryption) but requiring it. As a result serving client with or without mppe at the same time is not possible. If mppe is enabled by require-mppe-128 all clients must negotiate and support it otherwise the server disconnects. If require-mppe-128 option is not present on the command line or in the option file it cannot be negotiated as mppe is disabled by default (and by the way nomppe option does not make any sense in such a case) and clients requiresting mppe would not connect.

Revision history for this message
Daniel T Chen (crimsun) wrote :

Is this symptom still reproducible in 8.10 alpha?

Changed in ppp:
status: New → Incomplete
Revision history for this message
cygnus (cygnus) wrote :

I can confirm that this problem is still existent in 8.10 release.

Trying to connect with a non-mppe client results in:

Nov 4 16:55:36 vpn-test pppd[24480]: sent [LCP TermReq id=0x2 "MPPE required but peer negotiation failed"]

It is impossible to configure mppe to be optional.

Revision history for this message
cygnus (cygnus) wrote :

cite from README.MPPE:

if you turn it on, all other compression options
are disabled and MPPE *must* be negotiated successfully in both directions
(CCP is unidirectional) or the link will be disconnected. I think this is
reasonable since, if you want encryption, you want encryption. That is,
I am not convinced that optional encryption is useful.

-----------------------

So this intentionally made by the author. I tried to contact the Original Author, but didn't receive any answers.

I tried to change that behaviour but was only partly successful. Using the patch is is now possible to make MPPE optional, but it will be optional in any case. I couldn't find a really good solution which would add a additional config option. That didn't really work out. I might be able to provide a better patch, but currently that one is sufficient for me, since I only need optional MPPE support and no MPPE required solution.

Revision history for this message
Nikolay Popov (nicolnx) wrote :

I made a patch that add "mppe-optional" option to pppd config
Set both "require-mppe" and "mppe-optional" in pppd config at it works as expected, allowing both encrypted and non-encrypted connections.
Not sure it's clear way to do it, but it works well for me.

Revision history for this message
Halo2 (sa-maillists) wrote :

Hi!

I really liked your solution of the mppe-optional patch.
But I modified it to work with the mppc patch applied source (i.e. ppp-2.4.x-mppe-mppc-1.1.patch and linux-2.6.2x-mppc.patch).
Was nothing special, just adjusting a few line differences and so.
The main reason for that was, that OSX (since a few versions) does not connect to pptpd with mppe if mppe is set as an option, even this works flawlessly on windows clients.
Yes, you read right, the mppc patched version of pppd has mppe set to optionally if not requested otherwise in the options file.. .
So, with your patch I can use mppe required in the options file, but it's just optionally, and also behaves right for OSX.

The only Problem is, I can't get it to work with MPPC only (so MPPC withput MPPE). Which works when I don't use the mppe required option, but then I can't use it on OSX. The connection just gets dropped without an error message in the case of an MPPC but not MPPE requesting client.

As I'm not good enough at the debugging, possibly you are able to find a solution for that problem(s)?

Also I noticed, that both version (mppc enabled code or not, but mppc has to be disabled on the windows client) give an error when connection with mppe set as optionally instead of requested or disabled.

So it seems that the code really needs some corrections.

Thank you

Alex

Revision history for this message
Halo2 (sa-maillists) wrote :

Wow, great response here.. .

I've made some additions to the code of this dirty hack, so that it also works with the mppc enabled source.

Hopefully someone will renew ccp.c sometimes.. .

Alex

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for ppp (Ubuntu) because there has been no activity for 60 days.]

Changed in ppp (Ubuntu):
status: Incomplete → Expired
Revision history for this message
cygnus (cygnus) wrote :

I updated this patch a litte bit more. I had some issues with some other clients for example if you have a client with disabled mppe but enabled deflate compression. The attached patch should fix this.

Revision history for this message
Belyaev Nikolay (werru82) wrote :

this patch need to be used for vpn clients embeded in all android phones. Because android dosen't support MPPE (stupid)
please add this feature to upstream

Revision history for this message
Denis (link011) wrote :

Thanks everyone for patch.
Is there any chance it will be included in upstream ?
I bet a lot of people need this, just nor everyone post something to launchpad...

Revision history for this message
Dmitry Balashov (fixed77) wrote :

still need it

Revision history for this message
Neustradamus (neustradamus) wrote :

It is possible to create a PR on GitHub?
Do not forget: Description + Sign-off

Linked to:
- https://github.com/paulusmack/ppp/issues/57

Revision history for this message
Neustradamus (neustradamus) wrote :

Hello all,

I recall you:

It is possible to create a PR on GitHub?
Do not forget: Description + Sign-off

Linked to:
- https://github.com/paulusmack/ppp/issues/57

Thanks in advance.

To post a comment you must log in.