summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-03-24systemd integration doc adjustmentrjharmon
* the default NotifyAccess (=main) works now, no need to suggest =all
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-09Fix formatting error in CHANGES.rstBrian May
2020-02-09Fix various errors in documentationBrian May
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-13Link Directly to TCP Over TCP ExplanationNathan Aclander
See Below was confusing because it linked to the entire documentation section. This provides a direct link to the section explaining why TCP over TCP is a bad idea.
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-24README: add FreeBSDLi-Wen Hsu
2019-10-13Add tproxy udp port mark filter that was missed in #144, fixes #367.Norman Rasmussen
2019-10-03readme: add Nixunl89
2019-10-03Lock version of attrsBrian May
Latest version of attrs breaks pytest, see: https://stackoverflow.com/questions/58189683/typeerror-attrib-got-an-unexpected-keyword-argument-convert
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-22docs: openwrtunl89
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-07-25Fix Arch linux installation instructionscptpcrd
`pacman -Sy` does a partial upgrade, which is specifically documented as being unsupported.
2019-06-21update readme to correct flag for arch linux.José Augusto
Correct the install flag for arch linux installation example.
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-06-08Add install instructions for FedoraJeremy Eder
2019-04-04Add install instructions for Arch LinuxElijah Lynn
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-28Release 0.78.5v0.78.5Brian May
2019-01-28Update CHANGES.rst for new releaseBrian May
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-29docs: document --ns-hosts --to-ns and update --dnsAndré Draszik
--ns-hosts is available since commit d2ee34d71c0e ("dns: Added --ns-hosts to tunnel only some requests") (released as v0.72), but was never documented. --to-ns is available since commit be559fc78b88 ("Fix case where there is no --dns.") after several bugfixes, released as v0.78.4, but was never documented.
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-12-03Fix typo in docsDavid Landry
2018-11-29Document --version optionTodor Gaidarov
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
2018-10-23Fixes support for OpenBSD (6.1+) (#282)João Vieira
* Fixes support for OpenBSD (6.1+) As reported in #219, new versions of OpenBSD ship with a different pfioc_rule struct. This commit adjusts the offset to match the new struct. * Fixes tests for OpenBSD 6.1+
2018-10-17Added coverage report to testsBastian Venthur
2018-10-17replace path /dev/null by os.devnullAbbalYouness
2018-10-17updated bandit configBastian Venthur
2018-10-17updated pathBastian Venthur
2018-10-17Moved sshuttle/tests into tests to.Bastian Venthur
Having the tests in a `tests` directory in root is the most common approach. Also moved pytest's conftest.py into `tests` making the fixture available for client and server tests.
2018-10-07Fix missing string formatting argumentBrian May