-
-
Notifications
You must be signed in to change notification settings - Fork 514
fix(protonvpn): authenticated servers data updating #2878
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Does this require any new settings? It doesn't look like it but it doesn't seem to work, at least for me.
|
|
This is unfinished and I'm waiting for an answer at: #2864 (comment) Actually if you want to help, maybe you could try on your side (I don't have a protonvpn account), for example with curl, this is what's done currently in the Go code: Now the json body can also contain a This returns you an Obviously something isn't right in one or the other or both of these commands. If you can crack this, I can near-immediately fix Gluetun. |
|
I tried to figure out the auth flow with You can find the repo for the container here, it's worked to generate the server list files for me. If you want to try and inspect the requests, my work for that was in the instrumented branch, although it's all just stuff GPT5 wrote. I hope this is helpful for someone else who has more experience reversing apis. |
|
So far, the only way I have found if you want to get all the servers including premium is to go on https://account.proton.me/vpn, log-in, get the value of the
It's valid for a year. Then you can query replacing xxxx and yyy with the appropriate value, with that you get a cookie named But I would really not like to have to do this because I'm pretty sure that if for any reason this token leaks, then whoever gets it can control my account. |
|
I worked like 12 hours on it the last 2 days with just failures, I sent proton support an email at the end of the day, because their authentication system is just plain odd 🤷 The even have https://github.com/ProtonMail/go-proton-api which I twisted in all ways possible without succeeding once... 😢 |
24cdfd6 to
557cc36
Compare
|
Ok I finally figured it out @kubrickfr - your curl commands definitely helped me out a lot get started so thanks for that 💪 ! |
|
Hi @qdm12, Thanks for doing this, I'll try it out! FYI I had also reached out to their support, as a paying customer. And they politely told me to F off.
So yes, I also got mad at them. I also abandoned this track because I think it's a security issue to have my unscoped credentials in gluetun configuration: this username / password can be used to access my emails, drive documents, etc. So I actually made a fork that loads the logicals.json from a local file. My last response to them was:
To which they replied:
So here we are. |
I see your point, although code is open source so risk should be limited, but yes still possible. And not everyone has the time to check the code on every commit 😄 !
Laughing with you in support hell! 😈 |
@qdm12 I didn't mean it this way, I don't distrust gluetun, all I'm saying is, I'm not happy leaving my (unencrypted) credentials on my server.
good suggestion |
|
Oh no worry, I get you as well! Definitely a risk either way (on the server, or in Gluetun or both) - plus right now otp support isn't implemented (and would be cumbersome to use in a container periodically anyway), so disabling otp temporarily does suck too. |
1abbc1e to
5cef053
Compare
fb72887 to
d083367
Compare
d1e7479 to
2447696
Compare
Yeah silly me, the tag was incorrect. Now im facing a different issue, my proton username is my email, this leads to an auth error. « Username is respons does not match request username » Edit: Actually the username is the part before the @ of my email |
No problem, pushed a change to auto-trim the domain in case it's set, to make it silly-proof 👍 I love silly reports in a PR ❤️ rather than on the master branch 😅 |
d7d58d4 to
6d5ce23
Compare
Thanks for your work. I've tested and it's works for me |
- `-proton-username` flag for cli update - `-proton-password` flag for cli update - `UPDATER_PROTONVPN_USERNAME` option for periodic updates - `UPDATER_PROTONVPN_PASSWORD` option for periodic updates
- `-proton-username` flag for cli update - `-proton-password` flag for cli update - `UPDATER_PROTONVPN_USERNAME` option for periodic updates - `UPDATER_PROTONVPN_PASSWORD` option for periodic updates
|
I've been trying to update for an hour now with this command, and am about to take a hostage. (As they also toss captcha and rate limits in after a few requests) My "username" at Proton is my email address. Yet using that via the follwing from a clean host (not rate limted or catpcha'd yet):
I get... Any guesses? I've tried with my "display name" for username just for fun but get the expected "Incorrect login credentials." I assume others are using their email usernames. Edit: Just to be clear, my Proton username is my work email address. It is not a @protonmail.com or @proton.me address. (As I see some code related to stripping Proton domains from usernames). I just have a VPN Plus account. |
|
Linking here for visibility #2985 You could try enclosing your email with single quotes. Since you can create a Proton account any time (maybe not everyone knows this) I have just created an account only used for VPN - no 'external' email required (e.g. I could log into the Protonmail inbox for that account). Obviously this does not help you if you have an account with paid time on already. You might be best off posting in the discussions, or creating a new issue. You will get more visibility there. Best of luck! |
Ah! I wasn't aware of that. So both using On a similar note, my free account does work but an older (~3 years old) paid account gives me: Ugh I am hating Proton more almost every day.... Please create an issue if it doesn't work, since I'm not notified on this PR anymore so I likely won't see it. |
Yep, I've tried most everything. Quoting, removing special chars, etc. It really comes down to that username check on return. The free VPN account is confusing to me though, as it requests an email address to use for the account which becomes the username. That seems like the same situation to me (username = non Proton email address). I did try it anyway, but got the same results as my paid account.
That's correct. I've tried [email protected], username, and "display name" just for fun. It really feels like I may be getting authenticated, but the return value for username is empty/missing when using [email protected] (which is my username per their UI and being able to login :) )
Lol.. yea, try it a couple more times and you'll feel their rate limits also with a taunting message about how limits are much higher when logged in 😅 |
|
Hey, has this become mandatory for any ProtonVPN based install, even with WireGuard? Having the password in clear or in a docker secret is a bit of a downgrade in security, isn't it? Also what about accounts with 2FA enabled? |
having created only a vpn acccount, My non proton email i signed up with was my username for login, until i added protonmail, then my proton email was [email protected] and my username for logging in and for the updater became myprotonaddy, and the updater worked. |
-proton-usernameflag for cli update-proton-passwordflag for cli updateUPDATER_PROTONVPN_USERNAMEoption for periodic updatesUPDATER_PROTONVPN_PASSWORDoption for periodic updatesFix #2820
Clone of #2789 but with a branch within the repository, so other forks can target it (#2864)