Rename iptables->firewall.

Since we "almost" support ipfw on MacOS (which I guess might mean FreeBSD
too), the name should be a bit more generic.
This commit is contained in:
Avery Pennarun 2010-05-04 22:05:49 -04:00
parent 096bbcc576
commit ba19d9c72d
3 changed files with 13 additions and 13 deletions

View File

@ -19,14 +19,14 @@ def original_dst(sock):
raise raise
class IPTables: class FirewallClient:
def __init__(self, port, subnets): def __init__(self, port, subnets):
self.port = port self.port = port
self.subnets = subnets self.subnets = subnets
subnets_str = ['%s/%d' % (ip,width) for ip,width in subnets] subnets_str = ['%s/%d' % (ip,width) for ip,width in subnets]
argvbase = ([sys.argv[0]] + argvbase = ([sys.argv[0]] +
['-v'] * (helpers.verbose or 0) + ['-v'] * (helpers.verbose or 0) +
['--iptables', str(port)] + subnets_str) ['--firewall', str(port)] + subnets_str)
argv_tries = [ argv_tries = [
['sudo'] + argvbase, ['sudo'] + argvbase,
['su', '-c', ' '.join(argvbase)], ['su', '-c', ' '.join(argvbase)],
@ -53,7 +53,7 @@ class IPTables:
s1.close() s1.close()
self.pfile = s2.makefile('wb+') self.pfile = s2.makefile('wb+')
if e: if e:
log('Spawning iptables: %r\n' % self.argv) log('Spawning firewall manager: %r\n' % self.argv)
raise Fatal(e) raise Fatal(e)
line = self.pfile.readline() line = self.pfile.readline()
self.check() self.check()
@ -80,7 +80,7 @@ class IPTables:
raise Fatal('cleanup: %r returned %d' % (self.argv, rv)) raise Fatal('cleanup: %r returned %d' % (self.argv, rv))
def _main(listener, ipt, use_server, remotename): def _main(listener, fw, use_server, remotename):
handlers = [] handlers = []
if use_server: if use_server:
if helpers.verbose >= 1: if helpers.verbose >= 1:
@ -104,7 +104,7 @@ def _main(listener, ipt, use_server, remotename):
# we definitely want to do this *after* starting ssh, or we might end # we definitely want to do this *after* starting ssh, or we might end
# up intercepting the ssh connection! # up intercepting the ssh connection!
ipt.start() fw.start()
def onaccept(): def onaccept():
sock,srcip = listener.accept() sock,srcip = listener.accept()
@ -176,9 +176,9 @@ def main(listenip, use_server, remotename, subnets):
listenip = listener.getsockname() listenip = listener.getsockname()
debug1('Listening on %r.\n' % (listenip,)) debug1('Listening on %r.\n' % (listenip,))
ipt = IPTables(listenip[1], subnets) fw = FirewallClient(listenip[1], subnets)
try: try:
return _main(listener, ipt, use_server, remotename) return _main(listener, fw, use_server, remotename)
finally: finally:
ipt.done() fw.done()

10
main.py
View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
import sys, os, re import sys, os, re
import helpers, options, client, server, iptables import helpers, options, client, server, firewall
from helpers import * from helpers import *
@ -46,7 +46,7 @@ def parse_ipport(s):
optspec = """ optspec = """
sshuttle [-l [ip:]port] [-r [username@]sshserver[:port]] <subnets...> sshuttle [-l [ip:]port] [-r [username@]sshserver[:port]] <subnets...>
sshuttle --iptables <port> <subnets...> sshuttle --firewall <port> <subnets...>
sshuttle --server sshuttle --server
-- --
l,listen= transproxy to this ip address and port number [default=0] l,listen= transproxy to this ip address and port number [default=0]
@ -54,7 +54,7 @@ r,remote= ssh hostname (and optional username) of remote sshuttle server
v,verbose increase debug message verbosity v,verbose increase debug message verbosity
noserver don't use a separate server process (mostly for debugging) noserver don't use a separate server process (mostly for debugging)
server [internal use only] server [internal use only]
iptables [internal use only] firewall [internal use only]
""" """
o = options.Options('sshuttle', optspec) o = options.Options('sshuttle', optspec)
(opt, flags, extra) = o.parse(sys.argv[1:]) (opt, flags, extra) = o.parse(sys.argv[1:])
@ -64,10 +64,10 @@ helpers.verbose = opt.verbose
try: try:
if opt.server: if opt.server:
sys.exit(server.main()) sys.exit(server.main())
elif opt.iptables: elif opt.firewall:
if len(extra) < 1: if len(extra) < 1:
o.fatal('at least one argument expected') o.fatal('at least one argument expected')
sys.exit(iptables.main(int(extra[0]), sys.exit(firewall.main(int(extra[0]),
parse_subnets(extra[1:]))) parse_subnets(extra[1:])))
else: else:
if len(extra) < 1: if len(extra) < 1: