Skip to content

feat: add newnym circuit rotation and stream isolation#201

Open
UncleJ4ck wants to merge 1 commit into
htrgouvea:developfrom
UncleJ4ck:feat/newnym
Open

feat: add newnym circuit rotation and stream isolation#201
UncleJ4ck wants to merge 1 commit into
htrgouvea:developfrom
UncleJ4ck:feat/newnym

Conversation

@UncleJ4ck

Copy link
Copy Markdown

What was a problem?

There was no way to request a new circuit (a new exit IP) without a full restart, which tears down every rule and restarts tor.

How this PR fixes the problem?

Adds nipe newnym: it talks to tor's control socket, authenticates with the cookie, sends SIGNAL NEWNYM, waits briefly for the new circuit, then prints the new status. restart is unchanged.

Two supporting changes in the same area:

  • nipe.pl now prints the real error in the catch block instead of a generic message, and only requires root for the commands that touch tor or iptables (status and help no longer do).
  • The remaining distro configs get IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort on TransPort (void already had it) so separate destinations do not share a circuit, and void gets the control socket and pid file the others already define.

Check lists (check x in [ ] of list items)

  • Test passed
  • Coding style (indentation, etc)

Additional Comments (if any)

The control AUTHENTICATE line is built by a pure auth_command covered by t/40-newnym.t, and t/00-compile.t loads every module. On the non-Arch distros the control socket already exists; on Arch it is added by the lifecycle PR. Verified live in an Arch container: after nipe newnym the exit IP changes (45.66.35.35 to 185.220.101.26 in the test run).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant