def copyDataFile(options): dataFileName = utils.getNDTDataFileName(options) dim = options['numberOfDimension'] if not os.path.exists(dataFileName): print 'copyDataFile error:%s is not exists' % dataFileName exit(-1) command = 'cp %s nd_tree_knn/sourceData%d+0.txt' % (dataFileName, dim) utils.executeCommand(command) print 'copyDataFile complete'
def copyQueryFile(options): queryFileName = utils.getNDTQueryFileName(options) print queryFileName if not os.path.exists(queryFileName): print 'copyQueryFile error:%s is not exists' % queryFileName exit(-1) command = 'cp %s mvptree/query.txt' % queryFileName utils.executeCommand(command) print 'copyQueryFile complete'
def copyQueryFile(options): queryFileName = utils.getCDSQueryFileName(options) print queryFileName if not os.path.exists(queryFileName): print 'copyQueryFile error:%s is not exists'%queryFileName exit(-1) command = 'cp %s kd_tree/query.txt'%queryFileName utils.executeCommand(command) print 'copyQueryFile complete'
def copyDataFile(options): dataFileName = utils.getNDTDataFileName(options) dim = options['numberOfDimension'] if not os.path.exists(dataFileName): print 'copyDataFile error:%s is not exists'%dataFileName exit(-1) command = 'cp %s nd_tree/sourceData%d+0.txt'%(dataFileName,dim) utils.executeCommand(command) print 'copyDataFile complete'
def copyQueryFile(options): queryFileName = utils.getNDTQueryFileName(options) if not os.path.exists(queryFileName): print 'copyQueryFile error:%s is not exists' % queryFileName exit(-1) command = 'cp %s nd_tree_knn/rangequeryAll.txt' % queryFileName utils.executeCommand(command) command = 'cp %s nd_tree_knn/boxqueryAll.txt' % queryFileName utils.executeCommand(command) print 'copyQueryFile complete'
def copyDataFile(options): dataFileName = utils.getCDSDataFileName(options) print dataFileName dim = options['numberOfDimension'] if not os.path.exists(dataFileName): print 'copyDataFile error:%s is not exists'%dataFileName exit(-1) command = 'cp %s kd_tree/data.txt'%dataFileName utils.executeCommand(command) print 'copyDataFile complete'
def copyDataFile(options): dataFileName = utils.getNDTDataFileName(options) print dataFileName dim = options['numberOfDimension'] if not os.path.exists(dataFileName): print 'copyDataFile error:%s is not exists' % dataFileName exit(-1) command = 'cp %s mvptree/data.txt' % dataFileName utils.executeCommand(command) print 'copyDataFile complete'
def copyQueryFile(options): queryFileName = utils.getNDTQueryFileName(options) if not os.path.exists(queryFileName): print 'copyQueryFile error:%s is not exists'%queryFileName exit(-1) command = 'cp %s nd_tree/rangequeryAll.txt'%queryFileName utils.executeCommand(command) command = 'cp %s nd_tree/boxqueryAll.txt'%queryFileName utils.executeCommand(command) print 'copyQueryFile complete'
def generateClusteredData(options): alphabet = list(string.ascii_uppercase) dim = options['numberOfDimension'] size = options['numberOfData'] cardinality = options['numberOfAlphabet'] cluster = int(options['distribution'][1:]) dataFileName = 'data/data_%d_%d_%d_%d.txt'%(size,dim,cluster,cardinality) command = 'perl data/gdp.pl %d %d %d %d %s'%(size,cluster,dim,cardinality,dataFileName) print command utils.executeCommand(command) print dataFileName
def initChains(): utils.displayText('cyan', 'initializing chains...', 0) commandsList = [] ''' commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', 'INPUT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', 'OUTPUT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', 'FORWARD']) ''' commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush']) commandsList.append( ['/usr/bin/sudo', '/sbin/iptables', '--flush', '--table', 'nat']) commandsList.append( ['/usr/bin/sudo', '/sbin/iptables', '--flush', '--table', 'mangle']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--delete-chain']) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--delete-chain', '--table', 'nat' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--delete-chain', '--table', 'mangle' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setNatPostroutingRules(): utils.displayText('cyan', 'setting nat postrouting rules (source NAT)...', 0) commandsList = [] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.aviwestLanIfc, '--jump', 'MASQUERADE']) # allow any kind of traffic to go back from studio to globals.dmngLanIfc if globals.platformType == 'development': commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.dmngLanIfc, '--jump', 'MASQUERADE']) if globals.platformType == 'validation': for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', interfaceName, '--jump', 'MASQUERADE']) for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', interfaceName, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--source', '192.168.56.0/255.255.255.0', '--out-interface', globals.aviwestLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--source', '127.0.0.1/255.255.255.0', '--out-interface', globals.aviwestLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.linuxVmStudioTrafficLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.linuxVmStudioSshLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.windowsVmStudioTrafficLanIfc, '--jump', 'MASQUERADE']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setForwardRules(): utils.displayText('cyan', 'setting forward rules...', 0) commandsList = [] # allow forward traffic for established connections commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'FORWARD', '--match', 'state', '--state', 'RELATED,ESTABLISHED', '--jump', 'ACCEPT' ]) # allow all forward traffic on all interfaces commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'FORWARD', '--jump', 'ACCEPT' ]) # for testing ssh commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'FORWARD', '--in-interface', globals.aviwestLanIfc, '--destination', globals.linuxVmStudioIpAddressForSsh, '--protocol', 'tcp', '--destination-port', '22', '--jump', 'ACCEPT' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def getNetworkInterfaceLinkStatus(networkInterface): utils.displayText( 'red', 'TODO : testing an IP alias with ethtool always report : \'Link detected: yes\'. It cannot be used here.', 0) utils.terminateTest(1) command = ['/usr/bin/sudo', '/sbin/ethtool', networkInterface] commandStdout, commandStderr = utils.executeCommand(command) # get "Link detected:" myRe = re.search('Link detected: yes|no', commandStdout) linkDetected = re.sub('Link detected: ', '', myRe.group()) if linkDetected == 'yes': networkInterfaceStatus = 'up' elif linkDetected == 'no': networkInterfaceStatus = 'down' else: utils.displayText( 'red', '[KO] linkDetected (%s) is neither \'yes\', nor \'no\'' % linkDetected, 0) utils.terminateTest(1) return networkInterfaceStatus
def executeNDT(options): dim = options['numberOfDimension'] size = options['numberOfData'] queryRange = options['queryRange'] numberOfVP = options['numberOfVP'] command = 'cd kd_tree ; ./kdtree -load_file data.txt -orig_dim %d -dim %d -rqfile query.txt -range %d -count %d'%(dim,numberOfVP,queryRange,size) result = utils.executeCommand(command) print result
def executeNDT(options): dim = options['numberOfDimension'] size = options['numberOfData'] knn = options['knn'] numberOfVP = options['numberOfVP'] command = 'cd kd_tree_knn ; ./kdtree -load_file data.txt -orig_dim %d -dim %d -knnfile query.txt -knn %d -count %d' % ( dim, numberOfVP, knn, size) result = utils.executeCommand(command) print result
def setNatOutputRules(): utils.displayText('cyan', 'setting nat output rules rules...', 0) commandsList = [] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'OUTPUT', '--jump', 'ACCEPT']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def executeNDT(options): dim = options['numberOfDimension'] size = options['numberOfData'] queryRange = options['queryRange'] numberOfVP = options['numberOfVP'] command = 'cd kd_tree ; ./kdtree -load_file data.txt -orig_dim %d -dim %d -rqfile query.txt -range %f -count %d' % ( dim, numberOfVP, queryRange, size) result = utils.executeCommand(command) print result
def miniupnpcbinary(internallanport, externallanport): if internallanport != externallanport: log.addWarning(_('UPnPc binary cannot be used since the internal port (%s) is not identical to the external port (%s)') % (internallanport, externallanport)) command = 'upnpc -r $ tcp' try: output = executeCommand(command, replacement=str(externallanport), returnoutput=True) except RuntimeError, e: log.addwarning('Failed to use UPnPc binary: %s' % (str(e),)) return
def setManglePreroutingRules(): utils.displayText('cyan', 'setting mangle prerouting rules...', 0) commandsList = [] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'mangle', '--append', 'PREROUTING', '--jump', 'LOG', '--log-level 7', '--log-prefix', 'MANGLE-PREROUTING: ']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def getNewAppliSvnWc(svnRevision): '''getNewAppliSvnWc ''' # create globals.sourcesDirectory if it does not exist for a fresh checkout if os.path.exists(globals.sourcesDirectory): utils.displayText('cyan', 'deleting directory %s' % globals.sourcesDirectory, 0) shutil.rmtree(globals.sourcesDirectory) os.makedirs(globals.sourcesDirectory) commandsList = [] commandsList.append(['svn', 'checkout', '--revision', svnRevision, svnUrl, globals.sourcesDirectory]) #utils.displayText('cyan', 'updating %s to revision %s' % (globals.sourcesDirectory, svnRevision), 0) #commandsList.append(['svn', 'update', '--revision', svnRevision, globals.sourcesDirectory]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command) utils.displayText('cyan', 'updating external references to revision %s' % svnRevision, 0) commandsList = [] externalReferencesCommandList = ['svn', 'update', '--revision', svnRevision] directoriesList = [] directoriesList.append(globals.sourcesDirectory + '/' + 'common') directoriesList.append(globals.sourcesDirectory + '/' + 'aggreg-sst/aggreg-sst') directoriesList.append(globals.sourcesDirectory + '/' + 'dmng-lib/dmng-lib/ibis-interface/src') directoriesList.append(globals.sourcesDirectory + '/' + 'dmng-lib/dmng-lib/ibis-interface/include') directoriesList.append(globals.sourcesDirectory + '/' + 'dmng-lib/dmng-lib/aacparser/src') directoriesList.append(globals.sourcesDirectory + '/' + 'dmng-lib/dmng-lib/aacparser/include') directoriesList.append(globals.sourcesDirectory + '/' + 'include/xcom.h') directoriesList.append(globals.sourcesDirectory + '/' + 'include/xconfig.h') directoriesList.append(globals.sourcesDirectory + '/' + 'gst-plugins/gst-plugins/xcom') directoriesList.append(globals.sourcesDirectory + '/' + 'gst-plugins/gst-plugins/mp4mux') directoriesList.append(globals.sourcesDirectory + '/' + 'gst-plugins/gst-plugins/awdsp') # append directories to externalReferencesCommandList for index in range(len(directoriesList)): externalReferencesCommandList.append(directoriesList[index]) commandsList.append(externalReferencesCommandList) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setDefaultPolicy(): utils.displayText('cyan', 'setting default policy...', 0) commandsList = [] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--policy', 'INPUT', 'DROP']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--policy', 'OUTPUT', 'DROP']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--policy', 'FORWARD', 'DROP']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def getNetworkInterfaceInformations(networkInterface): ''' if globals.platformType == 'development': networkInterfacesList = testNetworkAliasesList if globals.platformType == 'validation': # alias 'eth1:100' is used, even if globals.platformType is 'validation' networkInterfacesList = testNetworkAliasesList + usbEthAdaptersInterfacesListForDmngEthAdapter + usbEthAdaptersInterfacesListForDmngUsbEthAdapter # check that networkInterface is in networkInterfacesList possibleInterfacesList = [] for index in range(len(networkInterfacesList)): possibleInterfacesList.append(networkInterfacesList[index][0]) if possibleInterfacesList.count(networkInterface) == 0: utils.displayText('red', '[KO] networkInterface (%s) not in possibleInterfacesList (%s)' % (networkInterface, possibleInterfacesList), 0) utils.terminateTest(1) ''' # retrieve informations from /sbin/ifconfig command = ['/usr/bin/sudo', '/sbin/ifconfig', networkInterface] commandStdout, commandStderr = utils.executeCommand(command) # get hardware address (MAC) myRe = re.search( 'HWaddr (?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})', commandStdout) macAddress = re.sub('HWaddr ', '', myRe.group()) # get ipAddress try: myRe = re.search( 'inet addr:(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', commandStdout) ipAddress = re.sub('inet addr:', '', myRe.group()) except: ipAddress = 'not configured' # get networkMask try: myRe = re.search( 'Mask:(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', commandStdout) networkMask = re.sub('Mask:', '', myRe.group()) except: networkMask = 'not configured' # get broadcastAddress try: myRe = re.search( 'Bcast:(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', commandStdout) broadcastAddress = re.sub('Bcast:', '', myRe.group()) except: broadcastAddress = 'not configured' # TODO : get ipv6Address (if needed in the future) return macAddress, ipAddress, networkMask, broadcastAddress
def executeNDT(options): dim = options['numberOfDimension'] size = options['numberOfData'] numberOfVP = options['numberOfVP'] for i in xrange(7): queryRange = i + 1 command = 'cd mvptree ; ./mvptree -load_file data.txt -dim %d -ref_method mvp -rqfile query.txt -range %d -count %d' % ( dim, queryRange, size) print command result = utils.executeCommand(command) print result
def displayRules(): utils.displayText('cyan', 'current rules are the following...', 0) commandsList = [] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--line-numbers', '--list', '--numeric', '--verbose']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--line-numbers', '--list', '--numeric', '--verbose']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command) utils.displayText('normal', 'commandStdout :', 0) utils.displayText('normal', commandStdout, 0)
def setNatPostroutingRules(): utils.displayText('cyan', 'setting nat postrouting rules (source NAT)...', 0) commandsList = [] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.aviwestLanIfc, '--jump', 'MASQUERADE' ]) # allow any kind of traffic to go back from studio to globals.dmngLanIfc if globals.platformType == 'development': commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.dmngLanIfc, '--jump', 'MASQUERADE' ]) if globals.platformType == 'validation': for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', interfaceName, '--jump', 'MASQUERADE' ]) for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', interfaceName, '--jump', 'MASQUERADE' ]) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--source', '192.168.56.0/255.255.255.0', '--out-interface', globals.aviwestLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--source', '127.0.0.1/255.255.255.0', '--out-interface', globals.aviwestLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.linuxVmStudioTrafficLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.linuxVmStudioSshLanIfc, '--jump', 'MASQUERADE']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'POSTROUTING', '--out-interface', globals.windowsVmStudioTrafficLanIfc, '--jump', 'MASQUERADE']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def inGameNotice(c): utils.show("Starting ingame auto notice...") while True: sql = utils.loadConfig(utils.dbFile) enabled = sql["ingame_notice.enabled"] if enabled.lower() == "false": utils.show( "Ingame notice enabled = %s!!! You might want to change ingame_notice.enabled=true to start ingame notice." % enabled) break messages = sql["ingame_notice.messages"] for m in messages.split(messageDelimeter): utils.show("Sending \"%s\" to ps_game..." % m) utils.executeCommand(c % ("/nt " + m)) time.sleep(15) interval = int(sql["ingame_notice.interval"]) utils.show("Waiting for %d second(s) to notice \"%s\"" % (interval, messages)) time.sleep(interval)
def setNatOutputRules(): utils.displayText('cyan', 'setting nat output rules rules...', 0) commandsList = [] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'OUTPUT', '--jump', 'ACCEPT' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setManglePreroutingRules(): utils.displayText('cyan', 'setting mangle prerouting rules...', 0) commandsList = [] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'mangle', '--append', 'PREROUTING', '--jump', 'LOG', '--log-level 7', '--log-prefix', 'MANGLE-PREROUTING: ' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setDefaultPolicy(): utils.displayText('cyan', 'setting default policy...', 0) commandsList = [] commandsList.append( ['/usr/bin/sudo', '/sbin/iptables', '--policy', 'INPUT', 'DROP']) commandsList.append( ['/usr/bin/sudo', '/sbin/iptables', '--policy', 'OUTPUT', 'DROP']) commandsList.append( ['/usr/bin/sudo', '/sbin/iptables', '--policy', 'FORWARD', 'DROP']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def executeNDT(options): dim = options['numberOfDimension'] size = options['numberOfData'] knn = options['knn'] numberOfVP = options['numberOfVP'] ans = 0.0 d = [] # rs = [0.212838/2, 0.249343/2, 0.245334/2, 0.281172/2, 0.301700/2, 0.296108/2] # rsb = [0.01070,0.00806,0.00560,0.00538,0.00448,0.00398] rs = [4.014654/20, 9.830230/20,14.944167/20,22.749706/20,30.443965/20,35.801397/20] rsb = [0.474555/10,1.407575/10,2.077860/10,3.521868/10,4.563981/10,5.814988/10] i = 0.01 dy = 0.01 if int(dim) == 20: i = rs[0] dy = rsb[0] elif int(dim) == 40: i = rs[1] dy = rsb[1] elif int(dim) == 60: i = rs[2] dy = rsb[2] elif int(dim) == 80: i = rs[3] dy = rsb[3] elif int(dim) == 100: i = rs[4] dy = rsb[4] elif int(dim) == 120: i = rs[5] dy = rsb[5] while i <= 10.0: command = 'cd kd_tree ; ./kdtree -load_file data.txt -orig_dim %d -dim %d -rqfile query.txt -range %f -count %d'%(dim,numberOfVP,i,size) result = utils.executeCommand(command) print result hits = float(result.split(',')[7]) dist = float(result.split(',')[11]) ans += dist if hits >= 1.0 and len(d) == 0: d.append(ans) if hits >= 5.0 and len(d) == 1: d.append(ans) if hits >= 10.0 and len(d) == 2: d.append(ans) if hits >= knn: break i += dy print ans print d
def setOutputRules(): utils.displayText('cyan', 'setting output rules...', 0) commandsList = [] # allow output traffic for established connections ##commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'OUTPUT', '--match', state, '--state', 'RELATED,ESTABLISHED', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'OUTPUT', '--match', 'state', '!', '--state', 'INVALID', '--jump', 'ACCEPT']) # allow everything for now (TODO) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'OUTPUT', '--jump', 'ACCEPT']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def buildStudioSstRx(): '''buildStudioSstRx executable will be launched on studio-sst-rx (x86) ''' if not os.path.isfile(globals.sourcesDirectory + '/' + '.svn/entries'): utils.displayText('red', 'globals.sourcesDirectory is not a svn working copy, call getNewAppliSvnWc first', 0) utils.terminateTest(1) if os.path.isdir(globals.sstRxBuildDirectory): shutil.rmtree(globals.sstRxBuildDirectory) os.makedirs(globals.sstRxBuildDirectory) # make init mandatory here (to generated the configure file) os.chdir(globals.sourcesDirectory) commandsList = [] commandsList.append(['CROSS_COMPILE=arm-linux-', 'PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', 'init', '--directory', globals.sourcesDirectory]) #commandsList.append(['PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', 'init', '--directory', globals.sourcesDirectory]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command) os.chdir(globals.sstRxBuildDirectory) commandsList = [] #commandsList.append(['PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', 'init', '--directory', globals.sourcesDirectory]) commandsList.append(['PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), '%s/aggreg-sst/aggreg-sst/configure --enable-maintainer-mode --enable-sst-rx-only --prefix=$(pwd)/inst' % globals.sourcesDirectory]) commandsList.append(['PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', '--directory', globals.sstRxBuildDirectory]) commandsList.append(['test', '-x', '%s/Build/_install/bin/sst-tx' % globals.sourcesDirectory]) commandsList.append(['PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', '--directory', '%s/aggreg-common' % globals.sstRxBuildDirectory]) commandsList.append(['PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', '--directory', '%s/aggreg-studio' % globals.sstRxBuildDirectory]) commandsList.append(['test -x %s' % globals.sstRxBinary]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def getNetworkInterfaceInformations(networkInterface): ''' if globals.platformType == 'development': networkInterfacesList = testNetworkAliasesList if globals.platformType == 'validation': # alias 'eth1:100' is used, even if globals.platformType is 'validation' networkInterfacesList = testNetworkAliasesList + usbEthAdaptersInterfacesListForDmngEthAdapter + usbEthAdaptersInterfacesListForDmngUsbEthAdapter # check that networkInterface is in networkInterfacesList possibleInterfacesList = [] for index in range(len(networkInterfacesList)): possibleInterfacesList.append(networkInterfacesList[index][0]) if possibleInterfacesList.count(networkInterface) == 0: utils.displayText('red', '[KO] networkInterface (%s) not in possibleInterfacesList (%s)' % (networkInterface, possibleInterfacesList), 0) utils.terminateTest(1) ''' # retrieve informations from /sbin/ifconfig command = ['/usr/bin/sudo', '/sbin/ifconfig', networkInterface] commandStdout, commandStderr = utils.executeCommand(command) # get hardware address (MAC) myRe = re.search('HWaddr (?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})\:(?:[0-9a-fA-F]{2})', commandStdout) macAddress = re.sub('HWaddr ', '', myRe.group()) # get ipAddress try: myRe = re.search('inet addr:(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', commandStdout) ipAddress = re.sub('inet addr:', '', myRe.group()) except: ipAddress = 'not configured' # get networkMask try: myRe = re.search('Mask:(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', commandStdout) networkMask = re.sub('Mask:', '', myRe.group()) except: networkMask = 'not configured' # get broadcastAddress try: myRe = re.search('Bcast:(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', commandStdout) broadcastAddress = re.sub('Bcast:', '', myRe.group()) except: broadcastAddress = 'not configured' # TODO : get ipv6Address (if needed in the future) return macAddress, ipAddress, networkMask, broadcastAddress
def setForwardRules(): utils.displayText('cyan', 'setting forward rules...', 0) commandsList = [] # allow forward traffic for established connections commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'FORWARD', '--match', 'state', '--state', 'RELATED,ESTABLISHED', '--jump', 'ACCEPT']) # allow all forward traffic on all interfaces commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'FORWARD', '--jump', 'ACCEPT']) # for testing ssh commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'FORWARD', '--in-interface', globals.aviwestLanIfc, '--destination', globals.linuxVmStudioIpAddressForSsh, '--protocol', 'tcp', '--destination-port', '22', '--jump', 'ACCEPT']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setState(networkInterface, requestedState): # check requestedState values if (requestedState != 'up') and (requestedState != 'down'): utils.displayText('red', '[KO] requestedState (%s) is neither \'up\', nor \'down\'' % requestedState, 0) utils.terminateTest(1) if requestedState == 'down': command = ['/usr/bin/sudo', '/sbin/ifdown', networkInterface] if requestedState == 'up': command = ['/usr/bin/sudo', '/sbin/ifup', networkInterface] commandStdout, commandStderr = utils.executeCommand(command) '''
def buildStudioSstTx(): '''buildStudioSstTx executable will be launched on dmng ''' if not os.path.isfile(globals.sourcesDirectory + '/' + '.svn/entries'): utils.displayText('red', 'globals.sourcesDirectory is not a svn working copy, call getNewAppliSvnWc first', 0) utils.terminateTest(1) commandsList = [] commandsList.append(['CROSS_COMPILE=arm-linux-', 'PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', 'init', '--directory', globals.sourcesDirectory]) commandsList.append(['CROSS_COMPILE=arm-linux-', 'PATH=%s/ccache:%s:$PATH' % (armCompilerDirectory, armCompilerDirectory), 'make', '--directory', globals.sourcesDirectory]) commandsList.append(['test', '-x', globals.sstTxBinary]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def start(self): '''run command on self.host_name in background (through ssh on port self.port) @param command : command to launch @return process ID ''' commandsList = [] commandsList.append([ '/usr/bin/ssh', '-T', '-p', '%d' % self.port, '%s' % self.host_name, 'test -x %s' % globals.gatewaySstRxBinary ]) commandsList.append(['test', '-x', globals.sstRxBinary]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command) command = [ '/usr/bin/ssh', '-T', '-p', '%d' % self.port, '%s' % self.host_name, '%s -v -T -L %s -l %s:%s' % (globals.gatewaySstRxBinary, globals.gatewaySstRxLogFile, globals.gatewaySstRxLogin, globals.gatewaySstRxPassword) ] commandString = ' '.join(command) if not globals.quiet: utils.displayText('normal', 'executing command : %s' % commandString, 0) self.ssh = subprocess.Popen(command, bufsize=-1, shell=False, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env={'LANG': 'en_GB.utf-8'}) if self.ssh == None: utils.displayText( 'red', '[KO] the following command failed : %s' % ' '.join(command), 0) utils.terminateTest(1)
def setState(networkInterface, requestedState): # check requestedState values if (requestedState != 'up') and (requestedState != 'down'): utils.displayText( 'red', '[KO] requestedState (%s) is neither \'up\', nor \'down\'' % requestedState, 0) utils.terminateTest(1) if requestedState == 'down': command = ['/usr/bin/sudo', '/sbin/ifdown', networkInterface] if requestedState == 'up': command = ['/usr/bin/sudo', '/sbin/ifup', networkInterface] commandStdout, commandStderr = utils.executeCommand(command) '''
def displayRules(): utils.displayText('cyan', 'current rules are the following...', 0) commandsList = [] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--line-numbers', '--list', '--numeric', '--verbose' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--line-numbers', '--list', '--numeric', '--verbose' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command) utils.displayText('normal', 'commandStdout :', 0) utils.displayText('normal', commandStdout, 0)
def initChains(): utils.displayText('cyan', 'initializing chains...', 0) commandsList = [] ''' commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', 'INPUT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', 'OUTPUT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', 'FORWARD']) ''' commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', '--table', 'nat']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--flush', '--table', 'mangle']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--delete-chain']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--delete-chain', '--table', 'nat']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--delete-chain', '--table', 'mangle']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def getNetworkInterfaceLinkStatus(networkInterface): utils.displayText('red', 'TODO : testing an IP alias with ethtool always report : \'Link detected: yes\'. It cannot be used here.', 0) utils.terminateTest(1) command = ['/usr/bin/sudo', '/sbin/ethtool', networkInterface] commandStdout, commandStderr = utils.executeCommand(command) # get "Link detected:" myRe = re.search('Link detected: yes|no', commandStdout) linkDetected = re.sub('Link detected: ', '', myRe.group()) if linkDetected == 'yes': networkInterfaceStatus = 'up' elif linkDetected == 'no': networkInterfaceStatus = 'down' else: utils.displayText('red', '[KO] linkDetected (%s) is neither \'yes\', nor \'no\'' % linkDetected, 0) utils.terminateTest(1) return networkInterfaceStatus
def setOutputRules(): utils.displayText('cyan', 'setting output rules...', 0) commandsList = [] # allow output traffic for established connections ##commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'OUTPUT', '--match', state, '--state', 'RELATED,ESTABLISHED', '--jump', 'ACCEPT']) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'OUTPUT', '--match', 'state', '!', '--state', 'INVALID', '--jump', 'ACCEPT' ]) # allow everything for now (TODO) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'OUTPUT', '--jump', 'ACCEPT' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def start(self): '''run command on self.host_name in background (through ssh on port self.port) @param command : command to launch @return process ID ''' commandsList = [] commandsList.append(['/usr/bin/ssh', '-T', '-p', '%d' % self.port, '%s' % self.host_name, 'test -x %s' % globals.gatewaySstRxBinary]) commandsList.append(['test', '-x', globals.sstRxBinary]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command) command = ['/usr/bin/ssh', '-T', '-p', '%d' % self.port, '%s' % self.host_name, '%s -v -T -L %s -l %s:%s' % (globals.gatewaySstRxBinary, globals.gatewaySstRxLogFile, globals.gatewaySstRxLogin, globals.gatewaySstRxPassword)] commandString = ' '.join(command) if not globals.quiet: utils.displayText('normal', 'executing command : %s' % commandString, 0) self.ssh = subprocess.Popen(command, bufsize=-1, shell = False, stdin = None, stdout = subprocess.PIPE, stderr = subprocess.PIPE, env={'LANG':'en_GB.utf-8'}) if self.ssh == None: utils.displayText('red', '[KO] the following command failed : %s' % ' '.join(command), 0) utils.terminateTest(1)
def executeNDT(): command = 'cd nd_tree ; ./NDT' result = utils.executeCommand(command) print result
def setNatPreroutingRules(dmngObject): utils.displayText('cyan', 'setting nat prerouting rules (destination NAT)...', 0) commandsList = [] # allow iperf TCP/UDP default port ''' if globals.platformType == 'validation': for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--source-port', '46065', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--source-port', '46065', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) ''' # for Aviwest aggregation if globals.platformType == 'development': for index in range(1, len(networkInterfaces.testNetworkAliasesList)): interfaceName = networkInterfaces.testNetworkAliasesList[index][0] ipNetwork = networkInterfaces.testNetworkAliasesList[index][2] networkMask = networkInterfaces.testNetworkAliasesList[index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '7900:7940', '--jump', 'DNAT', '--to-destination', '%s' % globals.linuxVmStudioIpAddressForSstTraffic ]) if globals.platformType == 'validation': for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '7900:7940', '--jump', 'DNAT', '--to-destination', '%s' % globals.linuxVmStudioIpAddressForSstTraffic ]) for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '7900:7940', '--jump', 'DNAT', '--to-destination', '%s' % globals.linuxVmStudioIpAddressForSstTraffic ]) # for KenCast aggregation if globals.platformType == 'development': for index in range(1, len(networkInterfaces.testNetworkAliasesList)): interfaceName = networkInterfaces.testNetworkAliasesList[index][0] ipNetwork = networkInterfaces.testNetworkAliasesList[index][2] networkMask = networkInterfaces.testNetworkAliasesList[index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '8000:8050', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '%d' % 4038, '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) if globals.platformType == 'validation': for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '8000:8050', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '%d' % 4038, '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '8000:8050', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '%d' % 4038, '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) # without any aggregation if globals.platformType == 'development': for index in range(1, len(networkInterfaces.testNetworkAliasesList)): interfaceName = networkInterfaces.testNetworkAliasesList[index][0] ipNetwork = networkInterfaces.testNetworkAliasesList[index][2] networkMask = networkInterfaces.testNetworkAliasesList[index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '1234:1270', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) if globals.platformType == 'validation': for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[ index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '1234:1270', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) for index in range( 0, len(networkInterfaces. usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[ index][4] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '1234:1270', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic ]) # for iperf testing (tcp port 7910) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.dmngLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 7910, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7910) ]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '%d' % 7910, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7910) ]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '%d' % 7910, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7910) ]) # for iperf testing (udp port 7911) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.dmngLanIfc, '--protocol', 'udp', '--destination-port', '%d' % 7911, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7911) ]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '%d' % 7911, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7911) ]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '%d' % 7911, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7911) ]) # for testing ssh #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '11111', '--jump', 'DNAT', '--to-destination', '%s:22' % globals.linuxVmStudioIpAddressForSsh]) # for trafficGenerator/trafficAnalyser communication channel commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', networkInterfaces.testNetworkAliasesList[0][0], '--protocol', 'tcp', '--destination-port', '%d' % 9000, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.windowsVmStudioIpAddressForTrafficGeneratorAndAnalyser, 9000) ]) # for accessing dmng from Aviwest LAN if globals.platformType == 'development': commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 5322, '--jump', 'DNAT', '--to-destination', '%s:%d' % (dmngObject.controlNetworkInterface[2], 5322) ]) # for accessing web dmng from Aviwest LAN #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 8888, '--jump', 'DNAT', '--to-destination', '%s:%d' % (dmngObject.controlNetworkInterface[2], 8888)]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 8888, '--jump', 'DNAT', '--to-destination', '%s:%d' % ('192.168.10.10', 8888) ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def executeMake(): command = 'make -C kd_tree' utils.executeCommand(command) print 'make complete'
def setNatPreroutingRules(dmngObject): utils.displayText('cyan', 'setting nat prerouting rules (destination NAT)...', 0) commandsList = [] # allow iperf TCP/UDP default port ''' if globals.platformType == 'validation': for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--source-port', '46065', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--source-port', '46065', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) ''' # for Aviwest aggregation if globals.platformType == 'development': for index in range(1, len(networkInterfaces.testNetworkAliasesList)): interfaceName = networkInterfaces.testNetworkAliasesList[index][0] ipNetwork = networkInterfaces.testNetworkAliasesList[index][2] networkMask = networkInterfaces.testNetworkAliasesList[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '7900:7940', '--jump', 'DNAT', '--to-destination', '%s' % globals.linuxVmStudioIpAddressForSstTraffic]) if globals.platformType == 'validation': for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '7900:7940', '--jump', 'DNAT', '--to-destination', '%s' % globals.linuxVmStudioIpAddressForSstTraffic]) for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '7900:7940', '--jump', 'DNAT', '--to-destination', '%s' % globals.linuxVmStudioIpAddressForSstTraffic]) # for KenCast aggregation if globals.platformType == 'development': for index in range(1, len(networkInterfaces.testNetworkAliasesList)): interfaceName = networkInterfaces.testNetworkAliasesList[index][0] ipNetwork = networkInterfaces.testNetworkAliasesList[index][2] networkMask = networkInterfaces.testNetworkAliasesList[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '8000:8050', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '%d' % 4038, '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) if globals.platformType == 'validation': for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '8000:8050', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '%d' % 4038, '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '8000:8050', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '%d' % 4038, '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) # without any aggregation if globals.platformType == 'development': for index in range(1, len(networkInterfaces.testNetworkAliasesList)): interfaceName = networkInterfaces.testNetworkAliasesList[index][0] ipNetwork = networkInterfaces.testNetworkAliasesList[index][2] networkMask = networkInterfaces.testNetworkAliasesList[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '1234:1270', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) if globals.platformType == 'validation': for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '1234:1270', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) for index in range(0, len(networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter)): interfaceName = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][0] ipNetwork = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][2] networkMask = networkInterfaces.usbEthAdaptersInterfacesListForDmngUsbEthAdapter[index][4] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--source', '%s/%s' % (ipNetwork, networkMask), '--destination-port', '1234:1270', '--jump', 'DNAT', '--to-destination', '%s' % globals.windowsVmStudioIpAddressForSstTraffic]) # for iperf testing (tcp port 7910) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.dmngLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 7910, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7910)]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '%d' % 7910, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7910)]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '%d' % 7910, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7910)]) # for iperf testing (udp port 7911) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.dmngLanIfc, '--protocol', 'udp', '--destination-port', '%d' % 7911, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7911)]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '%d' % 7911, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7911)]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '%d' % 7911, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.linuxVmStudioIpAddressForSstTraffic, 7911)]) # for testing ssh #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '11111', '--jump', 'DNAT', '--to-destination', '%s:22' % globals.linuxVmStudioIpAddressForSsh]) # for trafficGenerator/trafficAnalyser communication channel commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', networkInterfaces.testNetworkAliasesList[0][0], '--protocol', 'tcp', '--destination-port', '%d' % 9000, '--jump', 'DNAT', '--to-destination', '%s:%d' % (globals.windowsVmStudioIpAddressForTrafficGeneratorAndAnalyser, 9000)]) # for accessing dmng from Aviwest LAN if globals.platformType == 'development': commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 5322, '--jump', 'DNAT', '--to-destination', '%s:%d' % (dmngObject.controlNetworkInterface[2], 5322)]) # for accessing web dmng from Aviwest LAN #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 8888, '--jump', 'DNAT', '--to-destination', '%s:%d' % (dmngObject.controlNetworkInterface[2], 8888)]) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--table', 'nat', '--append', 'PREROUTING', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '%d' % 8888, '--jump', 'DNAT', '--to-destination', '%s:%d' % ('192.168.10.10', 8888)]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def setInputRules(dmngObject): # initializations loopbackIfc = 'lo' utils.displayText('cyan', 'setting input rules...', 0) commandsList = [] # allow input traffic for established connections commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', loopbackIfc, '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.aviwestLanIfc, '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.dmngLanIfc, '--jump', 'ACCEPT']) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', interfaceName, '--jump', 'ACCEPT']) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', interfaceName, '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.linuxVmStudioTrafficLanIfc, '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.linuxVmStudioSshLanIfc, '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.windowsVmStudioTrafficLanIfc, '--jump', 'ACCEPT']) # allow all input traffic on loopbackIfc commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', loopbackIfc, '--jump', 'ACCEPT']) # allow icmp commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT']) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT']) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.linuxVmStudioTrafficLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.linuxVmStudioSshLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.windowsVmStudioTrafficLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', dmngObject.controlNetworkInterface[0], '--protocol', 'icmp', '--jump', 'ACCEPT']) # allow icmp on ethAdaptersInterfacesList and usbEthAdaptersInterfacesList if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT']) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT']) # allow ssh commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '22', '--jump', 'ACCEPT']) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'tcp', '--destination-port', '22', '--jump', 'ACCEPT']) # allow apache 2 commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '80', '--jump', 'ACCEPT']) # allow synergy commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '24800', '--jump', 'ACCEPT']) # allow iperf TCP/UDP default port commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'tcp', '--destination-port', '5001', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'udp', '--destination-port', '5001', '--jump', 'ACCEPT']) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '5001', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '5001', '--jump', 'ACCEPT']) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '5001', '--jump', 'ACCEPT']) commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '5001', '--jump', 'ACCEPT']) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def executeMake(): command = 'make -C mvptree' utils.executeCommand(command) print 'make complete'
# from time import sleep from logfacility import log from utils import _, executeCommand upnppossible = False miniupnpc = None miniupnpc_errors = [] try: import miniupnpc upnppossible = True except ImportError, e: miniupnpc_errors.append(_("Failed to import miniupnpc module: %(error)s") % {'error':str(e)}) try: executeCommand("upnpc", returnoutput=True) upnppossible = True except RuntimeError, e: miniupnpc_errors.append(_("Failed to run upnpc binary: %(error)s") % {'error':str(e)}) def fixportmapping(internallanport, externallanport = None): if not upnppossible: log.addwarning(_('Both MiniUPnPc python module and MiniUPnPc binary failed - automatic portmapping is not possible. Errors: %(errors)s') % {'error':"\n".join(miniupnpc_errors)}) return if not externallanport: externallanport = internallanport if miniupnpc: return miniupnpcmodule(internallanport, externallanport) else: return miniupnpcbinary(internallanport, externallanport) def miniupnpcbinary(internallanport, externallanport):
messages = sql["ingame_notice.messages"] for m in messages.split(messageDelimeter): utils.show("Sending \"%s\" to ps_game..." % m) utils.executeCommand(c % ("/nt " + m)) time.sleep(15) interval = int(sql["ingame_notice.interval"]) utils.show("Waiting for %d second(s) to notice \"%s\"" % (interval, messages)) time.sleep(interval) if __name__ == "__main__": choice = sys.argv[1].lower() if choice == "ingamenotice": cmd = sqlCmd % psGameExec inGameNotice(cmd) elif choice == "nprotectoff": psGameExec = psGameExec % "/nprotectoff" cmd = sqlCmd % psGameExec utils.executeCommand(cmd) elif choice == "vchkoff": psLoginExec = psLoginExec % "/vchkoff" cmd = sqlCmd % psLoginExec utils.executeCommand(cmd) elif choice == "vchkon": psLoginExec = psLoginExec % "/vchkon" cmd = sqlCmd % psLoginExec utils.executeCommand(cmd)
def setInputRules(dmngObject): # initializations loopbackIfc = 'lo' utils.displayText('cyan', 'setting input rules...', 0) commandsList = [] # allow input traffic for established connections commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', loopbackIfc, '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.aviwestLanIfc, '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.dmngLanIfc, '--jump', 'ACCEPT' ]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', interfaceName, '--jump', 'ACCEPT' ]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', interfaceName, '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.linuxVmStudioTrafficLanIfc, '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.linuxVmStudioSshLanIfc, '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--match', 'state', '--state', 'ESTABLISHED,RELATED', '--in-interface', globals.windowsVmStudioTrafficLanIfc, '--jump', 'ACCEPT' ]) # allow all input traffic on loopbackIfc commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', loopbackIfc, '--jump', 'ACCEPT' ]) # allow icmp commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.linuxVmStudioTrafficLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.linuxVmStudioSshLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.windowsVmStudioTrafficLanIfc, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', dmngObject.controlNetworkInterface[0], '--protocol', 'icmp', '--jump', 'ACCEPT' ]) # allow icmp on ethAdaptersInterfacesList and usbEthAdaptersInterfacesList if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'icmp', '--jump', 'ACCEPT' ]) # allow ssh commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '22', '--jump', 'ACCEPT' ]) #commandsList.append(['/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'tcp', '--destination-port', '22', '--jump', 'ACCEPT']) # allow apache 2 commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '80', '--jump', 'ACCEPT' ]) # allow synergy commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.aviwestLanIfc, '--protocol', 'tcp', '--destination-port', '24800', '--jump', 'ACCEPT' ]) # allow iperf TCP/UDP default port commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'tcp', '--destination-port', '5001', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', globals.dmngLanIfc, '--protocol', 'udp', '--destination-port', '5001', '--jump', 'ACCEPT' ]) if globals.platformType == 'validation': for i in range(globals.maxNbOfEthAdapters): interfaceName = dmngObject.ethAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '5001', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '5001', '--jump', 'ACCEPT' ]) for i in range(globals.maxNbOfUsbEthAdapters): interfaceName = dmngObject.usbEthAdaptersInterfacesList[i][0] commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'tcp', '--destination-port', '5001', '--jump', 'ACCEPT' ]) commandsList.append([ '/usr/bin/sudo', '/sbin/iptables', '--append', 'INPUT', '--in-interface', interfaceName, '--protocol', 'udp', '--destination-port', '5001', '--jump', 'ACCEPT' ]) for command in commandsList: commandStdout, commandStderr = utils.executeCommand(command)
def getSvnRevision(directory): command = ['/usr/bin/svnversion', '--no-newline', directory] commandStdout, commandStderr = utils.executeCommand(command) return commandStdout