1. 30 Jan, 2018 2 commits
    • vieira's avatar
      d9d61e6a
    • vieira's avatar
      Load options from a file · 179bb107
      vieira authored
      This small change will allow a file path to be passed as argument from which
      the command line options will be loaded.
      
      Extra command line options can be passed (in addition to those already in the
      file) and existing ones can be overriden.
      
      Example sshuttle.conf file:
      192.168.0.0/16
      --remote
      user@example.com
      
      Example sshuttle call:
      sshuttle @/path/to/sshuttle.conf
      
      Example sshuttle call with verbose flags added:
      sshuttle @/path/to/sshuttle.conf -vvv
      
      Example sshuttle call overriding the remote server:
      sshuttle @/path/to/sshuttle.conf -r otheruser@test.example.com
      179bb107
  2. 01 Jan, 2018 3 commits
  3. 16 Nov, 2017 4 commits
  4. 13 Nov, 2017 2 commits
  5. 11 Nov, 2017 1 commit
    • Tony's avatar
      Properly decode seed hosts argument in server.py · 9f238ebc
      Tony authored
      When I starting sshuttle with option `--seed-hosts example.com`, got the following error:
      
      ```
      hostwatch: Starting hostwatch with Python version 3.5.2
      hostwatch: Traceback (most recent call last):
      --->   File "sshuttle.server", line 144, in start_hostwatch
      --->   File "sshuttle.hostwatch", line 272, in hw_main
      --->   File "sshuttle.hostwatch", line 234, in check_host
      --->   File "sshuttle.hostwatch", line 32, in _is_ip
      --->   File "/usr/lib/python3.5/re.py", line 163, in match
      --->     return _compile(pattern, flags).match(string)
      ---> TypeError: cannot use a string pattern on a bytes-like object
      Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "assembler.py", line 37, in <module>
        File "sshuttle.server", line 393, in main
        File "sshuttle.ssnet", line 596, in runonce
        File "sshuttle.server", line 324, in hostwatch_ready
      sshuttle.helpers.Fatal: hostwatch process died
      ```
      
      It seems like the list of hosts is not properly decoded on the server side. This is an attempt to fix that.
      9f238ebc
  6. 09 Nov, 2017 2 commits
    • vieira's avatar
      Using exec in the assembler is okay · 9b315746
      vieira authored
      9b315746
    • vieira's avatar
      Initial configuration for Bandit and Prospector · 6a488b3d
      vieira authored
      With this configuration it should be feasible to achieve a perfect score
      without contortion.
      
      Rules skiped for Bandit:
      B101: assert_used
      B104: hardcoded_bind_all_interfaces
      B404: import_subprocess
      B603: subprocess_without_shell_equals_true
      B606: start_process_with_no_shell
      B607: start_process_with_partial_path
      
      Rules skiped for pylint:
      - too-many-statements
      - too-many-locals
      - too-many-function-args
      - too-many-arguments
      - too-many-branches
      - bare-except
      - protected-access
      - no-else-return
      6a488b3d
  7. 08 Nov, 2017 3 commits
  8. 07 Nov, 2017 4 commits
  9. 23 Oct, 2017 3 commits
    • vieira's avatar
      turn off debugging · 8add0086
      vieira authored
      8add0086
    • vieira's avatar
      nested if should be and · 94ea0a3b
      vieira authored
      94ea0a3b
    • vieira's avatar
      Use versions of python3 greater than 3.5 when available (e.g. 3.6) · 9b7ce281
      vieira authored
      Some Linux distros, like Alpine, Arch, etc and some BSDs, like FreeBSD, are
      now shipping with python3.6 as the default python3. Both the client and the
      server are failing to run in this distros, because we are specifically looking
      for python3.5.
      
      These changes make the run shell script use python3 if the version is greater
      than 3.5, otherwise falling back as usual.
      
      On the server any version of python3 will do, use it before falling back to
      python, as the server code can run with any version of python3.
      9b7ce281
  10. 21 Oct, 2017 2 commits
    • vieira's avatar
    • vieira's avatar
      Load pf kernel module when enabling pf · 3635cc17
      vieira authored
      When the pf module is not loaded our calls to pfctl will fail with
      unhelpful messages.
      This change spares the user the pain of decrypting those messages and manually
      enabling pf. It also keeps track if pf was loaded by sshuttle and unloads on
      exit if that was the case.
      
      Also fixed the case where both ipv4 and ipv6 anchors were added by sshuttle
      but the first call of disable would disable pf before the second call had the
      chance of cleaning it's anchor.
      3635cc17
  11. 19 Oct, 2017 2 commits
  12. 17 Oct, 2017 1 commit
    • vieira's avatar
      Make hostwatch find both fqdn and hostname · 29cd75b6
      vieira authored
      Currently hostwatch only adds hostnames even when FQDNs are available.
      This commit changes found_host so that when the name is a FQDN, both the FQDN
      and an hostname are added, e.g., given api.foo.com both api and api.foo.com
      will be added.
      
      Fixes #151 if merged.
      
      N.B.: I rarely use hostwatch, it would probably be a good idea to get feedback
      from people who actually use it before merging. Not too sure about this...
      29cd75b6
  13. 15 Oct, 2017 1 commit
    • vieira's avatar
      Use getaddrinfo to obtain a correct sockaddr · 4c50be0b
      vieira authored
      While with AF_INET sockaddr is a 2-tuple composed by (address, port),
      with AF_INET6 it is a 4-tuple with (address, port, flow info, scope id).
      
      We were always passing a 2-tuple to socket.connect which would fail whenever
      the address was, for instance, a link-local IPv6 address that needs a scope id.
      
      With this change we now use getaddrinfo to correctly compute the full tuple.
      
      Fixes #156.
      4c50be0b
  14. 17 Sep, 2017 1 commit
  15. 03 Aug, 2017 1 commit
  16. 29 Jul, 2017 1 commit
    • vieira's avatar
      Avoid port forwarding from loopback address · 4e8c2b9c
      vieira authored
      When doing port forwarding on lo0 avoid the special case where the
      traffic on lo0 did not came from sshuttle pass out rule but from the lo0
      address itself. Fixes #159.
      4e8c2b9c
  17. 18 Jul, 2017 3 commits
  18. 09 Jul, 2017 4 commits