-
Notifications
You must be signed in to change notification settings - Fork 193
feat(start-wrt): automatic port forwarding (PCP + UPnP IGD server) #3634
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
Open
Dominion5254
wants to merge
14
commits into
master
Choose a base branch
from
wrt/port-control
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 12 commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
e005336
feat(start-wrt): automatic port forwarding (PCP + UPnP IGD server)
Dominion5254 6431dfc
fix(start-wrt): close the gaps an audit found in automatic port forwa…
Dominion5254 9a66892
docs(start-tunnel): file the UPnP changelog entries under the unrelea…
Dominion5254 2ae70e1
fix(start-wrt): fold the auto-forward permission into the device sett…
Dominion5254 d15622c
fix(start-core): serve a UPnP IGD that third-party clients will actua…
Dominion5254 d7acc82
fix(start-wrt): reload the firewall instead of restarting it, and nam…
Dominion5254 eff4dd9
fix(start-wrt): keep pages fully visible on small screens; align the …
Dominion5254 ee72b00
feat(start-wrt): confirm before publishing a port the router answers …
Dominion5254 b7d3a86
chore: minor fixes
waterplea 55f2ac8
fix(start-wrt): reject cross-segment source-spoofed PCP requests
Dominion5254 fe8a42b
refactor(start-wrt): inline the router-port confirm dialog into its o…
Dominion5254 97e7d81
chore(start-wrt): taplo-format ctrl Cargo.toml
Dominion5254 722fc7b
fix(start-core): stop web pages from driving the UPnP IGD endpoints
Dominion5254 d34ec39
Merge branch 'master' into wrt/port-control
Dominion5254 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't see why this is necessary. GetExternalIPAddress should work for whatever WAN the client's profile has access to.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was meant to close a gap against DNS rebinding (VPN/Tor deanonymization) on start-wrt in the shared code. This had no security value in start-tunnel because the WAN IP isn't a secret from the WG peer dialing it; this is also functionally free on start-tunnel as a client only reaches this after it passed the same gate at AddPortMapping.
However I did realize this left an opening on start-wrt for a device that had opted in to automatic port forwarding to the DNS rebinding. I added some additional hardening on this point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not really a secret from start-wrt either? If the device can access the wan, it can figure out its wan ip. This just makes it easier and more reliable.