summaryrefslogtreecommitdiffstats
path: root/sshuttle
AgeCommit message (Collapse)Author
2020-08-15allow Mux() flush/fill to work with python < 3.5Dan Streetman
Fixes: #503
2020-08-13Merge pull request #506 from sshuttle/test_parse_hostportBrian May
Fix parse_hostport to always return string for host
2020-08-13Fix parse_hostport to always return string for hosttest_parse_hostportBrian May
This fixes #488 and provides an alternative solution for #489.
2020-08-10fix: workaroundJoshua Li
2020-08-10Revert "fix: require -r/--remote"Joshua Li
This reverts commit 5debf1f11a51ff545b8eef034dc5d7429aa9b67c.
2020-08-10fix: require -r/--remoteJoshua Li
2020-07-16Increase IP4 ttl to 63 hops instead of 42Erik Selin
2020-06-27Add missing importbrianmay-patch-1Brian May
Fixes #474.
2020-06-17leave use of default port to ssh commandTony Kasparick
to prevent overwriting ports configured in ~/.ssh/config if no port is specified, don't set the port explicitly to 22
2020-06-10remove outdated commentJoshua Li
2020-06-11ref: replace usage of deprecated imp (#449)josh
* Use types instead of imp.new_module. I can follow up with https://docs.python.org/3/library/importlib.html#importlib.util.module_from_spec if need be. * use source loader from importlib * Revert "use source loader from importlib" This reverts commit 1f255704f7bf618fb7e0432e1fccef6ee22364d4. * use inspect.getsource, but alas * placate linter * use find_spec to resolve a module spec to a file path * better function naming * remove outdated comment
2020-06-10fix connection with @ sign in usernameOleksii Mykhailov
2020-06-03shutil.which is 3.3+Joshua Li
2020-06-03remove ImportError based branchingJoshua Li
2020-06-03reduceJoshua Li
2020-06-03remove version_info based branchingJoshua Li
2020-05-29Fix Python 3.8 file operationsBrian May
Under Python 3.8 we can not wrap a File in a Sock. Note this currently requires Python >= 3.5
2020-05-22Bump flake8 from 3.6.0 to 3.8.1dependabot-preview[bot]
Bumps [flake8](https://gitlab.com/pycqa/flake8) from 3.6.0 to 3.8.1. - [Release notes](https://gitlab.com/pycqa/flake8/tags) - [Commits](https://gitlab.com/pycqa/flake8/compare/3.6.0...3.8.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-21Create github workflowBrian May
2020-05-10remove debug message for getpeername failureMark Heiges
2020-05-10fix crash triggered by port scans closing socketMark Heiges
2020-04-25Fix parsing of hostnames to allow ssh aliases defined in ssh configs) (#418)tobigrimm
* Fix parsing of hostnames to allow ssh aliases defined in ssh configs) * nicer formatting, pep8 applied * Properly parse IPv6 addresses with port specification * Now also handles hostnames with port specified and IPv6 addresses without port properly * Updated parameter description for the remotehost specification * Make the urlparse import backwards compatible to python2 Co-authored-by: Tobi <tobi-git@grimm.gr>
2020-03-28# Fix 410 Issue Correcte syntax write for connect server (#411)vBlackOut
2020-03-24Add password in prompt cmd (#401)vBlackOut
* Add auto password prompt Add auto password with sshpass use user:password@host or user:password:port@host * Update ssh.py * Fix for IPv4 only * Delete print sorry bad commit * ipv4 fix * Fix IPv4 args * Fix for ipv6 * Fix ipv6 no password * Add function parse_hostport * Fix minor bug detect port * Fix minor bug password detect * Clear Code * bad write "=" replace with "==" * Rewrite code for more understand logical and fix minor bug * add default define port * delete old variable unused * replace "==" per "is" try fix code reviews * reback * try define password with len * Fix consistence variable password PR * simplify function split ipv4 or ipv6 * clear code
2020-03-24Arrange systemd notification to clarify the meaningrjharmon
* this spot in the lifecycle is precisely when we know that the remote server is running AND that the local firewall-control daemon is started.
2020-03-24Run all systemd notifications from main processrjharmon
2020-03-24Trap UnicodeError to handle cases where hostnames returned by DNS are invalid.Chris Lawrence
2020-02-07Simplify nftables based methodJulian Wollrath
2020-02-04Fixed, removed unused importsHaw Loeung
2020-02-04Added nft_chain_exists() and fixed nft to use thatHaw Loeung
2020-02-04Handle when default chains already exists (#392)Haw Loeung
2019-12-13Auto sudoers file (#269)William Mantly
* added sudoers options to command line arguments * added sudoers options to command line arguments * template for sudoers file * Added option for GUI sudo * added support for GUI sudo * script for auto adding sudo file * sudoers auto add works and validates * small change * Clean up for CI * removed code that belongs in another PR * added path for package bins * added sudoers bin * added sudoers-add to setup file * fixed issue with sudoers bash script * auto sudoers now works * added --sudoers-no-modify option * bin now works with ./run * removed debug print * Updated sudoers-add script * Fixed error passing sudoers config to script * more dynamic building of sudoers file * added option to specify sudoers.d file name * fixed indent issue * fixed indent issue * indent issue * clean up * formating * docs * fix for flags * Update usage.rst * removed shell=true * cleared CI errors * cleared CI errors * removed random * cleared linter issue * cleared linter issue * cleared linter issue * updated sudoers-add script * safer temp file * moved bin directory * moved bin directory * removed print * fixed spacing issue * sudoers commands must only containe upper case latters
2019-11-09Make hostwatch locale-independent (#379)Ben Wiederhake
* Make hostwatch locale-independent See #377: hostwatch used to call netstat and parse the result, without setting the locale. The problem is converting the binary output to a unicode string, as the locale may be utf-8, latin-1, or literally anything. Setting the locale to C avoids this issue, as netstat's source strings to not use non-ASCII characters. * Break line, check all other invocations
2019-11-08Add option for latency control buffer sizeJoseph Barker
This commit resolves #297, allowing the buffers used in the latency control to be changed with a command line option ‘--latency-buffer-size’. We do this by changing a module variable in ssnet.py (similar to the MAX_CHANNEL variable) which seems to be the simplest code change without extensive hacking. Documentation is also updated.
2019-10-27Fix broken string substitution from a765aa32Joseph Barker
The changes in a765aa32 removed a more complex pieced of code for parsing which sudo command to use. The %(eb)s no longer refers to any variable and is directly printed to the command line. %(eb)s is now replaced with ‘sudo’.
2019-10-13Add tproxy udp port mark filter that was missed in #144, fixes #367.Norman Rasmussen
2019-09-22Fix capturing of local DNS serversNick Sokolov
Regression was introduced in #337 that is skipping all local traffic, including DNS. This change makes UDP port 53 (DNS) LOCAL traffic to be treated as special case. Fixes #357
2019-09-22Fix crashing on ECONNABORTEDNick Sokolov
In certain cases socket.connect fails with ECONNABORTED, which is treated as "unknown" error causing sshuttle to crash. Fixes #356
2019-09-22The size of pf_rule grew in OpenBSD 6.4Anthony Cornehl
2019-09-22Use prompt for sudo, not needed for doasAnthony Cornehl
2019-06-08Fix tests for existing PR-312 (#337)Daniel Jeffery
* use addrtype match to return the LOCAL trafik * Add assertion for the new LOCAL firewall rule added in PR 312. * Fix linter complaints
2019-02-14Hyphen in hostname fixThomas Bouve
2019-02-14assembler import fix (#319)Thomas Bouve
* assembler import fix. * Added noqa to import statements.
2019-02-11Fix/pep8 (#277)Bastian Venthur
* re-organized imports according to pep8 * fixed all remaining pep8 issues * moved common config into setup.cfg, additionally test `tests` * removed --select=X -- the errors selected where by default not in flake8's --ignore list so effectively had no effect * update .travis.yml to reflect changes in tox.ini * make travis just use tox in order to avoid code duplaction * replace py.test with pytest * fixed .travis.yml * try different pypy toxenv * hopefully fixed testenv for pypy * added pypy basepython, removed unused python2.6 * install dev package before testing (fixes missing coverage) * fixed empty exception pass blocks with noqa * Added dummy log message on empty try-except-pass blocks to make dodacy happy :( * Replaced Exception with BaseException
2019-01-28auto-nets: retrieve routes only if using auto-netsVasil Kolev
There's a known issue that makes sshuttle crash if there are too many routes on the remote host (that don't fit in 64KB). This patch requests the routes only if auto-nets is specified on the command line.
2019-01-23Fix potential deadlock condition in nft_get_handleAlex Tomlins
This was susceptible to the same deadlock issue that ipt_chain_exists had and was fixed in d43db80 where if the command returned a significant amount of output, it wouldn't all be read in, resulting in the subprocess hanging waiting for the output to be read.
2019-01-23Use subprocess.check_output instead of runAlex Tomlins
subprocess.run only exists for python3, and this needs to also support python 2.7
2018-12-09Fix deadlock with iptables with large rulesetAlex Tomlins
When running sshuttle with a large list of routes it's failing to clean them up at exit. It returns the following: $ sshuttle -r user@host.example.com -s /tmp/aws-cidrs.txt user@host.example.com's password: client: Connected. ^CAnother app is currently holding the xtables lock; still -9s 0us time ahead to have a chance to grab the lock... Another app is currently holding the xtables lock; still -19s 0us time ahead to have a chance to grab the lock... Another app is currently holding the xtables lock; still -29s 0us time ahead to have a chance to grab the lock... This continues indefinitely. Looking in ps reveals that there are 2 iptables processes running. Killing -9 the first one, allows sshuttle to continue and clean up successfully. The problem lies with the use of Popen here. The function currently returns as soon as it finds a match without consuming everything from stdout. This means that if there's more output from iptables than will fit in the buffer it doesn't exit, and therefore doesn't release the kernel xtables lock.
2018-11-03Changes pf exclusion rules precedenceJoão Vieira
Before this change, in pf, exclusions used a pass out quick which gave them higher precedence than any other rule independent of subnet width. As reported in #265 this causes exclusion from one instance of sshuttle to also take effect on other instances because quick aborts the evaluation of rules across all anchors. This commit changes the precedence of rules so quick can now be dropped. The new order is defined by the following rule, from subnet_weight: "We need to go from smaller, more specific, port ranges, to larger, less-specific, port ranges. At each level, we order by subnet width, from most-specific subnets (largest swidth) to least-specific. On ties, excludes come first."
2018-11-01Close stdin, stdout, and stderr when using syslog or forking to daemon (#283)Brian May
* Close stdin, stdout, and stderr when using syslog or forking to daemon Fixes #139 * Ensure we close devnull after use